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

 
Integer:


C'era anche quello. Esattamente lo stesso argomento del poltergeist e dell'acqua che gocciola dal soffitto.

Se non ti dispiace ripetere (puoi fare il copia-incolla) quello che mi è sfuggito. Altrimenti, non so proprio di cosa stiamo parlando. Se pensate che il mio codice non sia adatto a VERO. Si prega di specificare il motivo, in modo che non solo quelli particolarmente intelligenti possano capire. Puoi articolare ciò che pensi.
 
hrenfx:
Se non ti dispiace ripetere (puoi fare il copia-incolla) quello che mi è sfuggito. Altrimenti, non so affatto di cosa sto parlando. Se vi sembra che il mio codice non sia adatto a VERO. Si prega di specificare il motivo, in modo che non solo quelli particolarmente intelligenti possano capire. Puoi articolare ciò che pensi.

DeJavu! Puoi iniziare a leggere dall'inizio di pagina 19. Ripetizione assoluta. Non dimenticate l'operatore di pausa o di ritorno o decidete in anticipo il numero di cicli.
 
L'ho letto e ancora non capisco perché hai deciso che il mio EA non è adatto a REAL. Puoi continuare a dire "è tutto scritto, rileggilo", o puoi essere specifico (cosa che ho chiesto più volte in questo thread) e argomentare il tuo punto di vista. Finora è solo acqua per ragioni che non capisco.
 
hrenfx:
L'ho letto e ancora non capisco perché hai deciso che il mio EA non è adatto a REAL. Puoi continuare a dire "è tutto scritto, rileggilo", o puoi essere specifico (cosa che ho chiesto più volte in questo thread) e argomentare il tuo punto di vista. Finora è solo acqua per ragioni che non capisco.

C'era questa domanda, ho risposto, che non lo farò! C'era anche una spiegazione del motivo. Allora, andiamo a pagina 19 & while(true)...
 
hrenfx:
Se ho letto, ancora non capisco perché pensi che il mio Expert Advisor non sia adatto a REAL. L'Expert Advisor non è adatto a VERO. Puoi andare nell'errore "è tutto scritto, rileggi", o puoi concretamente (cosa che ho chiamato diverse volte in questo thread) argomentare il tuo punto di vista. Finora è solo acqua per ragioni che non capisco.


Per calcolare correttamente, dovete usare il vostro analogo di IndicatorCounted(). Se la differenza tra Bars e il valore della nostra funzione (variabile) è maggiore di 1, dobbiamo fare un ricalcolo completo.

Se la differenza è 1, calcolo della barra precedente e calcolo della nuova barra. Se 0, allora solo il ricalcolo della barra corrente

 
Anche se c'è ancora un problema quando si trasferisce il calcolo dell'indicatore all'EA. Questo è quando hai bisogno di riferirti a valori di 5 o 10 o più barre fa. Il problema può essere risolto con alcune complicazioni. Ma può essere risolto
 
Vinin:


Devi usare il tuo analogo di IndicatorCounted() per calcolare correttamente. Se la differenza tra le barre e il valore della nostra funzione (variabile) è maggiore di 1, allora bisogna fare un ricalcolo completo.

Se la differenza è 1, calcolo della barra precedente e calcolo di quella nuova. Se 0, allora solo il ricalcolo della barra corrente

C'è qualcosa che non ti piace di questo codice?

double GetEMA()
{
  static int PrevTime = 0;
  
  if (PrevTime == Time[0])
    return(EMA);

  int i = iBarShift(Symbol(), Period(), PrevTime) - 1;  

  PrevTime = Time[0];    
  
  while (i >= 0)
  {
    EMA = EMA * Alpha + (1 - Alpha) * GetPrice(i);
    
    i--;
  }
  
  return(EMA);
} 
 
hrenfx:

C'è qualcosa che non ti piace di questo codice?


Naturalmente non mi piace. Conta con gli errori per niente
 
Sia più specifico, per favore.
 
hrenfx:
Sii più specifico, per favore.

Il valore EMA all'interruzione della comunicazione è preso in modo errato. Viene presa come l'ultima calcolata. Ma non è corretto. Come risultato, la funzione funzionerà in modo errato non su n barre ma su un numero molto più grande di barre. Se si salvano i suoi valori, ovviamente