Errori, bug, domande - pagina 2965

 
fxsaber:

In attesa di questo.

Sì, anche interessante, se non sono i file ovviamente, se sì, la mappatura suggerita sopra è migliore

 
fxsaber:

Mando i tick dall'indicatore tramite questo: sparam contiene MqlTick, lparam - numero di tick.

L'Expert Advisor cattura questi tick in OnChartEvent. E deve capire se il tick attuale è quello più attuale o no? Cioè, c'è una coda di zecche o è vuota?

Per questo, legge il numero (il compito è leggere questo numero) dell'ultimo tick inviato dall'indicatore. Se il tick ha lo stesso numero - la coda è vuota, ed è possibile iniziare a lavorare con i tick.


E durante il funzionamento di OnTick, dopo OrderSend è necessario controllare se l'indicatore ha inviato altri tick. Per questo, abbiamo di nuovo bisogno di leggere il numero dall'indicatore. E ci possono essere più di cento di questi controlli durante un OnTick. Ecco perché dobbiamo leggerlo velocemente.

Faccio il controllo solo se non passano meno di millisecondi dal precedente. Questo approccio è ragionevole e riduce ancora di più il carico.

 

Può dirmi.

È possibile prendere il valore del lotto dal pannello dei terminali standard? Che si trova nell'angolo superiore sinistro del terminale.

Posso chiamare programmaticamente il menu di un indicatore o di un Expert Advisor? Per esempio, usando il pulsante.

 
fxsaber:

Faccio il controllo solo se è passato almeno un millisecondo dal precedente. Questo approccio si è rivelato ragionevole e ha ridotto ancora di più il carico.

Forse ho capito male, si può legare l'id dell'evento a un simbolo e non passare altri parametri

 
Fast235:

Forse ho capito male, puoi legare l'id dell'evento a un simbolo e non passare affatto gli altri parametri

Molto probabilmente.

 
fxsaber:

In attesa di questo.

Pensa - il cervello deve lavorare. Scuse - non sono un programmatore, ecc. - non sono accettati. Io stesso sono un musicista. Ho imparato il C++ da solo con l'aiuto del libro per principianti nel 2012.

Penso che sia ancora più facile per i non programmatori, perché non ci sono dogmi e stereotipi. Per esempio, questo"piccolo mostro" era 2 volte più corto mentre questo presunto"codice buono ma incomprensibile" era 3 volte più corto.

Nel frattempo, posso darvi una soluzione al vostro problema precedente:

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

Errori, bug, domande

A100, 2020.10.05 20:50

Così veloce? Non tutti gli esperti hanno ancora aderito... aspettare una settimana.

Suggerimento: anche questo funziona (ma la soluzione è leggermente diversa)

#define  MACRO(  x, y, z )       enum nn##z { y = x };
#define  MACRO2( x, y )          MACRO( x, y, __LINE__ )
 

Errore durante l'esecuzione:

void OnStart()
{
    Print( StringToTime( "ABCDEF" ));
}

Risultato: 2021.02.19 01:00:00

Atteso: datetime errato

 
A100:

Errore durante l'esecuzione:

Risultato: 2021.02.19 01:00:00

Atteso: datetime sbagliato

Discusso.

 
A100:

Pensa - il cervello deve lavorare.

L'opzione tramite SHORTNAME dell'indicatore è possibile.
 
A100:

questo"piccolo mostro" è uscito due volte più corto.

Non credo.