Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 81
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
La posizione è invertita perché il programma invia due richieste identiche al server. Il programma invia due richieste identiche al server perché il suo codice non controlla una richiesta inviata in precedenza (e non controlla il risultato dell'elaborazione di questa richiesta sul server).
Yedelkin scrive: il suo codice non controlla una richiesta inviata in precedenza. Puoi dirmi quale funzione controlla?
Ognuno ha una comprensione diversa del codice giusto. Quindi alla fine devi scrivere il codice "corretto". E come altro suggerimento - prova a vedere se questo codice funziona nel modo giusto (uso schematico del flag sentRequest):
Ognuno ha una comprensione diversa del codice giusto. Quindi alla fine devi scrivere il codice "corretto". E come altro suggerimento - prova a vedere se questo codice funziona nella chiave giusta (uso schematico del flag sentRequest):
Grazie mille! Provando...
Il risultato è il seguente: il codice chiude correttamente una posizione lunga e non ne apre una corta... Quando si riapre una posizione lunga, l'EA non la chiude secondo la condizione. Ci sono sempre messaggi nella finestra EA:
Come posso usare questo codice nel corpo dell'Expert Advisor, se funziona solo una volta)?
oldiol: При повторном открытии лонга, эксперт не закрывает больше позу по условию. В окне эксперта всё время идут сообщения: Как же использовать этот код в теле эксперта, если он работает только 1 раз)?
Dovrebbe essere abbastanza semplice in questa materia. Nel codice schematico il flag sentRequest dovrebbe essere impostato a zero se la posizione aperta non è una posizione Buy (ultima linea di codice). Vedi perché questo flag non è impostato a zero nel tuo codice quando non c'è una posizione aperta o la posizione aperta non è una posizione Buy.
Urrà! Ha funzionato)))) Rimosso if(sentRequest) sentRequest=false; E scritto prima del blocco if(PositionsTotal()==0) sentRequest=false; Grazie mille a Yedelkin per il suo aiuto, buona fortuna!
oldiol : Quando si riapre un long, EA non chiude più la posizione per condizione. Ci sono messaggi nella finestra EA tutto il tempo: come posso usare questo codice nel corpo EA, se funziona solo 1 volta)? Scusa, il mio errore... C'è un'altra condizione nel codice
if(PositionSelect(_Symbol)==true) // c'è una posizione aperta
{
POSIZIONE CHIUDERE BLOCCO
} // ... quindi
if(sentRequest) sentRequest=false;// lo mettiamo dietro la prossima parentesi e tutto funziona perfettamente. Yedelkin GRAZIE!