Errori, bug, domande - pagina 2624

 
Михаил:

Non cerco spesso i codici a freccia, ma sono incredibilmente difficili da trovare nella guida!

È una tabella con asterischi, cerchi, ecc.

E la ricerca restituisce tutto tranne quello giusto!

Wingdings
 

Forum sul trading, sistemi di trading automatico e test di strategia

Biblioteche: HistoryTicks

fxsaber, 2020.01.09 14:43

Non ho notato che la versione KB è vecchia. Purtroppo non c'è modo di aggiornare. La macchina KB dà questo
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
Tutto si compila in ME senza errori.
 
Stanislav Korotky:

Perché nella linea 3:

avvertimento di "errore di segno"?

Datetime dovrebbe essere un numero senza segno (8 byte come ulong). Mi faccia un esempio di una data negativa.

probabilmente perché non c'è un tipo di timestamp separato e datetime è usato anche per memorizzare la differenza di tempo
 
Puoi dirmi quale evento (se esiste) viene generato nel tester quando viene premuto il pulsante Stop?
 
Ancora una volta, aiuto! Non so come recuperare una connessione migliore, cambiare account non aiuta
File:
Mc3FTItT2F8.jpg  18 kb
 

Quando si applicaChartSetSymbolPeriod nell'indicatoreOnInit durante il debug sui dati attuali c'è una cosa strana - in OnTick() tassi_totali dal vecchio TF, e array di serie temporali dal nuovo:

datetime shift,arr[],arr2[];
void OnInit()
  {
 if (ChartPeriod()!=PERIOD_D1)
 {
     ChartSetSymbolPeriod(0,Symbol(),PERIOD_D1);
     CopyTime(Symbol(),PERIOD_D1,0,iBars(Symbol(),PERIOD_D1),arr);     
     ChartRedraw();
     Sleep(100);
  }  
 CopyTime(Symbol(),PERIOD_H1,0,iBars(Symbol(),PERIOD_H1),arr2); 
  }

Qui vediamo Time[x] da Daytime, erates_total da H1, con il TF del grafico cambiato in Daytime nella finestra del debugger.


 
Aleksey Mavrin:

Quando si applicaChartSetSymbolPeriod nell'indicatoreOnInit durante il debug sui dati attuali c'è una cosa strana - in OnTick() tassi_totali dal vecchio TF, e array di serie temporali dal nuovo:

Qui vediamo Time[x] da Daytime, erates_total da H1, con il TF del grafico cambiato in Daytime nella finestra del debugger.


Quando si cambia timeframe, l'indicatore viene completamente ricreato. Cioè, la maniglia dell'indicatore precedente viene cancellata e viene creata quella nuova.
Ma c'è un "ma". L'indicatore precedente è ancora presente per qualche tempo.

Non è la ragione...

 
Aleksey Mavrin:

Quando si applicaChartSetSymbolPeriod nell'indicatoreOnInit durante il debug sui dati attuali c'è una cosa strana - in OnTick() tassi_totali dal vecchio TF, e array di serie temporali dal nuovo:

Qui vediamo Time[x] da Daytime, erates_total da H1, con il TF del grafico cambiato in Daytime nella finestra del debugger.

IndicatoreRilascio

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Artyom Trishkin:

Quando il timeframe cambia, l'indicatore viene completamente ricreato. Significa che la precedente maniglia dell'indicatore viene rimossa e ne viene creata una nuova.
Ma c'è un "ma". L'indicatore precedente è ancora presente per qualche tempo.

Non è la ragione...

Sì, come ho capito dai miei esperimenti, dopoChartSetSymbolPeriodl'OnInit viene completato e una volta (in modalità debug almeno) viene eseguito OnCalculate (in questo momento viene catturato). Cioè non interferisce con il funzionamento online.

Il fatto che i dati di diversi timeframes possano arrivare in OnCalculate è solo un bug, credo.

 
È un difetto di ArraySwap?
void OnStart()
{
  int ArrayStatic[1];
  int ArrayDynamic[];
  
  ArrayResize(ArrayDynamic, ArraySize(ArrayStatic));
  
  Print(ArraySwap(ArrayStatic, ArrayDynamic)); // false
}
Motivazione: