评论未用于交易 MQL4

Comment not being used in trade MQL4

不幸的是,我无法 post 我正在调试的代码,因为它不是我的,我一定不会展示它...但我会尽可能详细地描述它。

有 4 个策略基于 4 个指标,自定义的和非自定义的。所以基本上不是 4 个不同的 EA 运行 在 4 个不同的图表中使用相同的 4 个指标......客户要求我通过将它们全部放在一个到 运行 4 到 1 个 EA 中来优化它们相同的图表。

一切都是一样的。它们也经过测试,它们是相同的。他们在相同的时刻进行相同的交易。什么都没有 100% 改变。我唯一做的事情(对于调试的这一部分,因为显然在那之前我还有很多事情要做)是复制函数和代码。我用“if”作为输入分隔了所有不同的策略

input bool strategy1enabled = true;等等...所以 he/she 如果需要,可以 disable/enable 单独的策略。

一切正常,但是…… 除 1 个策略外,所有策略均未显示交易评论。

所有 4 个都使用相同的 Buy/Sell/CloseOrder 函数,所以我只输入值以缩短代码。

//---  
bool OrdClose (int ticket_number, double lt, int slp)
  {
      return OrderClose(ticket_number,lt,iClose(NULL,0,0),slp,clrViolet);
  }
//---
int Buy(double lt, int slp, int slss, int tpft, string cmt, int mgc)
  {
      return OrderSend(NULL,OP_BUY,lt,Ask,slp,Ask-slss*Point,Ask+tpft*Point,cmt,mgc,0,clrDarkBlue);
  }
//---
int Sell(double lt, int slp, int slss, int tpft, string cmt, int mgc)
  {
      return OrderSend(NULL,OP_SELL,lt,Bid,slp,Bid+slss*Point,Bid-tpft*Point,cmt,mgc,0,clrDarkRed);
  }

1 策略拒绝发表评论。任何想法为什么?当与相同的代码和完全相同的功能分开使用时...评论显示...

编辑:

2021.05.04 18:30:48.670 The_Big_Holla_v1_8_EA CADJPY,H1: open #85710545 buy 0.06 CADJPY at 88.755 sl: 88.655 tp: 88.955 ok 2021.05.04 18:30:48.462 The_Big_Holla_v1_8_EA CADJPY,H1: Holla v4.9 ||贪婪注入模式 2021.05.04 18:30:48.462 The_Big_Holla_v1_8_EA CADJPY,H1: Holla v4.9 ||贪婪注入模式

评论在传递给函数之前和函数内的 OrderSend 之前被正确传递和检查: 函数:

int Sell(double lt, int slp, int slss, int tpft, string cmt, int mgc)
  {
      Print(cmt);
      return OrderSend(NULL,OP_SELL,lt,Bid,slp,Bid+slss*Point,Bidtpft*Point,cmt,mgc,0,clrDarkRed);
  }

函数的调用方式:

Print(EACommentInj);
ticket_val_inj = Buy(lotsizeInj,slippageInj,stoplossInj,takeprofitInj,EACommentInj,MagicInj);

这是它的初始化方式,它永远不会改变。它只在它被传递的地方被提及。我在上面给你展示的地方。

const string EACommentInjGreed = "Holla v4.9 || GreedInjectionMode Greed Mode";

虽然没有记录,但 MQL4 中交易函数 OrderSend()"string comment=NULL" 参数限制为 31 个字符。如果超过此限制,则整个字符串将被拒绝并视为 NULL.

在您的代码中,就在 OrderSend() 函数之前,添加以下行:

cmt=StringSubstr(cmt,0,31);