Discussione sull’articolo "Guida Step-By-Step alla scrittura di un Expert Advisor in MQL5 per Principianti" - pagina 17
Ti stai perdendo delle opportunità di trading:
- App di trading gratuite
- Oltre 8.000 segnali per il copy trading
- Notizie economiche per esplorare i mercati finanziari
Registrazione
Accedi
Accetti la politica del sito e le condizioni d’uso
Se non hai un account, registrati
Ho scaricato il file e ho eseguito il debug del codice, e ha mostrato questo avviso qualcuno potrebbe aiutarmi con questo?
il valore di ritorno di'OrderSend' dovrebbe essere controllato
Salve, sono un principiante e sto testando il Robot.
Prova questo:
// OrderSend(mrequest,mresult);
bool res=OrderSend(mrequest,mresult);
// ottenere il codice del risultato
if(res && (mresult.retcode==10009 || mresult.retcode==10008)) //Richiesta completata o ordine effettuato
{
Alert("È stato effettuato un ordine di acquisto con Ticket#:",mresult.order,"!");
}
altrimenti
{
Alert("La richiesta di ordine di acquisto non è stata completata -errore:",GetLastError());
ResetLastError();
ritorno;
}
Se mi sbaglio, per favore correggetemi!
Fonte della ricerca: https://www.mql5.com/en/forum/23663
Quando eseguo il debug, ottengo sempre un errore quando invio l'ordine. Ho pensato che fosse il mio codice, ma anche quando provo il file mql5 per il download mi dà un errore.
Quando eseguo il debug, ottengo sempre un errore quando invio l'ordine. Ho pensato che fosse il mio codice, ma anche quando provo il file mql5 per il download mi dà un errore.
Penso che l'esempio sia in valute, quindi la variabile lotto che è 0,1 non è adatta al vostro test, provate a cambiarla in questo modo (cambiando la variabile mrequest.volume):
double minSymbolLot = SymbolInfoDouble(_Symbol,SYMBOL_VOLUME_MIN);
mrequest.action = TRADE_ACTION_DEAL; // esecuzione immediata dell'ordine
mrequest.price = NormalizeDouble(latest_price.ask,_Digits); // ultimo prezzo ask
mrequest.sl = NormaliseDouble(latest_price.ask - STP*_Point,_Digits); // Stop Loss
mrequest.tp = NormaliseDouble(latest_price.ask + TKP*_Point,_Digits); // Take Profit
mrequest.symbol = _Symbol; // coppia di valute
mrequest.volume = minSymbolLot; // numero di lotti da negoziare
mrequest.magic = EA_Magic; // numero magico dell'ordine
mrequest.type = ORDER_TYPE_BUY; // ordine di acquisto
mrequest.type_filling = ORDER_FILLING_FOK; // Tipo di esecuzione dell'ordine
mrequest.deviation=100;
Qualcuno sa se posso usare questo EA per i mini-indici o i mini-dollari?
Avete capito la strategia? Siete consapevoli dei rischi? Avete analizzato i livelli di SL e TP? Conoscete gli indicatori tecnici utilizzati? Sapete come parametrizzarli? Sapete come personalizzare le variabili per ogni asset (WIN e WDO)?
Il codice stesso è stato sviluppato per qualsiasi asset e lo si può identificare attraverso il "_Simbolo" e per qualsiasi tempo grafico "_Periodo".
Ora è importante che sappiate cosa state facendo quando eseguite l'EA. Se decidete di farlo, vi suggerisco di lavorare solo su conti demo fino a quando non padroneggiate lo strumento e non avete una migliore comprensione del mercato azionario.
[ ]'s
Ragazzi,
Questo è un semplice codice modificato se si verifica un errore con l'apertura di più ordini contemporaneamente.
Sostituite questo codice: dalla riga 167 -177
con questo:
Grazie @Samuel Olowoyo
Consigliare come risolvere il problema. L'Expert Advisor apre diverse posizioni di fila per l'acquisto, lo stesso per la vendita.
L'Expert Advisor non vede che ci sono già posizioni di acquisto e di vendita aperte e ne apre di nuove, nonostante ci sia un controllo nel codice.
sulle posizioni già aperte. Per qualche motivo il controllo non funziona.
Dato che qui non c'è aiuto da parte dei troll-moderatori, copierò la risposta dal forum inglese:
Ragazzi, questo è un codice semplice e veloce da modificare, se avete un errore con diversi ordini che si aprono nello stesso momento. Sostituite questo codice: dalla riga 167 -177
Con questo:
Dal momento che non posso ottenere alcun aiuto dai troll-moderatori qui, copierò la risposta dal forum inglese:
Ragazzi, questo è un codice semplice e veloce da modificare se avete un errore con l'apertura di più ordini contemporaneamente. Sostituite questo codice: dalla riga 167 -177
con questo: