初学者的问题 MQL5 MT5 MetaTrader 5 - 页 937

 

你好!

我开了一个头寸,想打印MqlTradeResult 的内容,像这样。


   //--- 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,订单和数量被打印出来,但交易和价格总是零。
你能告诉我,我做错了什么吗?

 
Algotrader18:

你好!

我开了一个头寸,想打印MqlTradeResult 的内容,像这样。


result.retcode,订单和数量被打印出来,但交易和价格总是零。
拜托,我做错了什么?

文章为莫斯科交易所(MOEX)创建交易机器人时,应从何处着手。一个 "TradeTransactionListener "监听器的例子。

使用机器人交易很简单

MQL5语言支持MetaTrader 5平台的所有交易功能,包括大量的交易功能,用于处理订单、头寸和交易请求。你在什么市场交易并不重要--期货、股票、期权等等。

使用MQL5工具,您可以创建一个交易请求,并使用OrderSend()OrderSendAsync() 函数将其发送到服务器,获得其执行结果,查看交易历史,找出一个工具的合同规范,处理交易事件,并获得许多其他必要信息。

对于交易机器人的开发者来说,重要的是要理解一个基本事实:每一个交易操作,无论是开仓、设置止损或止盈,还是用反交易平仓,总是由在MetaTrader 5服务器和莫斯科交易所进行的一些交易组成。要看这是如何发生的,你可以在你的账户上运行TradeTransactionListener.mql5 专家顾问,它只是监听TradeTransaction 事件并显示它们的摘要。

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


 
有没有人遇到过这样的问题,无法登录mt5,问题--无效证书?
 
Impulsive87:
有没有人遇到过这样的问题,无法登录mt5,问题--无效证书?
Windows是真的吗(绝不是模拟器)?你是与签发证书的经纪人联系,还是与普通的经纪公司联系?
 

在\Tester\cache中继续进行测试的条件是什么,不是创建一个新的优化表,而是被更新?

1、一个没有改变的编译过的EA文件ex5

2个测试条件不会改变(除了平衡或平衡+盈利能力)。

3 ?

 
Impulsive87:
我无法登录mt5,问题是无效的证书?
我很久以前就遇到了这个问题,在证书库和程序文件夹中检查是否有正确的证书。
 
Vladimir Karputov:

文章为莫斯科交易所(MOEX)创建交易机器人时,应从何处着手。一个TradeTransactionListener监听器的例子。

谢谢你,但这并不完全相同--它在历史上是有效的,我需要在开仓后立即从MqlTradeResult获取数据。这很奇怪--它输出一些参数而不输出其他参数,也就是说,我做错了什么。我想确切地了解这种情况......
 
Algotrader18:

你好!

我开了一个头寸,想打印MqlTradeResult 的内容,像这样。


result.retcode,订单和数量被打印出来,但交易和价格总是零。
你能告诉我,我做错了什么吗?

在打印前尝试打电话

//+------------------------------------------------------------------+
//| 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;
  }
来自CTrade类的
 
Alexey Viktorov:

试着打电话给

来自CTrade类的
谢谢,想在没有CTrade 的情况下进行。
 
Algotrader18:
谢谢,我想在没有CTrade的情况下进行。

因此,从类中拉出所需的功能,并把它写给自己。

原因: