【发布时间】:2021-07-23 20:05:40
【问题描述】:
很遗憾,我无法发布我正在调试的代码,因为它不是我的,而且我一定不会展示它......但我会尽可能详细地描述它。
有基于 4 个指标的 4 种策略,自定义的和非自定义的。所以基本上不是 4 个不同的 EA 在 4 个不同的图表中运行,每个图表具有相同的 4 个指标……客户要求我通过将它们全部放在一个中来优化它们,以便在同一个图表中运行 4 到 1 个 EA。
一切都是一样的。它们也经过测试,它们是相同的。他们在相同的时刻开启相同的交易。没有什么是 100% 改变的。我唯一做的事情(对于这部分调试,因为显然在那之前我还有很多事情要做)就是复制函数和代码。我用“if”作为输入来区分所有不同的策略
输入 bool strategy1enabled = true;等等...所以他/她可以根据需要禁用/启用个人策略。
一切正常,但是.... 除 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 策略只是拒绝发表评论。任何想法为什么?当与 THE SAME CODE 和 EXACT SAME 功能分开使用时...注释显示...
编辑:
2021.05.04 18:30:48.670 The_Big_Holla_v1_8_EA CADJPY,H1: open #85710545 以 88.755 买入 0.06 CADJPY 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 ||贪婪注入模式
Comment 在传递给函数之前和函数内的 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";
【问题讨论】:
-
如果不查看所有代码就很难提供帮助,请尝试在
OrderSend()之前添加Print(cmt);Buy()和Sell()函数,以便检查字符串是否正确传递当你打电话给他们时。 -
不幸的是,我知道这很难。下一次编辑可能会对您有更多帮助。我发布了我可以发布的最大值......但实际上在那些可以干扰的之间没有其他东西,但它仍然不起作用。我尝试在将注释传递给函数之前以及在函数中执行命令之前打印注释。
-
如果您无法显示您的代码,没有人可以提供帮助。您的
Print()是否显示应与订单一起发送的评论? -
这两者之间真的没有其他任何东西,而且我有一份合同禁止我发布实际策略……但没有什么可以干扰……实际上……即使有。 ...它被初始化为常量...因此即使我想它也无法更改/无效: const string EACommentInjGreed = "Holla v4.9 || GreedInjectionMode Greed Mode";
-
您是否使用
Print()命令在每次下订单时检查string cmt变量实际上包含一个有效字符串?