[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要与它擦肩而过。没有你,哪里都不能去 - 5. - 页 311

 

关于测试器操作的问题:在测试通过,你改变了参数(日期、货币对、时间框架),重新运行测试--它在运行,但当它结束时,"图表 "和 "报告 "等选项卡中的信息根本没有变化--一切都停留在先前的测试 中。保存的报告也被证明是旧的。原因是什么,如何解决这个问题?也许有一些功能可以重置结果?

我已经阅读了手册、文章,搜索了论坛--我没有遇到任何提到这样的问题......

 

我想我需要用一个外部文件来修复结壳指标,我做不到,我就是搞不清楚哪里出了问题。我不知道哪里出了问题。

1)与报告

谁会帮助完成他开始与那些将分享战略(指标紧缩只是战略的一部分,但同样重要)。 真正的毕业(不能这么长时间的幸运,砍掉的只是我们的能量,而不是把一个停止循环,直到那时,所有的上升和你看到什么进展)。

附加的文件:
 
但这里有几段代码
附加的文件:
 

你能告诉我什么是错的吗?连续四个订单的修改是正常的,但在第四个勾选时,它开始写OrderModify错误1。

趋势逆转后,第一单没有问题,第二单正常修改,但又一次写了同样的废话......

正常化没有起到作用。

我已经打了好几天了!

   for (x=0;x<OrT;x++)
   {
   if (OrderSelect(x,SELECT_BY_POS)==true)
    {
     if (OrderMagicNumber() == magic)
      {
       if (OrderType = OP_BUY)
       {
       shift = iBarShift(Symbol(),30,OrderOpenTime());                           //запомнил свечу открытия
        for (m=shift;m>=1;m--)
        if (High[m]-OrderOpenPrice() >= TS*Point)
        {
         if (OrderOpenPrice()+spread*Point != OrderStopLoss())
         {
          OrderModify(OrderTicket(),OrderOpenPrice(),                           //переводит SL в безубыток
          OrderOpenPrice()+spread*Point,OrderTakeProfit(),0,CLR_NONE);
          return;
         }
        }
       }
      }
     if (OrderMagicNumber() == magic)
     {
      if (OrderType = OP_SELL)
      {
       shift = iBarShift(Symbol(),30,OrderOpenTime());                           //запомнил свечу открытия
        for (m=shift;m>=1;m--)
        if (OrderOpenPrice()-Low[m] >= TS*Point)
        {
         if (OrderOpenPrice()-spread*Point != OrderStopLoss())
         {
           OrderModify(OrderTicket(),NormalizeDouble(OrderOpenPrice(),dig),     //переводит SL в безубыток
           NormalizeDouble(OrderOpenPrice()-spread*Point,dig),
           NormalizeDouble(OrderTakeProfit(),dig),0,CLR_NONE);
           return;
         }
        }
       } 
      }
    }
   }

预先感谢你。

 
CYBOPOB:

你能告诉我什么是错的吗?连续四个订单的修改是正常的,但在第四个勾选时,它开始写OrderModify错误1。

趋势逆转后,第一笔订单没有问题,第二笔订单对其进行了修改,但又显示同样的错误......。

正常化并没有起到作用。

我已经为这个问题纠结了好几天了!

预先感谢你。

要么自己考虑这些规则(写代码时),要么使用已经考虑到这些规则的现成解决方案。
 
CYBOPOB:

你能告诉我什么是错的吗?连续四个订单的修改是正常的,但在第四个勾选时,它开始写OrderModify错误1。

趋势逆转后,第一单没有问题,第二单正常修改,但又一次写了同样的废话......

正常化没有起到作用。

我已经打了好几天了!

预先感谢你。

在修改之前,你必须检查止损单 参数是否等于新的止损。如果它们是平等的,就没有什么需要修改。因此,错误1。
 

关于排序数组。
我试图对两个数组进行排序:第一个数组按升序排序(ArraySort(num_array);函数),第二个数组根据第一个数组进行排序,这样,如果第一个数组中的第五个元素移动到第一个位置,那么第二个数组也会这样做(第五个元素在第一个位置)。
如果有一个MQL函数用于将数组排序在一起,请给我链接。
注意到。舒尔金。

 
artmedia70:
在修改之前,你需要检查止损单参数是否与新的止损单相等。如果它们是平等的,就没有什么需要修改。因此,错误1。


不就是这样吗?

if (OrderStopLoss() != OrderOpenPrice()-spread*Point)

Artem,不要认为这是一个问题, 代码吧,嗯?或者把你手中的东西给我,我将结束这种折磨......。

 
CYBOPOB:

不就是这样吗?

Artem,不要认为这是一个问题, 代码吧,嗯?或者把你手中的东西给我,我将结束这种折磨......。


不是说。我告诉过你。

在修改之前,你需要检查止损单参数 是否与新的止损相等。如果它们是平等的,就没有什么需要修改。因此,错误1。

 

我有一个问题要问专业人士。我想让这个功能变得普遍。该函数计算一个特征(看涨或看跌,匹配的大小,也许还有其他我添加的东西)的柱子有多少个是相互跟随的,如果有一个柱子不符合这个特征,即指向另一个方向,计数器就被重置。

下面是一个代码,我在其中一个变体中进行计算。也就是说,如果一个特征的柱子是向上的,也就是看涨的。

int LastCandlesType(int trend)
{
   int cnt,                            // Счётчик идущих друг за другом свечей с требуемыми признаками

   for (int i=i_AnyBarsToHistory; i>=1; i--)
   {
      if ((Close[i] - Open[i]) >= i_sizeOfSequentialCorrectionBar * pt)     // Если бар соответствует требуемым признакам..
          cnt++;                                                                     // .. прибавим 1 к счётчику

      if (Close[i] < Open[i])                                                        // Если бар, не соответствует основному признаку..
          cnt = 0;                                                                   // .. счётчик обнуляем
      
/*      if (i == 1)
      Print("i = ", i,"; cnt = ", cnt);*/
   }

   if (cnt == 3)                                                                     // Если 5 баров вподряд бычьи..
    return (REQUIRED_SEQUENTIAL_CANDLE_GOT);                                         //..Выходим из функции
}

如何使其在向该函数传递趋势 参数时,负责传递当下所谓的主要趋势,计算是基于该参数的。

也就是说,如果趋势==向下,循环中的函数就像现在这样,如果趋势==向上循环中 Open[i]Close[i] 被调换,这样就可以观察到条件。因为在这种情况下,条形图的收盘价 将低于开盘价,其差额将为负值。

原因: