if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3) // если true то заходим в тело цикла...
{
for (int i=1;i<=OrdersTotal(); i++) //шаг2 проверяем все ордера на наличие ордера со значением1
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0); // если орден найден то ничего не делаемelse
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red); // а вот тут проблемы кто за чем идёт и куда вставить условие закрытие отдельно за телом всего условия (ma1;ma2 и тд), или там где OrderSelect()
}
}
}
}
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3) // если true то заходим в тело цикла...
{
for (int i=1;i<=OrdersTotal(); i++) //шаг2 проверяем все ордера на наличие ордера со значением1
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0); // если орден найден то ничего не делаемelse
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red); // а вот тут пока написано следующее: для каждого из ордеров у которого мы сюда зашли мы поставим еще один ордер
}
}
}
}
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2>MA3 && MA2!=MA3)//MA1!=MA2 && и && MA2!=MA3 не нужны, т.к. в предыдущих сравнениях//равенство ухе исключено! Так что нужно так:if (MA1>MA2 && MA1<MA3 && MA2>MA3)
if (MA1>MA2 && MA1!=MA2 && MA1<MA3 && MA2<MA3 && MA2!=MA3 && MA3<MA4 && MA3!=MA4) // если true то заходим в тело цикла...
{
for (int i=1;i<=OrdersTotal(); i++) //шаг2 проверяем все ордера на наличие ордера со значением1
{
if(OrderSelect(i-1,SELECT_BY_POS,MODE_TRADES)==true)
{
if (OrderComment()=="значение1")return(0); // если орден найден то ничего не делаемelse
{
if (OrderComment()!="значение1") // если такого ордера нету
{
OrderSend(Symbol(),OP_SELL, LOT,NormalizeDouble(Bid,Digits),2,0,0,com,Magic,0,Red); // тогда открываем
}
}
if (MA1<MA2 && MA1!=MA2 && MA1>MA3 && MA1!=MA3 && MA3>MA4 && MA3!=MA4) // если true новый сигнал
{
OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(Ask,Digits),3,CLR_NONE); // тогда закрываем
}
}
}
}
对于那些比我更了解mql4的人,请帮助。有3个问题。
1.首先是关于双常数。我们都知道iMa,面具,移动平均线/ 问题是。值的映射不正确。
例子。
因此,所有时间的值将是=value1。代码顽固地拒绝理解 != (不相等)
2.问题/打开搜索关闭/。
我想从这个程序中得到什么,但它没有发挥作用。
1.检查条件(真;假)。
2.如果有这样的命令,我们就不打开;如果没有命令,我们就打开。我们根据OrderComment() 条件来打开它。
3.检查 如果X或Y事件发生,关闭它。X-(例如另一个信号iMA1>iMA2,Y-另一个信号iMA2>iMA3)。
我就是这样做的,但什么都没有出来。
如何关闭,我不知道该在哪里插入。
3.关于偏移量的问题(int shift)
在第二组iMA中,我把相对的当前条形向后移了3)什么为,这样,当出现上述信号时,不要在每个条形上开重复的订单。但由于某些原因,这种转变并没有发生。
请用知识帮助我。我不知道如何使用它。我不知道在互联网上哪里有类似的实现。
对于那些比我更了解mql4的人,请帮助。有3个问题。
1.首先通过恒定的两倍。
2.如何关闭,我完全不明白该放在哪里。
3.关于偏移量(int shift)的问题
1. https://www.mql5.com/ru/articles/1561
2. 如果(关闭条件)OrderClose(...)
3.看看这种转变究竟是什么,以及它转变了谁1. https://www.mql5.com/ru/articles/1561
2. 如果(关闭条件)OrderClose(...)
3.看看这种转变究竟是什么,以及它转变了谁。
非常感谢您的快速回复。
关于1.是的,我知道了,我们将在那里挖掘。
在2。如果(关闭条件)OrderClose(...)(没有它就很清楚),但我在if,what中混淆了where where和why....。
如果错误,请纠正....
从指标缓冲区 获得的数值的索引(相对于当前条形图,向后移动指定的周期数),来自mql4帮助
非常感谢您的快速回复。
由2。如果(关闭条件)OrderClose(...)(没有它也可以理解)但我对if,what对于where where和why感到困惑....
如果错误,请纠正....
对不起,既然条件已经给出,为什么还要检查不等式呢?这就减慢了对条件的阅读和实现的速度!
对不起,既然条件已经给出,为什么还要检查不等式呢?这就减慢了对条件的阅读和实现的速度!
这里有一些奇怪的东西。
if (MA1>MA2 && MA1<MA3 && MA2>MA3)
MA1>MA2,MA2>MA3,然后MA1<MA3
特别是由于它足以
if (MA1>MA2 && MA2>MA3)
对不起,既然条件已经给出,为什么还要检查不等式呢?这就减慢了对条件的阅读和实现的速度!
对不起,我漏掉了一点,我一开始没有注意到。这些计算是针对4个MAs进行的,有些情况下MA1>MA2,在MA3=MA4的时候(所以需要检查,因为这是策略的建立方式)。
像这样?????
这里有一些奇怪的东西。
MA1>MA2,MA2>MA3,然后MA1<MA3
是的,对不起,我弄糊涂了,第一次在论坛上写作。先是抄写,然后决定手写,结果弄混了......。但上面的例子是正确的...
MA1>MA2,MA1<MA3,MA3<MA4
下午好。
请帮助我修改该指标。
我有一个标准的Pivot,我想有一个指标,使用标准公式计算水平,但使用我自己输入的H、L、C数据。
我想用它来替代标准的Pivot。