![MQL5 - Linguaggio delle strategie di trading integrato nel client terminal MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Quale funzione, classe/metodo stai usando per inviare/modificare i tuoi ordini?
OrderSend() dopo aver impostatoMqlTradeRequest
Avete visto questo (da OrderSend doc)?
Va notato che il completamento dell'operazione del metodo OrderSend() non significa sempre il completamento dell'operazione quando si piazza un ordine a mercato. Controllate il valore delretcode che contiene il codice di ritorno del trade server e i valori del campo deal o order a seconda del tipo di operazione nelrisultato restituito .
Sarebbe più facile aiutare a vedere il codice.
Hai visto questo (da OrderSend doc)?
Sarebbe più facile aiutare a vedere il codice.
Controllo il risultato restituito e provo a piazzare lo SL & TP solo se restituisce TRADE_RETCODE_PLACED o TRADE_RETCODE_DONE
Controllo il risultato restituito e provo a piazzare lo SL & TP solo se restituisce TRADE_RETCODE_PLACED o TRADE_RETCODE_DONE
Va notato che il completamento dell'operazione del metodo OrderSend() non significa sempre il completamento dell'operazione quando si piazza un ordine a mercato. Controllate il valore delretcode che contiene il codice di ritorno del trade server e i valori del campo deal o order a seconda del tipo di operazione nelrisultato restituito .
Dovete controllare il numero di ticket dell'operazione:
Questa non è l'ultima parola, se il vostro deal ticket è 0, la vostra modifica di SL/TP non verrà eseguita comunque. Sto ancora cercando...
Dovete controllare il numero di deal ticket:
Non è l'ultima parola, se il tuo deal ticket è 0, la tua modifica di SL/TP non verrà eseguita comunque. Sto ancora cercando...
Posso farlo, ma il problema è che il trade ha avuto successo e la posizione è stata aperta . . eppure quando ho provato ad aggiungere lo SL & TP è fallito con Invalid Stops anche se non erano invalidi. Sembra che io debba aspettare che succeda qualcosa prima di poter inviare la richiesta per impostare il TP & SL . . . ma non so davvero quale sia la cosa ufficiale e documentata che dovrei aspettare.
Grazie per la risposta :-)
Posso farlo, ma il problema è che il trade ha avuto successo e la posizione è stata aperta... ma quando ho provato ad aggiungere lo SL e il TP è fallito con Invalid Stops anche se non erano invalidi. Sembra che devo aspettare che succeda qualcosa prima di poter inviare la richiesta per impostare il TP e lo SL... ma non so davvero quale sia la cosa ufficiale e documentata che dovrei aspettare.
Grazie per la risposta :-)
Lo so. Sto controllando tutto il sito mql5 per trovare una risposta :-D
Modifica:
Nonc'è assolutamente nulla su questo sito che mostra come mettere un sl / tp con un tipo di esecuzione del commercio dimercato.
In realtà ho lo stesso problema ma usando PositionOpen al posto di OrderSend, posso anche farlo manualmente.
Lo so. Sto controllando tutti i siti mql5 per trovare una risposta :-D
Modifica:
Nonc'è assolutamente nulla su questo sito che mostri come mettere un sl / tp con un tipo di esecuzione commerciale dimercato.
In realtà ho lo stesso problema ma usando PositionOpen al posto di OrderSend, posso anche farlo manualmente.
Ho trovato. E' un problema di sincronizzazione tra il tuo EA e il trade server. Devi usare il gestore di eventi OnTradeTransaction().
Il risultato dell'esecuzione della richiesta di trade su un server inviato dalla funzione OrderSend() può essere tracciato dal gestore OnTradeTransaction. Va notato che OnTradeTransaction handler sarà chiamato diverse volte durante l'esecuzione di una richiesta di compravendita.
Per esempio, quando si invia un ordine di acquisto a mercato, questo viene gestito, viene creato un ordine di acquisto appropriato per il conto, l'ordine viene poi eseguito e rimosso dalla lista di quelli aperti, poi viene aggiunto alla cronologia degli ordini, viene aggiunta un'operazione appropriata alla cronologia e viene creata una nuova posizione. La funzione OnTradeTransaction sarà chiamata per ognuno di questi eventi.
Ho trovato. È un problema di sincronizzazione tra il tuo EA e il server commerciale. Devi usare il gestore di eventi OnTradeTransaction().
RTFM ;-) Fai una prova... domani per me.Ahhhh, grazie, darò un'occhiata :-)
Il mio EA sta portando strani errori con la build 778. Il volume di 0,1 è normalizzato e chiaramente non valido.
2013.03.12 07:29:57 pivots (SILVER,M5) SILVER failed ORDER_TYPE_SELL_STOP with volume 0.10; err# 4756 check code: 10014 commenti: Volume non valido
2013.03.12 07:20:00 pivots (SILVER,M5) SILVER failed ORDER_TYPE_SELL_STOP with volume 0.10; err# 4756 returned code: 10014, commenti del broker: Volume non valido
Ecco il codice che lo porta su