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

 
ilnur17021992:

有一个变量

int Level = 0。

在程序运行的同时,它也在不断变化。帮我写一个条件:如果Level没有变化,那么什么都不做。 如果Level有变化(不管它是向上还是向下变化),那么做一些动作 { 操作员 }

输入另一个变量

int Level1 = 0。

int Level = 0。

如果(Level !=Level1)

{};

然后Level1 =Level

但我真的不明白,如果我们可以在任何交易操作 后拉出一个数组,为什么我们需要在每个tick上拉出一个数组?

 
trader781:

输入另一个变量

int Level1 = 0。

int Level = 0。

如果(Level !=Level1)

{};

然后Level1 =Level

我不太明白,如果我可以在任何交易操作 后拉出一个数组,为什么我需要在每个tick上拉出一个数组?

      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

此外,我需要它在SELL_Lvl增加时发生。

         ObjectDelete( "Sell no loss level");

但是,由于SELL_Lvl>0 的条件得到满足,该线又被重新绘制,但是由SELL_NoLossLevel 的新值来完成。根据SELL_Lvl,是否有一个更简单、更明显的方法来重新划线

 
ilnur17021992:
      if(SELL_Lvl>0)
      {
         ObjectCreate("Sell no loss level", OBJ_HLINE, 0, 0, SELL_NoLossLevel);
      }          

然后我需要增加SELL_Lvl来重新绘制。

         ObjectDelete( "Sell no loss level");

但由于SELL_L_Lvl>0 的条件得到满足,应该再次重绘该线,但要以SELL_NoLossLevel 的新值进行。有没有一种更简单、更明显的方法,根据SELL_Lvl 的值,重新画线

将对象转移到新值,而不删除它或重新创建它。

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);
 
Vitaly Muzichenko:

将对象转移到新值,而不删除它或重新创建它。

ObjectSetDouble(chart_ID, "Sell no loss level", OBJPROP_PRICE1, NewPrice);

这当然是一种选择,但我希望根据SELL_NoLossLevel 的值来重新画线,这取决于SELL_Lvl是否发生了变化

像这样 if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level");}

线条在每一个刻度线上 都会被重绘,而我需要它在SELL_Lvl 变化时才被重绘

 
ilnur17021992:

当然,这是一个变种,但我希望SELL_NoLossLevel 能根据SELL_Lvl 是否 改变 而重新划线。

像这样 if(ObjectGet("Sell no loss level", 1) !=SELL_NoLossLevel{ObjectDelete("Sell no loss level");}

这条线在每个tick 上都被重绘,而我需要它只在SELL_Lvl 变化时才被重绘

解释清楚重划线的条件,用真实的价格值。

对于高亮线:它的变化有多大?什么表明SELL_Lvl已经改变?

 
请教一下MCL5中关闭挂单的 功能,有五个买入限价单,关闭最低的一个。
 
TYRBO:
我想知道在MCL5中用什么函数来关闭一个挂单

最好是通过循环,确定正确的一个,并通过文件

删除待处理的订单

交易指令,删除一个挂单。需要指定2个字段。

  • 行动
  • 秩序
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса
  • www.mql5.com
Стандартные константы, перечисления и структуры / Структуры данных / Структура торгового запроса - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Alexey Viktorov:

最好是通过循环,确定正确的,并遵循文件 的规定

我知道如何找到底单的价格。 如果你能告诉我如何找到底单的票,我将非常感激。
 
Alexey Viktorov:

把重划线的条件写清楚,用真实的价格值,然后你会明白你需要做什么。

在强调:改变了多少?什么表明SELL_Lvl已经改变?

SELL_Lvl是卖出网格的膝盖(订单)数量。SELL_NoLossLevel 是这些订单的总水平(价格)。好吧,想法是这样的:我们需要在买入线的水平上画一条线,并在新的线被打开时分别重画。我不知道该怎么做。
 
TYRBO:
我知道如何找到最小订单的价格。 如果你能告诉我如何找到最小订单的票据,我将非常感激。

文档中有一个例子。

也许更好的做法是在循环中浏览订单,只要下一个订单比上一个订单低,就选择它来进一步处理。因此,当我们退出循环时,要删除的订单 将被选中

或者你可以先在循环中保存它在订单列表中的位置,在退出循环后通过保存的索引选择它。

Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
原因: