Domande dai principianti MQL5 MT5 MetaTrader 5 - pagina 937

 

Buona giornata!

Apro una posizione e voglio stampare il contenuto di MqlTradeResult come questo:


   //--- declare and initialize the trade request and result of trade request
        MqlTradeRequest request={0};
        MqlTradeResult  result={0};
        //--- parameters of request
        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 ("result.retcode = " + result.retcode + "; ");        
        Print ("deal = " + result.deal + "; ");
        Print ("order = " + result.order + "; "); 
        Print ("volume = " + result.volume + "; ");  
        Print ("price = " + result.price + "; ");

result.retcode, order e volume sono stampati, ma deal e price sono sempre degli zeri.
Potresti per favore dirmi cosa sto facendo di sbagliato?

 
Algotrader18:

Ciao!

Apro una posizione e voglio stampare il contenuto di MqlTradeResult come questo:


result.retcode, order e volume sono stampati, ma deal e price sono sempre degli zeri.
Per favore, cosa sto facendo di sbagliato?

ArticoloDa dove iniziare quando si crea un robot di trading per la Borsa di Mosca MOEX. Un esempio di ascoltatore "TradeTransactionListener":

Il trading con i robot è semplice

Il linguaggio MQL5 supporta inizialmente tutte le caratteristiche di trading della piattaforma MetaTrader 5, fornendo un gran numerodi funzioni di trading per lavorare con ordini, posizioni e richieste di trading. Non importa quale mercato si scambi - futures, azioni, opzioni, ecc.

Utilizzando gli strumenti MQL5 è possibile creareuna richiesta di compravendita e inviarla al server utilizzando le funzioniOrderSend() oOrderSendAsync(), ottenere ilrisultato della sua esecuzione, visualizzare la storia della compravendita, scoprirele specifiche del contratto per uno strumento, elaborarel'evento di compravendita e ottenere molte altre informazioni necessarie.

È importante che gli sviluppatori di robot di trading comprendano un fatto essenziale: ogni operazione di trading, sia che si tratti di aprire una posizione, impostare lo StopLoss o il TakeProfit, o chiudere una posizione con una contromossa, consiste sempre in una serie di transazioni effettuate sul server MetaTrader 5 e sulla Borsa di Mosca. Per vedere come questo accade, è possibile eseguire ilTradeTransactionListener.mql5 Expert Advisor sul tuo conto che semplicemente ascolta gli eventiTradeTransaction e visualizza un riassunto di essi:

//+------------------------------------------------------------------+
//|                                     TradeTransactionListener.mq5 |
//|                        Copyright 2016, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+


 
Qualcuno ha incontrato un problema, non può accedere a mt5, problema - certificato non valido?
 
Impulsive87:
Qualcuno ha riscontrato un problema, non può accedere a mt5, problema - certificato non valido?
Windows è reale (non un emulatore per caso)? Si collega al broker che ha emesso il certificato o a una normale società di brokeraggio?
 

Quali sono le condizioni perché i test continuino con la stessa cache nella \Tester\cache, non per creare una nuova tabella di ottimizzazione, ma per essere aggiornati?

1 un file EA compilato invariato ex5

2 condizioni di prova non cambierebbero (tranne l'equilibrio o l'equilibrio + redditività).

3 ?

 
Impulsive87:
Non posso accedere a mt5, il problema è il certificato non valido?
Mi sono imbattuto in questo problema molto tempo fa, controlla nel negozio di certificati e nella cartella del programma il certificato corretto
 
Vladimir Karputov:

ArticoloDa dove iniziare quando si crea un robot di trading per la Borsa di Mosca MOEX. Esempio di un ascoltatore di TradeTransactionListener:

Grazie, ma non è proprio la stessa cosa - funziona con la storia, ho bisogno di ottenere dati da MqlTradeResult immediatamente dopo l'apertura della posizione. È strano - emette alcuni parametri ma non altri, cioè faccio qualcosa di sbagliato. Vorrei andare in fondo a questa particolare situazione...
 
Algotrader18:

Ciao!

Apro una posizione e voglio stampare il contenuto di MqlTradeResult come questo:


result.retcode, order e volume sono stampati, ma deal e price sono sempre degli zeri.
Potresti per favore dirmi cosa sto facendo di sbagliato?

Prova a chiamare prima di stampare

//+------------------------------------------------------------------+
//| Get the result structure                                         |
//+------------------------------------------------------------------+
void CTrade::Result(MqlTradeResult &result) const
  {
   result.retcode   =m_result.retcode;
   result.deal      =m_result.deal;
   result.order     =m_result.order;
   result.volume    =m_result.volume;
   result.price     =m_result.price;
   result.bid       =m_result.bid;
   result.ask       =m_result.ask;
   result.comment   =m_result.comment;
   result.request_id=m_result.request_id;
   result.retcode_external=m_result.retcode_external;
  }
dalla classe CTrade
 
Alexey Viktorov:

Prova a chiamare

dalla classe CTrade
Grazie, vorrei farlo senza CTrade.
 
Algotrader18:
Grazie, vorrei farlo senza CTrade.

Quindi prendete la funzionalità richiesta dalla classe e scrivetela a voi stessi.