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

 
STARIJ:
阅读你的评论:事实证明,如果最后三个订单中的一个以盈利收盘,那么交易就会停止!这就是为什么我们的交易会被认为是不公平的。

谢谢你的提示

打开新的秩序,我只是为了举例而给出的。我还没有交易。

我只是不明白如何对这个条件进行编码。

如果3-4-5.....,最后的订单在STOP时已经关闭。

我不知道该怎么做。

 
Victor Nikolaev:


差异是最小的。其中一个变量是布尔值。

输出将显示真或假

呃,我不知道如何添加变量--比如说,我有4个布尔变量,需要通过它们?

//+------------------------------------------------------------------+
//|                                                       Decode.mq4 |
//|                                            Copyright 2017, Vinin |
//|                                             http://vinin.ucoz.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Vinin"
#property link      "http://vinin.ucoz.ru"
#property version   "1.00"
#property strict
#property script_show_inputs
//--- input parameters
input int N=15;  //0..162
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   for(int n=0;n<N;n++)
     {
      int tmp=n;
      bool a= (bool) MathMod(tmp,2);
      bool b= (bool) MathMod(tmp,3);
      bool c= (bool) MathMod(tmp,4);
      bool d= (bool) MathMod(tmp,5);

      Print("N=",n,"; A=",a,"; B=",b,"; C=",c,"; D=",d);
     }

  }

我明白事情的要点--除法后的余数应小于或大于零--但我不知道如何实现这一点:(

 
ANDREY:

谢谢你的提示

打开新的秩序,我只是为了举例而给出的。我还没有交易。

我只是不明白如何对这个条件进行编码。

如果3-4-5.....,最后的订单在STOP时已经关闭。

我只是需要采取一些行动。

在采取任何行动之前,我们应该先看一下连续关闭的3到4到5个位置。如果一切都在停止,那么就采取一些行动。这是最基本的,华生...
 
ANDREY: 不仅是最后一笔订单,而且是倒数第二笔倒数 第三笔订单都必须在停止时关闭。

然后才开出另一个订单

附上脚本--我检查了它,它起作用了,结果附后

//+-------------------------------------------------------+
//| Подсчет убыточных ордеров                 PROBA_MA.mq4|
//+-------------------------------------------------------+
#property strict
130
void OnStart()
{
  int Счет=0, Номер=OrdersHistoryTotal()-1;

  for( ; Номер>=0; Номер--)
  {
    if(!OrderSelect(Номер, SELECT_BY_POS, MODE_HISTORY)) continue;
    Alert(Номер, "  Тикет = ", OrderTicket(),"  T =",OrderOpenTime(), "  Профит = ", OrderProfit());
    if(OrderProfit()>=0) break;
    Счет++;
    if(Счет==3)
    {
      Alert("Вот тут и открываем новый ордер");
      return;
    }
  }
  Alert("Подряд идущих убыточных ордеров слишком мало");
}

这就是所有的历史


这是在历史上点击右键,选择到5月3日为止的时期。

 
STARIJ:

附上脚本--经测试,它是有效的,结果附后。

这就是整个故事。


而这是在历史上点击右键,选择截至5月3日的时期

这是个站。而且这也不可靠。你必须独立于排序来做这件事。
 

很抱歉打扰你,我将再次回答我的问题。

我想是时候看一下图表了,我不是mql4的专家

我可能在错误的分支中问了一个问题。

 
STARIJ:

附上脚本--经过测试,它是有效的,结果附后。

这就是整个故事。


而这是在历史上点击右键,选择截至5月3日的时期

非常感谢您的帮助。
 
Artyom Trishkin 所以,这是个站。而且这也不可靠。不管排序如何,都应该这样做。

Artem!在终端的右下角 ,是与服务器交流的指标--接收和发送的千字节。指标显示为2318。在历史记录上点击右键,选择了今天(而今天是星期天)。历史被清空了。脚本显示历史上没有订单。 我在历史上点击右键,选择所有历史。该指标在添加了518千字节的情况下活了过来。因此,当你把过滤器设置为大周期时,订单会从服务器下载。如果你设置了一个较小的期限,它们就会被删除。因此,你最好设置为 "上周"、"最近3天 "或 "今天",以加快你的工作速度(减少需要处理的订单)。这可以通过脚本的帮助,用Alert(OrdersHistoryTotal())轻松检查。

关于分类。如果你点击历史记录中的列标题,你可以通过任何列的降序或升序对历史记录进行直观排序。然而订单 总是使用OrderSelect(Number, SELECT_BY_POS, MODE_HISTORY)函数选择,从历史的SELECTED区间的开始。而在历史上订单 是按照它们被发送到服务器的时间排序的,这是最自然的。如果数字=0,那么这就是SELECTED历史区间的最古老的订单。如果OrdersHistoryTotal()-1,就是所选历史区间的最新订单。我已经检查过很多次了。而且它不太可能被改变。

 
STARIJ:

Artem!在终端的右下角有一个与服务器交流的指标--接收和发送的千字节数。指标上是2318。右键点击历史记录,选择今天(而今天是星期天)。历史是空的。脚本显示历史上没有订单。 我在历史上点击右键,选择所有历史。该指标在添加了518千字节的情况下出现了活力。因此,当你把过滤器设置为大周期时,订单会从服务器下载。如果你设置了一个较小的期限,它们就会被删除。因此,你最好设置为 "上周"、"最近3天 "或 "今天",以加快你的工作速度(减少需要处理的订单)。这可以在脚本的帮助下很容易地检查,该脚本有Alert(OrdersHistoryTotal())。

关于分类。如果你点击历史记录中的列标题,你可以通过任何列的降序或升序对历史记录进行直观排序。然而订单总是使用OrderSelect(Number, SELECT_BY_POS, MODE_HISTORY)函数 来选择,从历史的SELECTED区间的开始。而在历史上,订单是按照它们被发送到服务器的时间排序的,这是最自然的。如果这个数字=0,那么这就是SELECTED历史区间的最古老的订单。如果OrdersHistoryTotal()-1,就是所选历史区间的最新订单。我已经检查过很多次了。而且这一点不太可能被改变。

你是如此之新,以至于你不知道一切的原貌。三百年来的经验法则是,基于时间的搜索是确定最后/第一或连续位置的唯一可靠方法。你在用钱工作。好吧,如果只是和你自己的,也和别人的。甚至间接地用你的方案。

而且你告诉我的并不是什么秘密或启示--多年来每个人都知道这一点;)

而我所说的--你还是不明白......

 
Artyom Trishkin:

你是如此之新,以至于你不知道一切的原貌。基于时间的搜索是确定最后/第一或连续位置的唯一可靠方法,这已经是三十年来的规则。你在用钱工作。好吧,如果只是和你自己的,也和别人的。甚至间接地用你的方案。

而且你告诉我的并不是什么秘密或启示--多年来每个人都知道这一点;)

而我说的是什么--你还是不明白...

Artem,要么是不露声色的嘲弄,要么是你不知道你在写什么!!!。

在你的上一篇文章中,你谈到了分类问题。向你解释过,不存在对分类的依赖性。

我看到并参与了其中一次关于按时间选择订单 的讨论。结论是,现在订单数据库中的订单是按照它们被发送到服务器的时间来排序的。但从理论上讲,人们担心开发商会改变这一点。那次讨论就这样结束了。作为一个数据库专家,我向你保证,这种担心是没有根据的,改变是不可能的。你可以把这个问题提交给开发人员。如果我写东西,我知道我写的是什么。这是编程的第50周年。如果你在我的帖子中注意到一些来自你的观点的混乱--亲自写信给我。我将解释,你的疑虑就会消除。但这里的争吵不太可能是适当的。我给那人写了一个剧本--他说谢谢你。这不是很好吗?

关于那天的事。我刚刚改变了我的用户名,你可以通过风格猜出它是什么。或者检查你的IP,你可能有权限...请不要再回答了。

原因: