Indicatore Domanda - pagina 5

 
Oh, un'ultima domanda

È più tipico contare in avanti o all'indietro quando si costruiscono indicatori che possono essere usati negli EA

Uno crea più problemi dell'altro o è solo una questione di preferenze e di design?

Si prega di consigliare

Grazie

 
Ogni tanto dai un'occhiata a questo articolo: https: //www.mql5.com/en/articles/1456 può essere un po' scoraggiante, ma continua, un po' alla volta, una volta che l'avrai capito avrai imparato gli indicatori, gli EA e le loro differenze.
 
Agent86:
Un'ultima domanda

È più tipico contare in avanti o all'indietro quando si costruiscono indicatori che possono essere usati negli EA

Uno crea più problemi dell'altro o è solo una questione di preferenze e di design?

Tipicamente molti degli indicatori che ho visto contano i++, a mio modesto parere questo è sbagliato ... un grafico si costruisce da sinistra a destra, le vecchie candele sono a sinistra quelle nuove a destra. Quando un indicatore elabora le vecchie barre di un grafico (in modo da poter poi iniziare ad elaborare le barre più attuali) non dovrebbe farlo in un modo che sia rappresentativo del modo in cui lavorerà sui dati live?

Gliindicatori tecnici non sono il mio forte, ho dovuto familiarizzare con loro per necessità, ma la mia esperienza con loro è piccola, accetterei anche altre risposte da persone più esperte.

 

Di solito, per quanto mi riguarda durante il trading effettivo, l'intera serie di prezzi delle barre lontane nel passato è abbastanza irrilevante. Solo forse quella manciata di recenti, in un dato frame.

A questo proposito, preferisco 'trasferire' la logica dell'indicatore, se sono abbastanza buoni, a qualche funzione o lib dove l'EA può usare direttamente, invece di chiamare iCustom e leggere i buffer, ecc. Questo può essere problematico, non dimenticarlo.

Quindi, per me un buon indicatore è quello che è in grado di permettermi di fare proprio questo.

 
Penso che sperimenterò un po' con ognuno, ma mi sembra che preferirei incrementare in avanti da 0, tuttavia come incrementano gli indicatori standard?

Se volessi usare gli iFractal per qualcosa di utile in un EA sembra che il segnale avvenga naturalmente; e se volessi riferirmi indietro nel tempo ad un precedente iFractal, allora i++ lo spostamento ad un precedente iFractal

Ma quando vedo gli EA delle persone e appaiono gli indicatori sui grafici. Stanno usando gli indicatori iCustom e gli indicatori che hanno aggiunto o questo è tipicamente messo nell'EA stesso e quando si apre l'EA questo avviene automaticamente?

Sto cercando di risolvere il tutto

 
RaptorUK:
Ogni tanto dai un'occhiata a questo articolo: https: //www.mql5.com/en/articles/1456 può essere un po' scoraggiante ma continua, poco a poco, una volta che l'avrai capito avrai imparato qualcosa sugli indicatori, gli EA e le loro differenze.
Lo farò grazie.

Ho bisogno di continuare a leggere, non voglio davvero continuare a lottare ma preferirei imparare tutto quello che c'è su MQL4 in modo da poter codificare le mie idee e anche contribuire un po' alla base del codice.

Continuerò a leggere grazie ancora
 
Ciao

Qualcuno può confermare se sto considerando questo codice correttamente?

La mia dichiarazione di stampa si riferisce al precedente iFractal?

//maybe something like this to count back to the previous iFractal for reference
//needs work     
    for(i=0; val1==val3; i++)
      {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      val3=iFractals(NULL, 0, MODE_UPPER,0);
      if (val1 > 0)
         {
         Print (val1, " = val1");
         }
        }
È tutto quello che ho potuto pensare con la mia conoscenza limitata finora.

Comunque, c'è qualcosa di sbagliato in questo metodo per tornare al precedente iFractal se davvero è quello che ho creato qui.

Sembra giusto in teoria da quello che posso dire?

Si prega di consigliare

Grazie

 

Quando ottieni un iFractal il valore è > 0, sì?

Quindi, per esempio, se vuoi sapere dove sono stati gli ultimi iFrattali SUPERIORE e INFERIORE fai semplicemente qualcosa del genere.

val1 = 0; val2 = 0; i = 0;

while( val1==0 && val2==0)
   {
   if (iFractals(NULL, 0, MODE_UPPER,i) > 0 && val1==0) val1 = i;
   if (iFractals(NULL, 0, MODE_LOWER,i) > 0 && val2==0) val2 = i;
   i++;
   }
Print("Last UPPER Fractal at ", val1, " Last LOWER Fractal at ", val2);
 
for(i=0; val1==val3; i++) <--- val1==val3??? This is indeed, "tricky"
       {
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      val3=iFractals(NULL, 0, MODE_UPPER,0);
      if (val1 > 0)
         {
         Print (val1, " = val1");
         }
        }

Onestamente, è la prima volta che vedo questo, per la condizione di terminazione del ciclo. È difficile...

 

A me sembra figo ... Tutto quello che dovete fare è testarlo all'interno del back-tester. Ecco come lo farei io.

void start(){
   double val1=0,val3=0;
   for(int i=0; i<=3; i++){
      val1=iFractals(NULL, 0, MODE_UPPER,i);
      val3=iFractals(NULL, 0, MODE_UPPER,0);
      if(val1>val3){
        Print("Value_1="+val1+" TimeOf_Fractal="+TimeToStr(TimeCurrent()));
        break;
      }
   }
}

Non ricordo come si formano i frattali. Credo che si formi sulla terza barra. E considera le due barre prima e dopo.

Salva il codice di cui sopra come un EA ed esegui un breve back-test. Potresti allegare l'indicatore algrafico del back-test per confermare.

Ecco cosa ho ottenuto:

2011.10.06 06:38:49     2011.01.02 23:00  De_Bugger EURUSD,M1: Value_1=1.33710000 TimeOf_Fractal=2011.01.02 23:00