Discussione sull’articolo "Guida Step-By-Step alla scrittura di un Expert Advisor in MQL5 per Principianti" - pagina 20

 
Ms fox pro, ma quelli erano i giorni
 

Ho quindi ricostruito l'EA.

Ovviamente non èredditizio, ma almeno è leggibile (per me).

In bocca al lupo per il proseguimento.

File:
 
Otto Pauser:

Ho quindi ricostruito l'EA.

Ovviamente non è redditizio, ma almeno è leggibile (per me).

Buona fortuna per continuare a usarlo.

GRAZIE MILLE PER QUESTO!

Dite addio alla mia vacanza senza notebook per ora

 
vmajor:

Ciao, sono nuovo, ottima guida, grazie!


Ho un problema però. Ho compilato l'esempio fornito, ho eseguito il debugger, i punti di interruzione hanno funzionato, ho ripreso il debug e ottengo 4756 errori su entrambi gli ordini di acquisto e vendita, come questo:



Cosa può succedere e cosa devo controllare per correggere questo comportamento?


V.


Si tratta di un bug dell'EA. Date un'occhiata a pagina 2 dove si trova la soluzione.

Un approccio migliore: utilizzare la classe https://www.mql5.com/it/docs/standardlibrary/tradeclasses/ctrade.

Documentation on MQL5: Standard Library / Trade Classes / CTrade
Documentation on MQL5: Standard Library / Trade Classes / CTrade
  • www.mql5.com
Standard Library / Trade Classes / CTrade - Reference on algorithmic/automated trading language for MetaTrader 5
 

L'EA sta aprendo molte posizioni sia in acquisto che in vendita.

Il modo migliore per correggerlo è questo:

if(Buy_Condition_1 && Buy_Condition_2)

{

if(Buy_Condition_3 && Buy_Condition_4)

{

// c'è una posizione Buy aperta?

if(Buy_opened || Sell_opened)

{

Alert("Abbiamo già una posizione aperta!!!");

return; // Non aprire una nuova posizione di acquisto.

}

---------------Lo stesso vale per la posizione di vendita-----------------------


Il codice originale sotto apre più posizioni:

if(Buy_Condition_1 && Buy_Condition_2)

{

if(Buy_Condition_3 && Buy_Condition_4)

{

// c'è qualche posizione Buy aperta?

if(Buy_opened ) //Errore, dovrebbe essere: if(Buy_opened || Sell_opened)

Alert("Abbiamo già una posizione aperta!!!");

return; // Non aprire una nuova posizione Buy

}

 
chucks4sure:

Si prega di modificare il messaggio e di utilizzare il pulsante del codice (Alt + S) quando si pubblica il codice.

 
Qualcuno potrebbe aiutarmi con l'ottimizzazione dell'EA?
Quali valori di inizio, fine e passo devo usare?
Posso usare l'ottimizzazione genetica?
 
Visto che sempre più persone vengono qui, buon articolo, buon lavoro))))) Domanda: è corretto nell'articolo calcolare il prezzo di apertura dell'ordine, lo stoploss e il take profit per l'acquisto dal prezzo ask e per la vendita dal prezzo bid? Sembra essere corretto per il prezzo di apertura dell'ordine di acquisto - ask, ma stoploss e take profit sono calcolati dal prezzo bid? Dopo tutto, l'ordine di acquisto si chiude al prezzo bid. Mi scuso per il mio russo in termini.
 
VikMorroHun:


Si tratta di un bug dell'EA. Date un'occhiata alla pagina 2 dove si trova la soluzione.

Un approccio migliore: utilizzare la classe https://www.mql5.com/it/docs/standardlibrary/tradeclasses/ctrade.



Ho avuto l'errore 4756, ho visto la soluzione a pagina 2 e ho controllato il codice originale, c'era ZeroMemory(mrequest); nella stessa riga 218. ma ho ancora l'errore 4756.

 
wefgoncalves:
Qualcuno potrebbe aiutarmi con l'ottimizzazione dell'EA?
Quali valori di inizio, fine e step devo usare?
Posso usare l'ottimizzazione genetica?

Ciao amico mio, anch'io sono un principiante ma c'è un canale YouTube che mi ha aiutato molto con l'ottimizzazione, il canale Vilela!

Ho trovato un sacco di cose utili lì con un insegnamento eccellente. Posso parlare con te così possiamo scambiarci le esperienze?
buoni studi!!!