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
Ancora una volta, per "candidati", "medici", "professori" e "accademici".
Qualsiasi evento che arriva a OnTradeTransaction() può essere perso
Ecco perché penso che sia un errore che dopo aver ricevuto l'evento significativoTRADE_TRANSACTION_HISTORY_ADD
i dati nel terminale non saranno aggiornati!
In Aiuto(https://www.mql5.com/ru/docs/basis/function/events#ontradetransaction):
Una richiesta di compravendita inviata manualmente dal terminale o tramite le funzioniOrderSend()/OrderSendAsync() può generare diverse transazioni commerciali consecutive sul server commerciale. L'ordine di arrivo di queste transazioni nel terminale non è garantito, quindi non possiamo costruire il nostro algoritmo di trading aspettando l'arrivo di alcune transazioni commerciali dopo altre. Inoltre, le transazioni possono essere perse quando vengono consegnate dal server al terminale.
Pertanto, non è chiaro perché questa funzione sia necessaria. Semplicemente non dovreste usarlo, tutto qui. Devi analizzare tu stesso la storia degli ordini e degli affari.
In Aiuto(https://www.mql5.com/ru/docs/basis/function/events#ontradetransaction):
Non è quindi chiaro perché questa funzione sia necessaria. Semplicemente non dovresti usarlo, tutto qui. Dovete analizzare voi stessi la storia degli ordini e delle compravendite.
Per quanto riguarda gli ordini, le posizioni e le transazioni.
Come scritto nell'aiuto - la sequenza delle transazioni non è garantita - la transazione di trasferimento dell'ordine alla storia può essere ricevuta prima della transazione della transazione.
Cambiare una posizione nel terminale è strettamente un risultato della ricezione di una transazione commerciale, quindi la sua ricezione è una garanzia che la posizione è cambiata.
Ottenere una transazione per trasferire un ordine nella cronologia assicura solo che l'ordine ha cessato di essere attivo (aperto) ed è stato spostato nella cronologia degli ordini.
Per quanto riguarda questa frase.
Sembra essere rimasto nella documentazione di una delle versioni iniziali del terminale con trading asincrono. Sarà rimosso nel prossimo futuro. I colpevoli saranno giustiziati.
Per quanto riguarda gli ordini, le posizioni e le transazioni.
Come scritto nell'aiuto - la sequenza delle transazioni non è garantita - una transazione di trasferimento di ordine alla storia può essere ricevuta prima di una transazione di un affare.
Cambiare una posizione nel terminale è strettamente un risultato della ricezione di una transazione commerciale, quindi la sua ricezione è una garanzia che la posizione è cambiata.
Ottenere una transazione per trasferire un ordine nella cronologia assicura solo che l'ordine ha cessato di essere attivo (aperto) ed è stato spostato nella cronologia degli ordini.
Per quanto riguarda questa frase.
Sembra essere rimasto nella documentazione di una delle versioni iniziali del terminale con trading asincrono. Sarà rimosso nel prossimo futuro. I colpevoli saranno giustiziati.
Grazie mille!
E io una mitragliatrice (o almeno un fucile), per partecipare alle riprese? :)
MQ Alexander!
Vorrei una spiegazione più estesa degli scambi e delle posizioni.
Perché TU hai scritto:
E infatti risulta quanto segue:
Test Expert Advisor build 1375 apertura demo (è stato eseguito 2 volte)
Ed ecco i risultati:
Entrambe le volte TRADE_TRANSACTION_HISTORY_ADD è venuto prima, ma
nel primo caso non c'era posizione, ma nel secondo caso sì!
Come dovrei capirlo?
Ho dimenticato di allegare il log del terminale:
prostotrader, lascia che ti faccia una domanda intima. Perché sei così affezionato agli ordini storici e non agli scambi? :-))
MQ Alexander ha detto:
Что касается ордеров, позиций и сделок.
Come scritto nell'Aiuto - la sequenza delle transazioni in entrata non è garantita - la transazione di trasferimento dell'ordine alla storia può essere ricevuta prima della transazione.Cambiare una posizione nel terminale è strettamente un risultato della ricezione di una transazione commerciale, quindi la sua ricezione è una garanzia che la posizione è cambiata.
Ottenere una transazione per trasferire l'ordine nella storia garantisce solo che l'ordine ha cessato di essere attivo (aperto) ed è stato trasferito nella storia dell'ordine.
E nel tuo caso
quasi vuoto...
E un altro commento lirico. Nel concetto di MT5 la presenza di un ordine storico riflette il fatto che c'è stato un tentativo di fare un trade. E non è il fatto che sia stato eseguito. E per scoprirlo dobbiamo fare riferimento al commercio. Riflette già il risultato dell'operazione commerciale. Allora è più logico trattare le transazioni nel tuo codice...
prostotrader, lascia che ti faccia una domanda intima. Perché sei così affezionato agli ordini storici e non agli scambi? :-))
MQ Alexander ha detto:
E nel tuo caso
è quasi vuoto...
Rispondo alla tua domanda intima.
Probabilmente lavorate sul mercato FOREX e trattate con un singolo ordine,
Quindi si ostina a "mentire" in una questione che non capisce nemmeno.
Immaginate che ci siano due volanti in una macchina e due guidatori che guardano entrambi solo il
la strada. Come farebbe il 1° pilota a sapere che l'altro pilota sta sterzando (diciamo a destra)?
Guarda anche con attenzione:
Tutta la vostra logica primitiva è basata sull'esecuzione di un ordine a mercato, quindi,
Porto alla vostra attenzione che ci sono ordini limitati e pendenti
che può non essere eseguito completamente ma può essere eseguito in porzioni.
Inoltre, guarda attentamente:
E cosa dovrei vedere lì?
Vi rendete conto che ottenete accidentalmente informazioni sulla posizione nel caso TRADE_TRANSACTION_HISTORY_ADD?
E vi è già stato detto che...prostotrader:
Tutta la vostra logica primitiva si basa sull'esecuzione di un ordine a mercato, quindi,
Vorrei portare alla vostra attenzione che ci sono ordini limitati e in sospeso
che non può essere eseguito per intero ma in parti.
Non sei tu a giudicare la mia logica primitiva...
E chi deve giudicare?
Giudico le vostre capacità dalle vostre dichiarazioni!
L'immagine non è chiaramente bella :(
È più chiaro, "professore"?
E non ricordo cheMQ Alexander ti abbia delegato a rispondere per lui.