Autoapprendimento del linguaggio MQL5 da zero - pagina 73

 
Vasiliy Sokolov:

Ho aggiunto alcune funzioni. Mi sono ritrovato con un codice come questo:

Non ho ancora capito come si lavora con un MA. Non ha senso sulle reti. In ogni caso si può facilmente rimuovere questo controllo, poiché è fatto solo in una funzione.

Grazie, Vasiliy, per le interessanti informazioni. Si dice che la ripetizione è la madre dell'apprendimento! Questa volta sembra riguardare me... :-)

Ho allegato il robot - trawl variants - per nome, è intuitivo, quando si inserisce il codice EXPA è tutto descritto, ma su MT4. Io stesso ora faccio trading su MT4 e ne ho bisogno per il trading. Questi robot nella base di codice sono di Yuriy Dzyuban, i miei ringraziamenti a lui. (A proposito - l'argomento - robot simili per MT5)

opzioni robot a strascico



Si scrive un biglietto e i parametri delle variabili esterne del trawl appropriato, lo si mette su un grafico e si segue il profitto!!!

Ecco un esempio di una rete a strascico MA:

extern   int      iTicket;             // уникальный номер (тикет) открытой позиции
extern   int      iTmfrm;              // период графика, на котором строится МА (1, 5, 15, 30, 60, 240, 1440, 10080, 43200)
extern   int      iMAPeriod = 21;      // период МА (не меньше 2)
extern   int      iMAShift = 0;        // сдвиг индикатора относительно ценового графика
extern   int      iMAMethod = 0;       // метод усреднения (0 - MODE_SMA, 1 - MODE_EMA, 2 - MODE_SMMA, 3 - MODE_LWMA);
extern   int      iApplPrice = 0;      // используемая цена (0 - PRICE_CLOSE, 1 - PRICE_OPEN, 2 - PRICE_HIGH, 3 - PRICE_LOW, 4 - PRICE_MEDIAN, 5 - PRICE_TYPICAL, 6 - PRICE_WEIGHTED)
extern   int      iShift = 1;          // индекс получаемого значения из индикаторного буфера (сдвиг относительно текущего бара на указанное количество периодов назад)
extern   int      iIndent = 3;         // отступ от МА, на котором размещается стоплосс
File:
 

Buona giornata e buon umore a tutti!

Continuo a studiare il linguaggio di programmazione MQL5. Ho scritto il codice del mio Expert Advisor con un trailing stop. All'inizio ero soddisfatto del test dell'EA, ma si è rivelato troppo presto. La questione è che l'EA non funziona in modo stabile e non capisco di cosa si tratti.

L'essenza del problema: sto eseguendo l'Expert Advisor su dati storici dal 6 gennaio 2020. I primi giorni, l'Expert Advisor funziona esattamente secondo l'algoritmo, ma appena il test raggiunge il 13 gennaio 2020, l'algoritmo non viene eseguito. Ho scoperto che l'intero problema è nella funzione di trailing stop loss. L'unica cosa che non riesco a capire è come può accadere - a volte la rete a strascico funziona e a volte no? Sto cercando di capire dove ho sbagliato.

Non esporrò ancora il codice della funzione trawl, perché voglio risolvere il problema da solo.

Saluti, Vladimir.

 
MrBrooklin:

Buona giornata e buon umore a tutti!

Continuo a studiare il linguaggio di programmazione MQL5. Ho scritto il codice del mio Expert Advisor con un trailing stop. All'inizio ero molto contento di testarlo, ma si è rivelato troppo presto. La questione è che l'EA non funziona in modo stabile e non capisco di cosa si tratti.

L'essenza del problema: sto eseguendo l'Expert Advisor su dati storici dal 6 gennaio 2020. I primi giorni, l'Expert Advisor funziona esattamente secondo l'algoritmo, ma appena il test raggiunge il 13 gennaio 2020, l'algoritmo non viene eseguito. Ho scoperto che l'intero problema è nella funzione di trailing stop loss. L'unica cosa che non riesco a capire è come può accadere - a volte la rete a strascico funziona e a volte no? Sto cercando di capire dove ho sbagliato.

Non esporrò ancora il codice della funzione trawl, perché voglio risolvere il problema da solo.

Sinceramente, Vladimir.

Si possono usare registri e allarmi. E come ultima risorsa, registrare ogni starnuto nel file ))))

 
Valeriy Yastremskiy:

Un diario di bordo e un allarme per aiutare. E come minimo una registrazione nel file di ogni starnuto))))

Ciao Valery! Grazie per il suggerimento. Ho dato un'occhiata al registro il giorno in cui la rete a strascico non funziona correttamente:

10016

TRADE_RETCODE_INVALID_STOPS

Fermate errate nella richiesta


Tuttavia, anche il giorno in cui il trawl stop loss funziona bene, appare lo stesso identico codice di ritorno del trade server. Un'ambiguità.

Saluti, Vladimir.

 
MrBrooklin:

Ciao Valery! Grazie per il suggerimento. Ho dato un'occhiata al giornale di bordo il giorno in cui la rete a strascico non funziona correttamente:

10016

TRADE_RETCODE_INVALID_STOPS

Fermate errate nella richiesta.


Ora ho bisogno di capire come può essere che in un giorno di trading gli stop nella richiesta siano corretti, mentre sono sbagliati in un altro giorno di trading. Questo è un errore.

Sinceramente, Vladimir.

Il diario non scrive tutto. Quindi, avete calcolato lo stop e l'avete piazzato. e appena prima dell'ordine, il livello di congelamento è cambiato lungo la strada. Succede.

Alert è più veloce e immediatamente visibile, anche la stampa è visibile, ma ci sono molti messaggi di sistema.

 
Valeriy Yastremskiy:

Il diario di bordo non scrive tutto. Così hanno calcolato la fermata, l'hanno tolta. e prima, appena prima dell'ordine e il livello di congelamento sono stati tolti. improvvisamente all'uscita è cambiato. Succede.

Alert è più veloce e immediatamente visibile, anche la stampa è visibile, ma ci sono molti messaggi di sistema.

Valeri, qual è il livello di congelamento? Forse dovrebbe essere prescritto nel codice in qualche modo?

Saluti, Vladimir.

 
MrBrooklin:

Ciao Valery! Grazie per il suggerimento. Ho dato un'occhiata al giornale di bordo il giorno in cui la rete a strascico non funziona correttamente:

10016

TRADE_RETCODE_INVALID_STOPS

Fermate errate nella richiesta


Tuttavia, anche il giorno in cui il trawl stop loss funziona bene, appare lo stesso identico codice di ritorno del trade server. Un'ambiguità.

Saluti, Vladimir.

Ciao! Molto probabilmente il broker ha cambiato il livello di stop, estop sbagliati in caso di trailing è quando la distanza di trailing è inferiore allivello di stop consentito dal broker, basta aumentare la distanza di trailing leggermente, la distanza di trailing nondovrebbe essere inferiore al livello di stop, si potrebbe trovare questa informazione nella specifica di ogni strumento
 
VVT:
Ciao! Molto probabilmente il broker ha cambiato il livello di stop. Glistop sbagliati in caso di trailing sono quando la distanza di trail è inferiore a quella consentita dallivello di stop del broker, devi solo aumentare un po' la distanza di trail, la distanza di trail nondeve essere inferiore al livello di stop, questa informazione la puoi trovare nelle specifiche di ogni strumento

Ciao, grazie per il consiglio. Onestamente non ne sapevo nulla. Cercherò di cambiarlo.

Sinceramente, Vladimir.

 
VVT:
Ciao! Molto probabilmente il broker ha cambiato il livello di stop. Glistop sbagliati in caso di trailingstop sono quando la distanza della traccia è inferiore a quella consentita dal broker, devi solo aumentare un po' la distanza della traccia, la distanza della traccia nondeve essere inferiore al livello degli stop, questa informazione la puoi trovare nelle specifiche di ogni strumento

Ho provato a cambiare la distanza. Non ha funzionato. È lo stesso. Continuerò a leggere sul trailing stop loss e a trattare il codice.

Sinceramente, Vladimir.

 
MrBrooklin:

Ho provato a cambiare la distanza. Non ha funzionato. È lo stesso. Continuerò a leggere sul trailing stop loss e a trattare il codice.

Sinceramente, Vladimir.

Stop errato, è strano. Cos'altro succede durante la pesca a strascico?

Motivazione: