Ho una domanda simile per tutti e specialmente per fxsaber. Sembra una domanda primitiva, ma non riesco a trovare la risposta. Mi è stato detto qui https://www.mql5.com/ru/forum/6343/page939 "Prova a cercarlo. fxsaber sta lavorando su questo problema da un po' di tempo. Quello che ha funzionato non lo so, non mi interessa". Così ho deciso di chiedere a voi.
La domanda è questa. Ho aperto una posizione e voglio stampare il contenuto di MqlTradeResult:
retcode, ordine e volume sono stampati, ma deal e prezzo sono sempre degli zeri. Per favore, consigliatemi cosa sto facendo di sbagliato e come ottenere l'accesso (almeno, stamparlo prima) al contenuto della struttura dei risultati?
Che ne dite di questo?
//+------------------------------------------------------------------+MqlTradeRequest request={0};
MqlTradeResult result={0};
//---
request.action = TRADE_ACTION_DEAL; // type of trade operation
request.symbol = Pair1; // symbol
request.volume = lots; // volume of lot
request.type = oper; // order type
request.price = priceOpen; // price for opening
request.deviation= Slippage; // allowed deviation from the price
request.magic = magic;
//---if(OrderSend(request,result))
{
Print ("retcode = " +IntegerToString (result.retcode) + "; ");
Print ("deal = " +IntegerToString (result.deal) + "; ");
Print ("order = " +IntegerToString (result.order) + "; ");
Print ("volume = " +DoubleToString (result.volume) + "; ");
Print ("price = " +DoubleToString (result.price) + "; ");
}
else
{
// Здесь действия при ошибке открытия
}
//+------------------------------------------------------------------+
Apro una posizione e voglio stampare il contenuto di MqlTradeResult come questo:
retcode, ordine e volume sono stampati ma deal e prezzo sono sempre degli zeri. Per favore consigliatemi cosa sto facendo di sbagliato e come ottenere l'accesso (almeno la stampa prima) al contenuto della struttura dei risultati?
Beh, allora non è per niente chiaro - ho pensato che stavo facendo qualcosa di sbagliato, e se ci sono degli zeri, che senso ha il risultato? Vedo un ordine aperto, ottengo result.retcode 10009 e result.price = 0 ? Puoi spiegare il significato di risultato se non contiene un risultato?
Questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un trade. Hai diverse opzioni
Capite da soli come funzionano le cose.
Usa sviluppi di livello superiore già preparati (il livello inferiore è nascosto) dove quasi tutte le insidie sono aggirate.
Grazie.
In MQL4 non c'era una struttura di risultati e abbiamo ricevuto un ticket e selezionato l'ordine appropriato e richiesto i dati necessari. MQL5 ha la struttura dei risultati che contiene molti dati necessari, e sarebbe illogico non usarla.
1. Prima di fare una domanda sul forum, ho cercato di "capire da solo come funziona tutto" e cosa vedo - nella struttura dei risultati:
structMqlTradeResult
{
uint retcode; // Operation return codeulong deal; // Deal ticket, if it is performedulong order; // Order ticket, if it is placeddouble volume; // Deal volume, confirmed by brokerdouble price; // Deal price, confirmed by brokerdouble bid; // Current Bid pricedouble ask; // Current Ask pricestring comment; // Broker comment to operation (by default it is filled by description of trade server return code)uint request_id; // Request ID set by the terminal during the dispatchuint retcode_external; // Return code of an external trading system
};
presente doppio prezzo; // Prezzo dell'affare, confermato dal broker.
Nel codice di esempio dello sviluppatore
//--- send the requestif(!OrderSend(request,result))
PrintFormat("OrderSend error %d",GetLastError()); // if unable to send the request, output the error code//--- information about the operationPrintFormat("retcode=%u deal=%I64u order=%I64u",result.retcode,result.deal,result.order);
esce result.deal, cioè si presume che abbia senso e non è sempre rappresentato da zero nella struttura del risultato. Si potrebbero fare altri esempi che indicano che result.price così come result.deal possono essere ottenuti da MqlTradeResul, che è quello che ho cercato di fare.
Da nessuna parte ho visto informazioni che "Questa è una caratteristica di MT5, quando il risultato è solo un ordine (biglietto e nessun prezzo), ma non un affare". Potreste dirmi in base a quali informazioni siete arrivati a questa conclusione?
2. Se conoscete qualche "sviluppo di livello superiore già pronto (il livello basso è nascosto)", che permette di ottenere i parametri di una posizione immediatamente dopo la sua apertura (appare il codice 10009), senza selezione preliminare per ticket, vi prego di darmi un esempio o di darmi un link.
In MQL4 non c'era una struttura di risultati e noi selezionavamo l'ordine appropriato e richiedevamo i dati necessari. MQL5 ha la struttura dei risultati con molti dati necessari e sarebbe illogico non usarla.
1. Prima di fare una domanda nel forum, ho cercato di "capire da solo come funziona tutto" e quello che ho visto è che il risultato della struttura:
C'è un prezzo doppio; // Prezzo dell'affare, confermato dal broker.
Nel codice di esempio dello sviluppatore
esce result.deal, cioè si presume che abbia senso e non è sempre rappresentato da zero nella struttura del risultato. Ci sono altri esempi che indicano che result.price così come result.deal possono essere ottenuti da MqlTradeResul, che è quello che ho provato a fare.
Da nessuna parte ho visto informazioni che "questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un affare". Potreste dirmi in base a quali informazioni siete arrivati a questa conclusione?
2. Se conoscete qualche "sviluppo pronto di livello superiore (il livello basso è nascosto)", che permette di ottenere i parametri di una posizione immediatamente dopo la sua apertura (appare il codice 10009), senza selezione preliminare per ticket, vi prego di dare un esempio o di dare un link ad esso.
Un ordine di trading per aprire una posizione viene inviato al server (order = ordine)
Se l'ordine è accettato, viene restituito il risultato dell'accettazione dell'ordine e del suo inserimento nella coda.
Se l'ordine è stato eseguito, appare il trade - il risultato dell'esecuzione dell'ordine.
Il risultato di un trade sarà o una nuova posizione, o l'aumento/diminuzione di una posizione esistente, o la chiusura di una posizione, o un rollover. O una nuova posizione (in un conto di copertura).
Un ordine di trading per aprire una posizione viene inviato al server (order = ordine)
Se l'ordine è accettato, viene restituito il risultato dell'accettazione dell'ordine e del suo inserimento nella coda.
Se l'ordine è stato eseguito, apparirà un trade come risultato dell'esecuzione dell'ordine.
Il risultato di una negoziazione sarà o una nuova posizione, o un aumento/diminuzione del volume di una posizione esistente, o la chiusura di una posizione, o un rollover. O una nuova posizione (nel caso di un conto di copertura)
Grazie - per favore ditemelo: - dopo quale passo, tra quelli che avete elencato, pensate che appaia la struttura del risultato della richiesta di commercio (MqlTradeResult)?
- Secondo la descrizione di MQL5: "Struttura del risultato della richiesta di compravendita (MqlTradeResult) Come risposta a una richiesta di compravendita, il server commerciale restituisce dati contenenti il risultato dell'elaborazione della richiesta di compravendita come una struttura speciale predefinita MqlTradeResult". e "10009 TRADE_RETCODE_DONE Ordine eseguito".
Cioè il codice 10009 di ritorno del server commerciale significa che la richiesta OrderSend è stata eseguita con successo, cioè se richiedo i dati da MqlTradeResult, dopo aver ricevuto il codice 10009, come posso spiegare che result.price = 0?
Algotrader18: Grazie: - dopo quale passo, tra quelli elencati da voi, appare la struttura del risultato della richiesta di trade (MqlTradeResult)?
- Secondo la descrizione di MQL5: "Struttura del risultato della richiesta di compravendita (MqlTradeResult) Come risposta a una richiesta di compravendita, il server commerciale restituisce dati contenenti il risultato dell'elaborazione della richiesta di compravendita come una struttura speciale predefinita MqlTradeResult". e "10009 TRADE_RETCODE_DONE Ordine eseguito".
Quindi, il codice di ritorno del trade server 10009 significa che la richiesta OrderSend è stata eseguita con successo, cioè se richiedo dati da MqlTradeResult, dopo aver ricevuto il codice 10009, come posso spiegare che result.price = 0?
10009 TRADE_RETCODE_DONE - lo avete descritto voi stessi - l'ordine è stato eseguito. Questo è semplicemente il fatto che l'ordine è stato accodato con successo al server per l'esecuzione.
Inoltre, se questo ordine viene eseguito (dopo tutto, può essere rifiutato dal server), allora c'è un commercio - questo è il risultato del commercio con il prezzo di apertura.
Viene chiamato in Expert Advisors quando si verifica un evento TradeTransaction. La funzione è destinata all'elaborazione dei risultati dell'esecuzione della richiesta di compravendita.
voidOnTradeTransaction( ) const MqlTradeTransaction&trans,// struttura di una transazione commerciale const MqlTradeRequest&request,// struttura della richiesta const MqlTradeResult& result// struttura della risposta );
При обрабокте транзакций типа TRADE_TRANSACTION_REQUEST для получения дополнительной информации необходимо анализировать второй и третий параметры функции OnTradeTransaction() – Отправка торгового запроса на покупку приводит к цепи торговых транзакций, которые совершаются на торговом счете: 1) запрос принимается на обработку, 2) далее для...
Da nessuna parte ho visto l'informazione che "Questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un trade". Mi dica gentilmente sulla base di quali informazioni è giunto a questa conclusione.
Esperienza propria.
2. Se conoscete qualche "sviluppo di livello superiore già pronto (il livello basso è nascosto)", che permette di ottenere i parametri di una posizione immediatamente dopo la sua apertura (appare il codice 10009), senza selezione preliminare per ticket, per favore date un esempio o date un link ad esso.
Consenti l'uso dei cookie per accedere al sito MQL5.com.
Abilita le impostazioni necessarie nel browser, altrimenti non sarà possibile accedere.
Hai effettuato l'accesso. L'autenticazione a due fattori è stata disattivata. Configurala di nuovo e scansiona un nuovo codice QR, oppure continua con l'autenticazione a due fattori disattivata.
Buon pomeriggio!
Ho una domanda simile per tutti e specialmente per fxsaber.
Sembra una domanda primitiva, ma non riesco a trovare la risposta.
Mi è stato detto qui https://www.mql5.com/ru/forum/6343/page939 "Prova a cercarlo. fxsaber sta lavorando su questo problema da un po' di tempo. Quello che ha funzionato non lo so, non mi interessa". Così ho deciso di chiedere a voi.
La domanda è questa. Ho aperto una posizione e voglio stampare il contenuto di MqlTradeResult:
retcode, ordine e volume sono stampati, ma deal e prezzo sono sempre degli zeri.
Per favore, consigliatemi cosa sto facendo di sbagliato e come ottenere l'accesso (almeno, stamparlo prima) al contenuto della struttura dei risultati?
Che ne dite di questo?
Apro una posizione e voglio stampare il contenuto di MqlTradeResult come questo:
retcode, ordine e volume sono stampati ma deal e prezzo sono sempre degli zeri.
Per favore consigliatemi cosa sto facendo di sbagliato e come ottenere l'accesso (almeno la stampa prima) al contenuto della struttura dei risultati?
Gli zeri sono scritti nel risultato.
Che ne dite di questo?
Gli zeri e sono prescritti nel risultato.
Vedo un ordine aperto, ottengo result.retcode 10009 e result.price = 0 ?
Puoi spiegare il significato di risultato se non contiene un risultato?
Per favore, spiegate che senso ha il risultato se non contiene il risultato?
Questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un trade. Hai diverse opzioni
Questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un trade. Hai diverse opzioni
In MQL4 non c'era una struttura di risultati e abbiamo ricevuto un ticket e selezionato l'ordine appropriato e richiesto i dati necessari. MQL5 ha la struttura dei risultati che contiene molti dati necessari, e sarebbe illogico non usarla.
1. Prima di fare una domanda sul forum, ho cercato di "capire da solo come funziona tutto" e cosa vedo - nella struttura dei risultati:
esce result.deal, cioè si presume che abbia senso e non è sempre rappresentato da zero nella struttura del risultato. Si potrebbero fare altri esempi che indicano che result.price così come result.deal possono essere ottenuti da MqlTradeResul, che è quello che ho cercato di fare.presente doppio prezzo; // Prezzo dell'affare, confermato dal broker.
Nel codice di esempio dello sviluppatore
Da nessuna parte ho visto informazioni che "Questa è una caratteristica di MT5, quando il risultato è solo un ordine (biglietto e nessun prezzo), ma non un affare". Potreste dirmi in base a quali informazioni siete arrivati a questa conclusione?
2. Se conoscete qualche "sviluppo di livello superiore già pronto (il livello basso è nascosto)", che permette di ottenere i parametri di una posizione immediatamente dopo la sua apertura (appare il codice 10009), senza selezione preliminare per ticket, vi prego di darmi un esempio o di darmi un link.
Grazie.
In MQL4 non c'era una struttura di risultati e noi selezionavamo l'ordine appropriato e richiedevamo i dati necessari. MQL5 ha la struttura dei risultati con molti dati necessari e sarebbe illogico non usarla.
1. Prima di fare una domanda nel forum, ho cercato di "capire da solo come funziona tutto" e quello che ho visto è che il risultato della struttura:
esce result.deal, cioè si presume che abbia senso e non è sempre rappresentato da zero nella struttura del risultato. Ci sono altri esempi che indicano che result.price così come result.deal possono essere ottenuti da MqlTradeResul, che è quello che ho provato a fare.C'è un prezzo doppio; // Prezzo dell'affare, confermato dal broker.
Nel codice di esempio dello sviluppatore
Da nessuna parte ho visto informazioni che "questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un affare". Potreste dirmi in base a quali informazioni siete arrivati a questa conclusione?
2. Se conoscete qualche "sviluppo pronto di livello superiore (il livello basso è nascosto)", che permette di ottenere i parametri di una posizione immediatamente dopo la sua apertura (appare il codice 10009), senza selezione preliminare per ticket, vi prego di dare un esempio o di dare un link ad esso.
Una richiesta di compravendita si traduce in un rifiuto o in un ordine a mercato. Questo non è un trade, né una posizione generata da un trade.
Una richiesta di compravendita si traduce in un rifiuto o in un ordine a mercato. Questo non è un trade, né una posizione generata da un trade.
- dopo quale passo, tra quelli che avete elencato, pensate che appaia la struttura del risultato della richiesta di commercio (MqlTradeResult)?
- Secondo la descrizione di MQL5:
"Struttura del risultato della richiesta di compravendita (MqlTradeResult)
Come risposta a una richiesta di compravendita, il server commerciale restituisce dati contenenti il risultato dell'elaborazione della richiesta di compravendita come una struttura speciale predefinita MqlTradeResult". e "10009 TRADE_RETCODE_DONE Ordine eseguito".
Cioè il codice 10009 di ritorno del server commerciale significa che la richiesta OrderSend è stata eseguita con successo, cioè se richiedo i dati da MqlTradeResult, dopo aver ricevuto il codice 10009, come posso spiegare che result.price = 0?
Grazie:
- dopo quale passo, tra quelli elencati da voi, appare la struttura del risultato della richiesta di trade (MqlTradeResult)?
- Secondo la descrizione di MQL5:
"Struttura del risultato della richiesta di compravendita (MqlTradeResult)
Come risposta a una richiesta di compravendita, il server commerciale restituisce dati contenenti il risultato dell'elaborazione della richiesta di compravendita come una struttura speciale predefinita MqlTradeResult". e "10009 TRADE_RETCODE_DONE Ordine eseguito".
Quindi, il codice di ritorno del trade server 10009 significa che la richiesta OrderSend è stata eseguita con successo, cioè se richiedo dati da MqlTradeResult, dopo aver ricevuto il codice 10009, come posso spiegare che result.price = 0?
10009 TRADE_RETCODE_DONE - lo avete descritto voi stessi - l'ordine è stato eseguito. Questo è semplicemente il fatto che l'ordine è stato accodato con successo al server per l'esecuzione.
Inoltre, se questo ordine viene eseguito (dopo tutto, può essere rifiutato dal server), allora c'è un commercio - questo è il risultato del commercio con il prezzo di apertura.
Leggi di
OnTradeTransaction
Viene chiamato in Expert Advisors quando si verifica un evento TradeTransaction. La funzione è destinata all'elaborazione dei risultati dell'esecuzione della richiesta di compravendita.
voidOnTradeTransaction( )
const MqlTradeTransaction&trans,// struttura di una transazione commerciale
const MqlTradeRequest&request,// struttura della richiesta
const MqlTradeResult& result// struttura della risposta
);
Da nessuna parte ho visto l'informazione che "Questa è una caratteristica di MT5 in cui il risultato è solo un ordine (biglietto e nessun prezzo) ma non un trade". Mi dica gentilmente sulla base di quali informazioni è giunto a questa conclusione.
Esperienza propria.
2. Se conoscete qualche "sviluppo di livello superiore già pronto (il livello basso è nascosto)", che permette di ottenere i parametri di una posizione immediatamente dopo la sua apertura (appare il codice 10009), senza selezione preliminare per ticket, per favore date un esempio o date un link ad esso.
C'è un'altra opzione, ma è "avanzata".