Quando ha senso mantenere parte del codice del robot in un indicatore? - pagina 15

 
OneDepo:

No, non lo farà. Potete vedere nel codice che il processo di calcolo del segnale è controllato (solo l'ultima barra o nMax barre date) dal parametro prevVals[0]. Se è 0, ripristiniamo il calcolo per nMax barre. Il valore di prevVals[0] è controllato da un altro codice.

Ma non divaghiamo, andiamo al punto. Ci sono due opzioni sopra, quale è più veloce nel tester? Così


Come posso sapere se non hai tutto il codice? Mettetelo nell'EA come dovrebbe essere lì, poi ci sarà una conversazione sostanziale e potrete confrontare le prestazioni.
 
Integer:

Forse ho sbagliato le quote, ora controllo, ma il principio non cambia.

Non sto parlando di coefficienti. Voglio dire che l'EMA dà valori sbagliati durante le prime n barre ma dopo tutto è OK. L'Expert Advisor dovrebbe tenerne conto. Altrimenti avremo problemi con i valori ad ogni errore di connessione
 
Vinin:

Non sto parlando di coefficienti. Voglio dire che l'EMA non dà il valore corretto durante le prime n barre, dopo di che tutto è OK. L'Expert Advisor dovrebbe tenerne conto. Altrimenti avremo problemi con i valori ad ogni errore di connessione

Va bene così?

extern double Alpha = 0.1;

double EMA;

double GetPrice( int Shift )
{
  return(Open[Shift]);
}

void init()
{
  int i = Bars - 1;
  
  EMA = GetPrice(i);
  i--;
  
  while (i > 0)
  {
    EMA = EMA * Alpha + (1 - Alpha) * GetPrice(i);
    i--;
  }
  
  return;
}  

void start()
{
  static int PrevTime = 0;
    
  if (PrevTime == Time[0])
    return;
 
  PrevTime = Time[0];
    
  EMA = EMA * Alpha + (1 - Alpha) * GetPrice(0);
  
  return;  
} 
 
Vinin:

Non si tratta di rapporti. L'EMA dà un valore sbagliato per le prime n barre, ma in seguito tutto è ok. L'Expert Advisor dovrebbe tenerne conto. Altrimenti avremo problemi con i valori ogni volta che interrompiamo la connessione.


Nessun problema, l'indicatore ricalcola dopo i problemi di ricezione dei dati.

Il fatto che sia storto a sinistra, all'inizio del grafico, non è nemmeno un problema, il tester perde le prime 1000 barre.

Qui, esattamente a sinistra (in appendice).

File:
iema_1.mq4  1 kb
 
Integer:

Come posso sapere se non hai tutto il codice. Mettetelo nell'EA nel modo in cui dovrebbe esserci, poi ci sarà una conversazione sostanziale.
Per favore, una variante da testare
File:
bb-ii-08.mq4  11 kb
 
Integer:


Non ci sarà un problema, l'indicatore ricalcolerà dopo i problemi di ricezione dei dati.

Il fatto che sia storto a sinistra, all'inizio del grafico, non è nemmeno un problema, il tester perde le prime 1000 barre.

Qui, esattamente a sinistra (in appendice).


Stavo parlando del consulente, non dell'indicatore. L'ho già visto. Solo che non l'ho detto a te, l'ho detto a Hrenfx.
 
hrenfx:

Va bene così?


Tutto quello che resta da fare è prevedere le interruzioni di connessione e il rimbalzo della storia (purtroppo, questo succede). L'indicatore lo gestisce senza problemi. Ma l'Expert Advisor non lo vede.
 
OneDepo:
Si prega di testare l'opzione

Non adatto alla nomina pubblicizzata. Ci saranno errori dopo un'interruzione della comunicazione, più piccolo è il lasso di tempo, più frequenti e grandi saranno gli errori.
 
Vinin:

Tutto quello che resta da fare è prevedere le interruzioni di connessione e il rimbalzo della storia (purtroppo, questo succede). L'indicatore lo gestisce senza problemi. Ma l'Expert Advisor non lo vede.

Infatti, ora stiamo prendendo di mira il concetto di trading. L'Expert Advisor riceve i dati dall'indicatore qui e ora. Improvvisamente, la storia cambia e l'indicatore cambia drasticamente i suoi valori. Allora, cosa riceveva l'Expert Advisor prima? Ricordiamo cosa si sta paragonando. E stiamo confrontando la velocità, nel caso qualcuno l'abbia dimenticato. Ma nonostante tutte le scelte discutibili, scriverò un Expert Advisor che tiene conto delle lacune e della paginazione della storia.
 
hrenfx:

...e improvvisamente la storia cambia...

Incredibile!
Motivazione: