新人对MQL4和MQL5的任何问题,对算法和代码的帮助和讨论 - 页 457

 

我不明白这一切。我的问题被版主从MKL5移到了MKL4。按照链接--是的,我的问题挂在那里,但最后的答案是5.02.2018。来到这里--也是MKL4,生活沸腾了......那么,为什么版主要把一个死线扔进来?好吧,让我们继续前进。现在进入正题:把我的 "问题 "扔到这里。


Vladimir Karputov:

对于条件1,把魔法数字ID+1,对于条件2魔法数字+2,以此类推。这样你就可以理解,这个位置是由条件1或条件2打开的......。

下午。我只成功了一个位置BAY。卖出的魔法套装由于某种原因不能使用。一切都是完全相同的,当然除了魔法本身。我做错了什么?

int total=OrdersTotal();

      for(int i=OrdersTotal()-1;i>=0;i--)

      {

        if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

         {

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_BUY && (MathAbs(WPR1)<5))

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow); 

        

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_BUY && OrderMagicNumber==111 && MathAbs(WPR1)<20)

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_BID),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow);

      

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_SELL && OrderMagicNumber==222 && MathAbs(WPR1)>97.55)

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow); 

           

         if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_SELL && MathAbs(WPR1)>96)

         rez =  OrderClose(OrderTicket(),OrderLots(),NormalizeDouble(MarketInfo(OrderSymbol(),MODE_ASK),int(MarketInfo(OrderSymbol(),MODE_DIGITS))),slippage,Yellow);               

         }

       continue;  

      } 
 
novichok2018:

我不明白这一切。我的问题被版主从MKL5移到了MKL4。按照链接--是的,我的问题挂在那里,但最后的答案是5.02.2018。来到这里--也是MKL4,生活沸腾了......那么,为什么版主要把一个死线扔进来?好吧,让我们继续前进。现在进入正题:把我的 "问题 "扔到这里。


下午。它只对一个位置BAY有效。由于某些原因,为SELL设置的Magik不工作。一切都绝对相同,当然除了魔术师本身。我做错了什么?

1.它不知道mql4。

2.要用magic 222关闭一个订单,它应该先用magic 222打开。检查哪一个向导是用来打开卖出订单的

3.在OrderMagicNumber后面,应该有括号()。

if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_SELL && OrderMagicNumber==222 && MathAbs(WPR1)>97.55)

4.为什么在条件中突出强调了这一点?

if(TimeCurrent()>OrderOpenTime()+100 && OrderTicket() && OrderType()==OP_BUY && (MathAbs(WPR1)<5))
 

伙计们,这里有一个问题--我如何将变量值放入一维数组?

不要把它送去帮助--这样的问题没有例子。


假设有一个变量a,它在某些条件下发生变化。

我想用一个数组来存储这个变量的最后三个值。这在mql4中是如何实现的?


我在写int mas[3]。

mas[]=a; 在循环中,在改变a的条件之后。

编译器给出了']',但没有任何效果,尽管从逻辑上讲应该如此。- 它想让我在mas[]=a的括号里填上一些未知的表达式。

MQL4是否有任何函数可以在每次循环迭代时为数组填充一个变量?


 
John Smith:

伙计们,这里有一个问题--我如何将一个变量值放入一维数组?

不要把它送去帮助--那里没有关于这种问题的例子。


假设有一个变量a,它在某些条件下发生变化。

我想用一个数组来存储这个变量的最后三个值。这在mql4中是如何实现的?


我在写int mas[3]。

mas[]=a; 在循环中,在改变a的条件之后。

编译器给出了']',但没有任何效果,尽管从逻辑上讲应该如此。- 表达式预期,它要我在mas[]=a的括号内放入一些未知的表达式。

MQL4是否有任何函数可以在循环的每一次迭代中用一个变量来填充数组?


你认为变量'a'的值被放在数组的哪个单元格中,像这样:mas[]=a;?

我让你去找帮助,从头开始读 :)

 
John Smith:

伙计们,这里有一个问题--我如何将变量值放入一维数组?

不要把它送去帮助--这样的问题没有例子


假设有一个变量a,它在某些条件下发生变化。

我想用一个数组来存储这个变量的最后三个值。这在mql4中是如何实现的?


我在写int mas[3]。

mas[]=a; 在循环中,在改变a的条件之后。

编译器给出了']',但没有任何效果,尽管从逻辑上讲应该如此。- 它想让我把一些未知的表达式放入括号内的mas[]=a。

MQL4是否有任何函数可以在每次循环迭代时为数组填充一个变量?


也许,你不仅应该阅读代码样本,还应该阅读一些其他信件。

以下是文件中的一段话。

用于处理数组的一组函数

不允许超过四维数组每个维度的索引从0到 维度-1在一个 50个元素的 一维数组 特殊情况下 ,调用第一个元素是array[0],最后一个是array[49]

 
Alexey Viktorov:

1.他不知道mql4。

2.要用magic 222关闭一个订单,必须先用magic 222打开。看看哪个向导打开了卖出订单

3.在OrderMagicNumber后面,应该有括号()。

4.为什么在条件中标注?

谢谢你的答复。很明显,我需要先用魔法打开。我已经删除了订单,用评论检查了逻辑。结果发现,平仓 是根据第一个开仓的条件进行的。也就是说,如果你先用条件1开了一个买入或卖出头寸,然后用同样的条件开了第二个头寸,但用条件2,那么关闭条件就会被忽略,第二个头寸也会用条件1关闭,尽管有其他魔术。

我在订单关闭后申请了中断,但解决方案一直是半信半疑:只有在同一类型的一个仓位被打开的情况下例如,如果一个卖出头寸先被打开,还没有被关闭,而一个买入头寸正在被打开和关闭,那么在另一个卖出头寸被打开和关闭(根据其条件)之前,卖出头寸看不到任何被关闭的条件。而如果BAY再次开盘和收盘,它又一次错过了收盘条件。那么该怎么做呢?

 
大家下午好。亲爱的程序员,请帮我插入一行,能够为每个Alert3.Lv1;2;3指定一个声音文件,以触发你指定的不同声音。我自己并不擅长编码和编程。
附加的文件:
 
程序员先生和MQL鉴赏家们,你们好!我有一个非常好的专家顾问,可以根据新闻停止自动交易。我在网上找到了一个,要么不工作,要么工作得很差。或者有人能在乌尔达拉指标的基础上写一个吗?
 
嗨,伙计们。你能告诉我如何摆脱[贸易环境繁忙]的错误吗?
 
Rustam Bikbulatov:
嗨,伙计们。你能告诉我如何摆脱[贸易环境繁忙]的错误吗?
if(!IsTradeContextBusy())   //торговый поток свободен
  {
 // здесь оформляем запрос
 // на торговую операцию

  }
原因: