Caratteristiche del linguaggio mql4, sottigliezze e tecniche - pagina 18

 
Dmitry Rannev:

Il problema è stato descritto sopra da fxsaber. Stiamo cercando di trovare la causa.

Ecco come funzionerà correttamente

NormalizeDouble(Price1 - Price2, _Digits) != 0.0;
 
Alexey Viktorov:

Ecco come funzionerà correttamente

Questo non è cercare di risolvere il problema del confronto dei doppi. Il compito è diverso.

 
Dmitry Rannev:

Il problema è stato descritto sopra da fxsaber. Stiamo cercando di trovare la causa.

Bene, allora fxsaber ha risposto correttamente - aggiungerei di non usare Printf, usare printf e specificare la precisione desiderata dei numeri in uscita { printf("Open: %.6f, Close: %.6f", OrderOpenPrice(), OrderClosePrice()); }

 
Ilya Malev:

Bene, allora fxsaber ha risposto correttamente - aggiungerei di non usare printf, usare printf e specificare la precisione desiderata dei numeri in uscita { printf("Open: %.6f, Close: %.6f", OrderOpenPrice(), OrderClosePrice()); }

Se vuoi capire qual è esattamente il problema, chiedi a fxsaber cosa gli impedisce di scrivere EA normalmente. Stiamo cercando, da parte dello sviluppatore del software di broker, di renderlo meno problematico. Non stiamo cercando un problema con la scrittura di EA s, stiamo cercando un problema con la memorizzazione di dati nel track record del server che impedisce a fxsaber di scrivere EAs.

 
Non ho sentito che a fxsaber è stato impedito di scrivere correttamente gli EA, ma non importa, non importa :) Se il mio commento era fuori tema, scusate.
 
Dmitry Rannev:

...ma nel salvare i dati nel record del server del trader, il che impedisce a fxsaber di scrivere EAs.

Ah, ecco... E non riusciamo a capire cosa lo fermi.
 
Alexey Navoykov:
Ah, eccolo... E non riusciamo a capire cosa lo fermi.

È lì che è iniziato tutto. E si è evoluto in questo

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

Prezzi non normalizzati in MT4

fxsaber, 2019.02.20 23:03

Ma la situazione è molto peggiore, e allo stesso tempo su MQ-Demo
// 15326434
// wmefo5sa
// MetaQuotes-Demo
void OnStart()
{
  const double Price1 = HistoryOrderSelect(356138100) ? HistoryOrderGetDouble(HistoryOrderGetTicket(0), ORDER_PRICE_CURRENT) : 0;
  const double Price2 = PositionSelectByTicket(356138100) ? PositionGetDouble(POSITION_PRICE_OPEN) : 0;  
  
  Print(Price1 - Price2); // -2.220446049250313e-16
}


Il prezzo di apertura della posizione corrente non è uguale al prezzo del loro ordine/commercio.

 
fxsaber:
Caratteristiche di ArrayResize per array multidimensionali

perché con ArrayRange() è necessario ottenere il numero di elementi nella dimensione richiesta, e si può ridimensionare solo la 1a dimensione comunque, ecco perché è più logico usare mql5

 

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

Bug, bug, domande

Andrey Khatimlianskii, 2019.03.12 22:57

Mi chiedo se TerminalInfoInteger(TERMINAL_TRADE_ALLOWED) (pulsante AutoTrade) influisce sugli EA testati (MT4)?

Nel 1170 influisce, direttamente con il pulsante è possibile controllare il trading nel tester. Sono scioccato.

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

Bug, bug, domande

Vladimir Pastushak, 2019.03.13 19:12

Se il vostro codice contiene qualcosa come

if(!TerminalInfoInteger (TERMINAL_TRADE_ALLOWED))
return;

Il pulsante funziona.

Se non c'è un tale comando, allora il pulsante non funziona.

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

Bug, bug, domande

Vladislav Andruschenko, 2019.03.13 19:14


Ne ho scritto circa due anni fa.


È esattamente quello che è. Ecco perché ho disattivato i controlli dei pulsanti nel tester di strategia.





 

Si è scoperto che è possibile ottenere i valori del buffer degli indicatori in esecuzione su un grafico (uso una tantum di WinAPI).

Se senza DLL - quasi in modalità automatica.