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

 
Artyom Trishkin 的可视性标志。需要隐藏和显示。

几天前,我给他们写了一封关于这个问题的信。但是,谁会听从合理的建议呢......?

 

关于交易、自动交易系统和策略测试的论坛

新手对MQL4和MQL5的任何问题,对算法和代码的提示和讨论

Mihail Matkovskij, 2021.12.03 22:27

你可以从图表中隐藏 一个对象,然后再显示 它。或者你可以跟踪CHARTEVENT_OBJECT_CLICK--一个完美的解决方案!


我认为没有必要进一步评论...?:)
 
Mihail Matkovskij #:
一个更紧凑的版本。

我不是程序员,不懂风格(我尽我所能写)。

Mihail Matkovskij#:

但我想你说你的功能假装是普遍的...?那么你忘记了一个非常重要的细节。

const-不知道它是什么,但没有它也能很好地工作。


Mihail Matkovskij#:

你是不是懒得写一个简单的脚本来检查它?好的。我是为了你才这样做的。

很奇怪...

这个函数在"-n "上生成假的。

我不是一个程序员,也不是一个老师。我在这里询问并回答(如果我知道的话)。我不是要炫耀我的阴部。

如果你想显示你的价值,就要学会承认错误或纠正错误。

 
Mihail Matkovskij #:

几天前,我给他们写了一封关于这个问题的信。但是,谁会听从合理的建议呢......?

我也注意到,比较活跃的人往往会被听取意见。在这种情况下,马卡。结果,最简单的问题在几天内都没有得到解决。

 
Alexey Viktorov #:

我也注意到,更活跃的人更经常被倾听。在这种情况下,马卡。结果,几天来,最简单的任务都没有得到解决。

阿列克谢,这个问题早就解决了,这个人想了解为什么这个特殊的选项不起作用。
 
MakarFX #:


const - 我不知道它是什么,但没有它也能正常工作

常量,它保证了值在函数中不会改变。

很奇怪...

它的功能是给出假的

我想我已经把事情弄清楚了。怎么了?

我不是一个程序员,也不是一个老师。我在问和回答(如果我知道的话)。我不是要炫耀我的阴部

如果你想显示你的价值,你最好学会承认你的错误或纠正它们。

我还回答问题。而我正试图传达一个写得好的代码应该是什么样子。而你却在和我谈论我的自我?我认为你和书呆子交易员 误解了我。我在上面已经说过,对我来说,编程知识的重要性才是最重要的,而不是我的重要性!

原则上,除了你的意愿之外,没有人要教你。但是,为你写的代码,但你不喜欢它,不适合它,或者你不理解它,可能会对其他论坛成员有用。因此,如果你不喜欢这个代码,就不要使用它。使用你喜欢的那个。

 
MakarFX #:
阿列克谢,这个问题早就解决了,这个人想了解为什么这个特殊的变体不起作用。

一切都在正常工作,他们在这里捣乱,而不是将正确的版本与错误的版本进行比较,这让每个人 都感到头疼。:)

 
законопослушный гражданин #:

清楚地

请告知我的理解是否正确,该函数返回最后一个平仓订单的手数,但会计工作从所有平仓订单列表的开头开始。

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int i=OrdersHistoryTotal();
   for(int pos=0; pos<i; pos++)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }

如果我这样做,它将从列表的最后算起?

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int i=OrdersHistoryTotal();
   for(int pos=0; pos>=i; pos--)
     {
      if(OrderSelect(pos, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }
 
законопослушный гражданин #:

你能告诉我,如果我理解正确,该函数返回最后一个关闭订单的手数,但核算从所有关闭订单列表的开始。

所以,如果我这样做,就会从列表的最后算起?

 
законопослушный гражданин #:

你能告诉我,如果我理解正确,该函数返回最后一个关闭订单的手数,但核算从所有关闭订单列表的开始。

如果我这样做,倒计时就会从列表的末尾开始进行?

第二种变体将无法工作。为了从列表的末尾开始计数,我们必须做以下工作。

double GetLotSize()
  {
   double Ls=0;
   datetime t=0;
   int total = OrdersHistoryTotal();
   for(int i = total - 1; i >= 0; i--)
     {
      if(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
        {
         if(OrderSymbol()==_Symbol && OrderMagicNumber()==Magic)
           {
            if(OrderType()==OP_BUY || OrderType()==OP_SELL)
              {
               if(t<OrderCloseTime()) {t=OrderCloseTime(); Ls=OrderLots();}
              }
           }
        }
     }
   return Ls;
  }
原因: