Caratteristiche del linguaggio mql5, sottigliezze e tecniche - pagina 80

 
Vitaly Muzichenko:

L'ha fatto, non ha mostrato nessuna stronzata. Ciò che confonde è che lo spostamento dovrebbe probabilmente essere -720

P.S. Ancora, so che il turno +2 ore - scritto sul sito, ma il robot non lo sa.

Non c'è bisogno di credere ai siti web. Il turno effettivo è di 3 ore.

Il risultato richiesto: "Trova l'ora corrente TimeServer()" Non ho capito bene, forse sto facendo qualcosa di sbagliato.

// https://www.mql5.com/ru/docs/dateandtime/timetradeserver
datetime TimeTradeServer()
{
  return(TimeGMT() - TimeServerGMTOffset());
}
 
fxsaber:

Non dovete credere ai siti web. Il turno effettivo è di 3 ore.

Controllato sui 4 terminali, è corretto.


Grazie per il vostro tempo!

 

Forum sul trading, sistemi di trading automatico e strategie di trading di prova

Discussione dell'articolo "Cross-Platform Expert Advisor: Segnali"

fxsaber, 2018.04.03 06:26

MQLInfoInteger(MQL_TESTER) || MQLInfoInteger(MQL_OPTIMIZATION) == MQLInfoInteger(MQL_TESTER)
 

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

Biblioteche: Simbolo

fxsaber, 2018.04.06 08:20

Se hai bisogno di cambiare alcune proprietà di un simbolo personalizzato, in alcuni casi questo deve essere fatto PRIMA di importare le citazioni.

Quindi consiglio vivamente di impostare prima tutte le proprietà del simbolo, e solo dopo fare l'importazione.

Per esempio, se volete impostareSYMBOL_TRADE_TICK_VALUE e SYMBOL_TRADE_TICK_SIZE, dovreste farlo prima di importare ticks/bars.

 
// Копирование всех баров без обращения к торговому серверу
CopyRates(Symb, PERIOD_M1, 0, (int)SeriesInfoInteger(Symb, PERIOD_M1, SERIES_BARS_COUNT), Rates);
 
fxsaber:

Gli array grandi sono belli, ma ricordate che le dimensioni contano.

 
Nikolai Semko:

Le grandi matrici sono certamente una buona cosa, ma bisogna tenerlo a mente.

Non c'entra niente.

 
fxsaber:

Questo non c'entra niente.

Chi lo sa...
Dopo tutto, un elemento di MqlRates pesa 60 byte.

Naturalmente, se usate un solo array di 10000 elementi, va bene.

Ma se avete un mucchio di questi array fatti di caratteri sintetici, e ognuno di essi ha una dimensione di 100000, vi troverete di fronte a un forte calo (più di un ordine di grandezza) nella velocità di accesso agli elementi dell'array.

Non farà male tenere d'occhio l'ottimizzazione delle dimensioni dell'array, e questo è un buono stile. Questo è tutto. Ho solo detto che è qualcosa da tenere a mente.

 
Nikolai Semko:

Come fai a sapere...
Un elemento MqlRates pesa 60 byte.

Naturalmente, se usate un solo array di 10000 elementi, va bene.

Ma se avete un mucchio di questi array fatti di caratteri sintetici, e ognuno è grande 100000, allora aspettatevi una drastica (più di un ordine di grandezza) diminuzione della velocità di funzionamento.

Non fa male tenere d'occhio l'ottimizzazione delle dimensioni dell'array, ed è un buono stile. Questo è tutto. Ho solo detto che dovreste tenerlo a mente.

L'esempio non si riferisce in alcun modo alle dimensioni dell'array. La questione era di non chiamare la richiesta di cronologia dal server commerciale e quindi ottenere le barre che sono già presenti nel terminale il più presto possibile.

 
fxsaber:

L'esempio non si riferisce in alcun modo alla dimensione degli array. Si trattava di non chiamare una richiesta di cronologia dal server di trading e, di conseguenza, ottenere le barre che sono già nel terminale il più rapidamente possibile.

Sì, non so di cosa si trattasse.

Ho appena visto la tua linea di codice, che probabilmente creerà un array più grande della dimensione della cache della CPU.

Motivazione: