externint n=4;
//+------------------------------------------------------------------+//| script program start function |//+------------------------------------------------------------------+int start()
{
//----for (int x=n; x>1; x--)
{
if(Close[x]==Open[x])
{
Print("Бар номер ",n," плоский :)");
continue;
}
if(Close[x]<Open[x])
{
Print("Бар номер ",n," медвежий");
continue;
}
else// if(Close[x]>Open[x]) - В данном случае сравнение if можно пропустить// т.к. два случая (равно и меньше) уже обработаны
{
Print("Бар номер ",n," бычьий");
}
}
//----return(0);
}
//+------------------------------------------------------------------+
也许我对你的问题的理解与你的意思不同。我的例子比较了3条和2条,以及2条和1条之间的开盘价,3条和1条没有比较。如果比较的值相等--什么也不发生,只是传递到下一个比较。为什么x>1(不是>=)。第一次迭代比较Open[3]==Open[3-1],即Open[3]==Open[2]。好的。在第二个(x=2),Open[2]==Open[1]。好的。没有第三次迭代。在x>=1时,会出现Open[1]==Open[0]的比较,这是不对的,因为会出现与0条的比较。
非常感谢您!而如果我们比较这三个条形图中每个条形图的开盘价 和收盘价,会不会改变代码?
不会的,每一个新的刻度线, Flag的值都是真的 。https://book.mql4.com/ru/variables/types
你可以全局性地声明这个变量,例如在程序的开头,在所有函数之外。
或者让变量成为静态的 - 静态的 bool flag=true; .
非常感谢您!而如果我们比较这三个条形图中每个条形图的开盘价和收盘价,代码会有这么大的变化吗?
为了澄清这个问题。我们需要比较同一根柱子 的开盘和收盘,也就是说,第n根柱子是看跌还是看涨。把下面的脚本扔到报价窗口上。
要在这里正确插入代码,请点击SRC,然后点击那里的代码。
把这个EA扔到报价窗口。
我把它扔进了窗口,就像我理解的那样,指标只是写出了移位值,但我应该在代码中加入什么,以便我可以在设置中加入我需要的多少级?
我把它放在窗口中,像我理解的那样,指标只是写出移位值,但我应该在代码中加入什么,以便能够在设置中加入我需要的多少级?
它不写移位值。如果我没记错的话,这段代码并没有指定移位,它只是读取了MAHA的值。所以它输出这个值。
为了看到相对于MA值的移位值,你需要在外部参数中设置这个值,然后输出 MA值+移位值*Point,表示向上移位,MA值-移位值*Point,表示向下移位。
我把它扔进了窗口,就像我理解的那样,指标只是写出了移位值,但我应该在代码中添加什么,以便我可以在设置中添加我需要的许多级别?
不,不是的。你需要在MA上和MA下转移一定数量的点。不是历史上的酒吧转变。
不,不是的。你需要在MA上和MA下转移一定数量的点。不是历史上的酒吧转变。