bool signal_MACD()
{
bool signal_MACD = false; //изначально сигнал стоит false
double tmp = iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,0); //это текущий бар MACD
for(int i=1;i<=7;i++) //цикл for первый
{
for(int j=2;j<=7;j++) //цикл for второй (я подозреваю, что именно в for у меня ошибка)
{
if((iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,j)*tmp)>0.0) //если текущий бар MACD находится по одну сторону с одним из баров MACD, сдвинутых на 2 назад
{
if((iMACD(Symbol(),TF,fast_ema,slow_ema,signal_period,PRICE_CLOSE,MODE_MAIN,i)*tmp)<0.0) //если текущий бар MACD находится по разные стороны с одним из баров MACD, сдвинутых на 1 назад
{
signal_MACD = true;
break;
}
}
}
}
return(signal_MACD);
}
尝试了不同的项目--同样的问题。
添加一个.def文件。在这方面,MT5和MT4有很多区别,而且是更好的区别。
添加了它,没有帮助。
大家好。你能告诉我如何将int变量转换为字符串,使字符串的长度总是相同的--2个字符(只是我有不同的两位数和一位数,这很烦人)。建议从哪些方面入手,我不要求具体的解决方案:)提前感谢。
PS:原则上,你可以做(如果x<10)并在左边加一个零,但也许有一些内置的数据转换 功能?
添加了它,没有帮助。
朋友们,告诉我我的逻辑是什么?
一句话。
即MACD曾在0的一边,然后在另一边结束,又回来了。MACD算是突破了零线,回来了...但在策略测试器中,它甚至不接近......问题是...为什么?
最大的滑移值是多少?
你需要多少钱?
大家好。你能不能建议如何将int变量转换为字符串,使字符串的长度总是相同的--2个字符(只是她我有不同的发生和两位数和单值,而且很烦人)。 建议从什么运行,我不要求具体的解决方案:)提前感谢。
PS:基本上,你可以做(如果x<10),然后在左边加一个零,但也许有一些内置的数据转换功能?
我不是在笑...
只是在一天中的不同时间和不同日子里的价差可能非常不同。因此,这不是一件可笑的事情。
我对可编辑的文件<indicator.mq4>做了一些处理,要么把它移到某个地方,要么把它复制到一个不同的名字下,但在编译后,在终端的指标列表中,这个名字变成了灰色,不活跃。
然而,该指标可以通过 "列表树 "左侧窗口栏中的侧面菜单获得,并被拖到图表上。
如果你遇到过这种情况,请告知如何补救?
真诚的。
你不会相信的!
原因很平庸--<指标>文件夹里有太多的指标!
一旦我把不必要的*.mq4移到<Arxiv>,把文件夹中的指标数量减少2/3,一切都能正常工作。
谁会想到呢?
朋友们,告诉我我的逻辑是什么?
一句话。
即MACD曾在0的一边,然后在另一边结束,又回来了。MACD算是突破了零线,回来了...但策略测试器甚至没有接近......问题是...为什么?
之后,打印i和j的值,看看会发生什么。
我假设我们需要将第二个循环修正为