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
Sei molto disattento, non sono iol'iniziatore dell'argomento.
Dovresti anche mostrarmi un codice come questo:
void OnTradeTransaction (const MqlTradeTransaction &trans, // структура торговой транзакции
const MqlTradeRequest &request, // структура запроса
const MqlTradeResult &result) // структура ответа
{
}
Se non vi piace, potete usare Joba! È così?
Ho speso abbastanza tempo per rispondere alla sua domanda.
Se la sua domanda non fosse così "astratta", forse la risposta sarebbe più specifica.
Vale a dire:
1. FORTS o FOREX
2. Che tipo di rete usi o di siepe
3. se vengono utilizzati altri ordini durante la durata della posizione
La domanda è la stessa della risposta.
Sono d'accordo che questo funzionerebbe (nel caso di un riempimento completo)
{
if ((Trans.type == TRADE_TRANSACTION_DEAL_ADD) && (Trans.position > 0) && !PositionSelectByTicket(Trans.position))
Print("Position #" + (string)Trans.position + " - triggered SL/TP.");
}
Ma la conversazione sembra diventare un po' più ampia.
Non ricordo che il volume possa essere impostato per ST/TP.
In caso contrario (controllo ora), la posizione si chiuderà FULL o SL o TP
Non ricordo di aver aspettato ST/TP per impostare il volume, se no,
allora la posizione chiuderà FULL o SL o TP
La liquidità potrebbe non essere sufficiente.
Sì, e il Broker può spegnere la corrente :)....
Prendete uno strumento poco liquido e basta.
Ecco perché ho raccomandato l'uso di ordini pendenti
Aggiunto da
Molto dipende dal mercato e dallo strumento...
Per identificare accuratamente a quale ordine è stato risposto nell'evento OnTradeTransaction, tutti gli eventi diversi dal primo evento ordine sono firmati con un biglietto.
Il primo evento è firmato sia dal ticket che dal request_id. Il request_id è ottenuto dall'utente subito dopo l'invio dell'ordine dalla funzione OrderSendAsinc. Ecco come una specifica iterazione di OrderSendAsinc è collegata ai risultati ottenuti in OnTradeTransaction.
Il ticket in OrderSendAsync potrebbe anche non esistere, e molto probabilmente non esisterà se stiamo sparando ordini a cento al secondo (retcode 10008 al massimo, e basta).
Il ticket in OrderSendAsync può esserci o meno e molto probabilmente non ci sarà se gli ordini sono sparati a poche migliaia di unità al secondo (retcode 10008 al massimo e tutto il resto).
Beh, non dieci, solo 30 al secondo su un login standard.
Se l'avete scritto correttamente, l'ordine (o gli ordini) ci sarà sicuramente.
Invece di analizzare gli eventi, dovresti analizzare l'ambiente di trading e solo se l'ambiente di trading è cambiato dovresti prendere le decisioni necessarie. OnTransaction può essere usato solo in casi molto limitati, e di solito è meglio farne a meno nel vostro lavoro. Guarda MetaTrader 4, non ha OnTransaction e tutti ne fanno a meno.
Sono d'accordo. Ma purtroppo in MT5, a differenza di MT4, l'ambiente di trading può non corrispondere alla realtà. Per esempio, quando un ordine in sospeso viene eseguito per diversi millisecondi, potrebbe non essere trovato da nessuna parte. E anche OnTradeTransaction non aiuta in questo caso.
D'accordo. Ma purtroppo in MT5, a differenza di MT4, l'ambiente di trading potrebbe non corrispondere alla realtà. Per esempio, quando un ordine in sospeso viene eseguito per pochi millisecondi, potrebbe non essere da nessuna parte. E anche OnTradeTransaction non aiuta in questo caso.
Forse, OnTrade, come ho capito è generato nel terminale stesso già sulla base delle transazioni.
Oppure, vuoi dire che quando un ordine pendente scatta nel gestore OnTrade, nessuna nuova posizione aperta può essere rilevata?