[存档!]任何菜鸟问题,为了不给论坛添乱。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 2. - 页 277

 
Pyro:

你能告诉我为什么OrderOpenPrice不起作用吗?任务是在池子里寻找某个价格的订单,如果不在那里,就把订单放进去,并设置一个标志,表示它已经被设置。


使用现成的功能

函数ExistPosByPrice()。


https://www.mql5.com/ru/forum/131859/page2#434212
 
artmedia70:

请看我帖子的最后一行。谁说我要写一个结尾的例子?

其余的都是朴素的真理。编写你自己的教科书。

澄清不是为了你。我的帖子纯粹是为初学者准备的。所以没有必要被冒犯。
 

我不能把指标的背离信号放入我的EA。

指标FX5_Divergence_V2.1.mq4


如何将箭头从指标中取出?

 
bolt:
澄清不是为了你。我的帖子是专门为新来者准备的。所以没有必要被冒犯。
被冒犯了?上帝保佑!在我的 帖子上有一个评论,分别对评论帖子的作者进行处理。一切都很好。
 
artmedia70:

你知道,如果你只有一个订单,它可能会起作用,但如果你仍然手动打开它,那就不一样了。票据号码应保存在一个变量中,在选择一个订单后,将其票据与存储的票据进行比较。

而一般来说,订单的选择必须使用循环中的OrderSelect()函数来完成。

这只是一个用于理解的例子,不是一个完整的工作代码,如果有的话...:)





谢谢你!))))。
 
bolt:

在关闭订单时,如果有一个以上的订单,应该使用这样的循环。



也谢谢你!))。
 
Sergey_Rogozin:

我不能把指标的背离信号放到专家顾问中。

指标FX5_Divergence_V2.1.mq4


如何将箭头从指标中取出?

第2和第3个缓冲器的指标。第二个是向上箭头,第三个是向下箭头。使用iCustom();与这些缓冲区的数据检查。
 
Pyro:

你能告诉我为什么OrderOpenPrice不起作用吗?任务是在池子里寻找某个价格的订单,如果不在那里,就把订单放进去,并标记为被套。

情况是这样的。

int   dg=MarketInfo(Symbol(), MODE_DIGITS);
orderset=false;
for (int i=0; i<OrdersTotal(); i++) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) {
      if (OrderSymbol()!=Symbol())        continue;
      if (OrderType()<2 || OrderType()>5) continue;
      if (OrderMagicNumber()!=Magic)      continue;
      if (NormalizeDouble(OrderOpenPrice()-price,dg)==0) {
         orderset=true;
         break;
         }
      }
   }
if(!orderset) {
   int ticket=OrderSend(Symbol(),OP_SELLLIMIT,baselot,price,3,NULL,price-10,"Comment",0001+i,0,White);
   if (ticket<0) Print("Не удалось выбрать ордер, ошибка ", GetLastError());
   else price=OrderOpenPrice();
   }
我是用手写的 - 不要踢我...:)
 
artmedia70:
第2和第3个缓冲器的指标。第二个是向上箭头,第三个是向下箭头。使用iCustom();与这些缓冲区的数据检查。
这些缓冲区是空的。产生相同的价值27..........,简而言之,很多数字永远不会改变......
 
Sergey_Rogozin:
这些缓冲区是空的。他们给出了相同的数值27..........,简而言之,很多数字永远不会改变......

它们只在带箭头的栏上变化。按Ctrl+D,将鼠标移到指标图上,观察这些缓冲区的数据。你欠我一杯啤酒:))

ZS.这些数字只不过是EMPTY_VALUE(空缓冲值)。