关于MQL5开仓的问题 新评论 Zhang Yi 2025.10.08 13:46 各位大神, 我写的一个开仓的代码, 在模拟帐户下,可以返回 order_ticket deal_ticket open_price 这三个值, 但在真实帐户中却 只能返回order_ticket 的值, 另外两个 deal_ticket 和 open_price 返回值为 0 , 这是为什么啊? 各位大神请赐教一下, 谢谢! #property copyright "Copyright 2023, MetaQuotes Ltd." #property link "https://www.mql5.com" #property version "1.00" #include <Trade\Trade.mqh> CTrade trade; //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- create timer EventSetMillisecondTimer(60); Print(OpenPosition(ORDER_TYPE_BUY, 0.01)); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { //--- destroy timer EventKillTimer(); } //+------------------------------------------------------------------+ //| Expert tick function | //+------------------------------------------------------------------+ void OnTick() { //--- } //+------------------------------------------------------------------+ //| Timer function | //+------------------------------------------------------------------+ void OnTimer() { //--- } //+------------------------------------------------------------------+ //| ChartEvent function | //+------------------------------------------------------------------+ void OnChartEvent(const int32_t id, const long &lparam, const double &dparam, const string &sparam) { //--- } //+------------------------------------------------------------------+ //| | //+------------------------------------------------------------------+ ulong OpenPosition(const ENUM_ORDER_TYPE type, const double volume) { double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); ulong order_ticket = 0; ulong deal_ticket = 0; double open_price = 0; if(trade.PositionOpen(_Symbol, type, volume, (type == ORDER_TYPE_BUY) ? ask : bid, 0, 0, "")) { // 真实帐户 模拟帐户 order_ticket = trade.ResultOrder(); // 可以被获取到 可以被获取到 deal_ticket = trade.ResultDeal(); // 获取不到 可以被获取到 open_price = trade.ResultPrice(); // 获取不到 可以被获取到 } return(deal_ticket); } //+------------------------------------------------------------------+ Hung Wen Lin 2025.10.09 02:50 #1 建議你試試OnTradeTransaction這個函數去讀取你要的數據 研究一下MT5交易平台的交易規則你就會知道原因 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
各位大神, 我写的一个开仓的代码, 在模拟帐户下,可以返回 order_ticket deal_ticket open_price 这三个值, 但在真实帐户中却 只能返回order_ticket 的值, 另外两个 deal_ticket 和 open_price 返回值为 0 ,
这是为什么啊? 各位大神请赐教一下, 谢谢!