Back to the index page  
  FAQ   Cerca   Lista utenti   Gruppi   Registrati   Profilo   Messaggi privati   Log in 
Problema Con funzione ima avete idee

 
Nuovo argomento   Rispondi    Indice del forum » Metatrader - Expert Advisor - MQL Precedente :: Successivo  
Ads
 Inviato: Lun Dic 18, 2017 8:10 am  
Messaggio
  Ads




Problema Con funzione ima avete idee
 MessaggioInviato: Lun Apr 14, 2014 5:38 pm Rispondi citando  
Messaggio
  texcs81
Studente
Studente

Registrato: 03/07/13 00:45
Messaggi: 32

Salve Raga spero che mi potete aiutare; allora nel mio programma ho costruito 3 medie mobil a diversi periodi in questo modo:

for(int i=0; i<limit; i++)
{
MovingAvarage20Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage20,0, MODE_EMA, PRICE_CLOSE,i);
MovingAvarage40Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage40,0, MODE_EMA, PRICE_CLOSE,i);
MovingAvarage50Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage50,0, MODE_EMA, PRICE_CLOSE,i);
}
ora voglio inserire delle condizioni del tipo:
if (MovingAvarage20Buffer > MovingAvarage40Buffer > MovingAvarage50Buffer)
{
//TREND RIALZISTA
}

se li metto cosi ovviamente mi da errore dicendo che nn si accede cosi agli array.
Ora ho questa idea:
Assegnare il valore delle medie a delle variabili ad ogni iterazione del for e poi fare il confronto delle variabili cosa ne pensate?
ma devo fare pure delle variabil col valore delle medie successivo, corrente e precedente?
aspetto consigli grazie!!!!!!!
Profilo Invia messaggio privato
 MessaggioInviato: Lun Apr 14, 2014 6:09 pm Rispondi citando  
Messaggio
  BadBoy
Trader part-time
Trader part-time

Registrato: 29/02/12 22:47
Messaggi: 174
Residenza: Ravenna

Cosa stai creando, in indi oppure un EA?

Comunque, se stai creando un buffer per un indi fai semplicemente:

Codice:
// dentro al ciclo for
if (MovingAvarage20Buffer[i] > MovingAvarage40Buffer[i] > MovingAvarage50Buffer[i])
{
//TREND RIALZISTA
}


Se stai facendo un ea, tutto questo non serve.

_________________
Programmatore di Sistemi Automatici per il Trading

Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.


Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.


E-Mail:

Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.

Skype: ProTradingSoftware
Profilo Invia messaggio privato Invia e-mail HomePage
 MessaggioInviato: Lun Apr 14, 2014 11:40 pm Rispondi citando  
Messaggio
  texcs81
Studente
Studente

Registrato: 03/07/13 00:45
Messaggi: 32

Ti ringrazio, ho provato mi da questo errore "unsafe use of type 'bool' in operation"

poi se io voglio analizzare solo le ultime"N" candele?
Profilo Invia messaggio privato
 MessaggioInviato: Mar Apr 15, 2014 4:16 pm Rispondi citando  
Messaggio
  BadBoy
Trader part-time
Trader part-time

Registrato: 29/02/12 22:47
Messaggi: 174
Residenza: Ravenna

Mi dai troppo poche informazioni per poterti suggerire alcun chè.

_________________
Programmatore di Sistemi Automatici per il Trading

Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.


Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.


E-Mail:

Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.

Skype: ProTradingSoftware
Profilo Invia messaggio privato Invia e-mail HomePage
 MessaggioInviato: Mar Apr 15, 2014 11:38 pm Rispondi citando  
Messaggio
  texcs81
Studente
Studente

Registrato: 03/07/13 00:45
Messaggi: 32

Allora il mio indicatore è questo:

int start(){
int counted_bars = IndicatorCounted();
int limit=Bars-counted_bars;

//---- check for possible errors
if(counted_bars < 0) return(-1);
//---- last counted bar will be recounted
if(counted_bars > 0) counted_bars--;

for(int i=0; i<limit; i++)
{
MovingAvarage20Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage20,0, MODE_EMA, PRICE_CLOSE,i);
MovingAvarage40Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage40,0, MODE_EMA, PRICE_CLOSE,i);
MovingAvarage50Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage50,0, MODE_EMA, PRICE_CLOSE,i);

if (MovingAvarage20Buffer[i] > MovingAvarage40Buffer[i] > MovingAvarage50Buffer[i])
{
//TREND RIALZISTA
Alert("Il trend è rialzistaa");
}
if (MovingAvarage20Buffer[i] < MovingAvarage40Buffer[i] < MovingAvarage50Buffer[i])
{

//TREND RIBBASSISTA
Alert("Il trend è ribassista");
}
}
Quando vado a compilare mi da queso errore nella riga degli if: " unsafe use of type 'bool' in operation" che nn so proprio come aggiustare;
Poi mi sono reso conto che fare il confronto e inviare l'allert ogni iterazione del for è troppo "veloce" per fare il controllo e inviare l'allert sulle ultime "n" candele come posso fare?devo modificare il parametro "shift" di ima? mi fate un esempio
Profilo Invia messaggio privato
 MessaggioInviato: Mer Apr 16, 2014 4:34 pm Rispondi citando  
Messaggio
  BadBoy
Trader part-time
Trader part-time

Registrato: 29/02/12 22:47
Messaggi: 174
Residenza: Ravenna

i = 0 barra corrente
i = 1 barra precedente
i = 2 seconda barra all'indietro
i = 3 terza barra all'indietro

ecc.

Inoltre dovrai inventarti una variabile "temporale" da aggiornare una volta richiamato l'alert, per non farlo scattare ad ogni tick.

_________________
Programmatore di Sistemi Automatici per il Trading

Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.


Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.


E-Mail:

Solamente gli utenti registrati possono vedere link su questo forum!
Registrati oppure Autenticati su questo forum.

Skype: ProTradingSoftware
Profilo Invia messaggio privato Invia e-mail HomePage
 MessaggioInviato: Ven Apr 18, 2014 11:33 am Rispondi citando  
Messaggio
  texcs81
Studente
Studente

Registrato: 03/07/13 00:45
Messaggi: 32

qundi se a posto della "i" ci metto un numero il "for" non serve più giusto?

cmq ho notato pure una cosa:se io commento la riga MovingAvarage50Buffer[i]= iMA(NULL, 0, PeriodMovingAvarage50,0, MODE_EMA, PRICE_CLOSE,i);

l'indicatore funziona se nn la commento e vado a compilare nn mi da errore però se lo attacco al grafico mi da questo errore "array out of range indicator..... continie un debbugger?" e se faccio ok mi apre mql editor e mi appare una freccia sulla suddetta riga; ora io ho pensato nn è che ci possono essere + di 2 medie mobili? oppure?

Allora ho completato una perte dell'indicatore seguendo i tuoi sonsigli però mi da quell'errore che ti ho descritto; vorrei mandarti il codice in privato cosi ne parliamo un po se sei d'accordo.
Profilo Invia messaggio privato
Nuovo argomento   Rispondi    Indice del forum » Metatrader - Expert Advisor - MQL

Pagina 1 di 1
Tutti i fusi orari sono GMT + 2 ore

Mostra prima i messaggi di:

  

Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi
c d
e

CI SIAMO TRASFERITI QUI: http://forum.forexup.biz





Powered by phpBB © 2001, 2002 phpBB Group phpbb.it
Macinscott 2 by Scott Stubblefield


Abuse - Segnalazione abuso - Utilizzando questo sito si accettano le norme di TOS & Privacy.
Powered by forumup.it forum gratis free, crea il tuo forum gratis free ora! Created by Hyarbor & Qooqoa
Confirmed

Page generation time: 3.358