Perguntas de Iniciantes MQL5 MT5 MetaTrader 5 - página 937

 

Olá!

Abro uma posição e quero imprimir o conteúdo da MqlTradeResult desta forma:


   //--- 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 + "; ");

resultado.retcode, encomenda e volume são impressos, mas o negócio e o preço são sempre zeros.
Poderia dizer-me o que estou a fazer mal?

 
Algotrader18:

Hi!

Abro uma posição e quero imprimir o conteúdo da MqlTradeResult desta forma:


resultado.retcode, encomenda e volume são impressos, mas o negócio e o preço são sempre zeros.
Por favor, o que estou eu a fazer mal?

Artigo Poronde começar ao criar um robô comercial para o MOEX da Bolsa de Moscovo. Um exemplo de ouvinte de "TradeTransactionListener":

O comércio com robots é simples

A linguagem MQL5 suporta inicialmente todas as características de negociação da plataforma MetaTrader 5, fornecendo um grande número defunções de negociação para trabalhar com ordens, posições e pedidos de negociação. Não importa o mercado que negoceia - futuros, acções, opções, etc.

Usando as ferramentas MQL5 pode criarum pedido comercial e enviá-lo para o servidor usando as funçõesOrderSend() ouOrderSendAsync(), obtero resultado da sua execução, ver o histórico comercial, descobrira especificação do contrato de um instrumento, processaro evento comercial e obter muitas outras informações necessárias.

É importante para os criadores de robôs comerciais compreenderem um facto essencial: cada operação comercial, quer seja a abertura de uma posição, a definição de StopLoss ou TakeProfit, ou o encerramento de uma posição com uma contra-operação, consiste sempre numa série de transacções realizadas no servidor MetaTrader 5 e na Bolsa de Moscovo. Para ver como isto acontece, pode executar oTradeTransactionListener.mql5 Expert Advisor na sua conta que simplesmente ouve os eventosTradeTransaction e apresenta um resumo dos mesmos:

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


 
Alguém encontrou um problema, não consegue entrar no mt5, problema - certificado inválido?
 
Impulsive87:
Alguém encontrou um problema, não consegue entrar no mt5, problema - certificado inválido?
O Windows é real (por acaso não é um emulador)? Está ligado ao corretor que emitiu o certificado ou a uma empresa de corretagem regular?
 

Quais são as condições para que os testes continuem com a mesma cache no testador, não para criar uma nova tabela de optimização, mas para ser actualizada?

1 um ficheiro EA compilado e inalterado ex5

2 condições de teste não mudariam (excepto equilíbrio ou equilíbrio + rentabilidade).

3 ?

 
Impulsive87:
Não consigo iniciar sessão no mt5, o problema é o certificado inválido?
Encontrei-me com este problema há muito tempo, verifique na loja de certificados e na pasta do programa para obter o certificado correcto
 
Vladimir Karputov:

Artigo Poronde começar ao criar um robô comercial para o MOEX da Bolsa de Moscovo. Exemplo de um ouvinte de TradeTransactionListener:

Obrigado, mas não é bem o mesmo - funciona com a história, preciso de obter dados da MqlTradeResult imediatamente após a abertura da posição. É estranho - produz alguns parâmetros mas não outros, ou seja, faço algo de errado. Gostaria de chegar ao fundo desta situação em particular...
 
Algotrader18:

Olá!

Abro uma posição e quero imprimir o conteúdo da MqlTradeResult desta forma:


resultado.retcode, encomenda e volume são impressos, mas o negócio e o preço são sempre zeros.
Poderia dizer-me o que estou a fazer mal?

Tente ligar antes de imprimir

//+------------------------------------------------------------------+
//| 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;
  }
da classe CTrade
 
Alexey Viktorov:

Tente telefonar

da classe CTrade
Obrigado, gostaria de o fazer sem o CTrade.
 
Algotrader18:
Obrigado, gostaria de o fazer sem o CTrade.

Assim, retire a funcionalidade necessária da classe e escreva-a para si próprio.

Razão: