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

 
tpg_k156:
大家下午好。你能告诉我如何在Metatrader 4中复制交易吗?因此,通过在一个终端上开立交易,你可以在另一个终端上获得一个开放的交易。

CodeBase 中寻找一个复印机。当然不是最好的,但它们可以免费获得
 
谁知道,是否可以通过制作Hour()、Minute()和Seconds()全局变量 来控制DailyPivotPoints指标在午夜(0.00)改变为新的PP水平,以及EA的其他线路? 我曾经直接在指标中使用Hour()、Minute()和Seconds(),而且无需每晚编译就可以工作。但最近它停止了自我改变,也许是因为改变了图片?谢谢!
 
borilunad:
谁知道,是否可以通过制作Hour()、Minute()和Seconds()全局变量来控制DailyPivotPoints指标在午夜(0.00)改变为新的PP水平,以及EA的其他线路? 我曾经直接在指标中使用Hour()、Minute()和Seconds(),而且无需每晚编译就可以工作。但最近它停止了自我改变,也许是因为改变了图片?谢谢!

应该在新的一天的第一个刻度上工作。
 
borilunad:

谢谢你,维克多!我的简短版本对你有用吗?


是的,鲍里斯,顺便说一句,这非常好!。非常感谢你。这就是我想要的。我扭曲了它......我扭曲了它......。我没有搞清楚。我还没有太多的经验,我的大脑也没有像专业人士那样思考。这有点像一个死胡同,不是吗?:(

我不想问,但我不得不问。因为我自己不能把它变短。

 
你能告诉我如何建立一个穿越分形的通道,但仅限于0条,并在出现新条形 时进一步重绘。问题在于限制。
 
beginner:
你能告诉我如何建立一个穿越分形的通道,但仅限于0条,并在出现新条形时进一步重绘。问题在于限制。

解释 "受0bar限制 "的概念。
 

这里有一个函数。

bool IsUpFractal(int index)
{
   double centerHigh = High[index + g_center];     // За точку отсчета берется средний..
                                                   // ..бар на участке из i_fractalPeriod
                                                   // ..баров
// - 1 - == Поиск максимумов справа от центрального бара ================================
   int cnt = 0, i = index + g_center - 1;
   for (; i >= 0 && cnt < g_center; i--)           // Справа от центрального бара должно
   {                                               // ..быть g_center-1 баров с низшим..
      if (centerHigh <= High[i])                   // ..максимумом. Не позволяется..
         return (false);                           // ..наличие баров с большим или..
      cnt++;                                       // ..равным максимумом.
   }
   
   if (i < 0)                                      // g_center-1 низших максимумов не..
      return (false);                              // ..найдено. Фрактала нет
// - 1 - == Окончание блока =============================================================

// - 2 - == Поиск максимумов слева от центрального бара =================================
   cnt = 0;
   i = index + g_center + 1;
   int total = Bars - 1;
   for (; i < total && cnt < g_center; i++)        // Слева от центрального бара должно
   {                                               // ..быть g_center-1 баров с низшим..
      if (centerHigh == High[i])                   // ..максимумом. Не позволяется..
         continue;                                 // ..наличие баров с большим..
      if (centerHigh < High[i])                    // ..максимумом. Равный - позволяется
         return (false);
      cnt++;                                    
   }
   
   if (i >= total)                                 // g_center-1 низших максимумов не..
      return (false);                              // ..найдено. Фрактала нет
// - 2 - == Окончание блока =============================================================
                                                   
   return (true);                                  // Фрактал найден                 
}
//+-------------------------------------------------------------------------------------+
//| Определение наличия нижнего фрактала на указанном баре                              |
//+-------------------------------------------------------------------------------------+
bool IsDnFractal(int index)
{
   double centerLow = Low[index + g_center];       // За точку отсчета берется средний..
                                                   // ..бар на участке из i_fractalPeriod
                                                   // ..баров
// - 1 - == Поиск минимумов справа от центрального бара =================================
   int cnt = 0, i = index + g_center - 1;
   for (; i >= 0 && cnt < g_center; i--)           // Справа от центрального бара должно
   {                                               // ..быть g_center-1 баров с большим..
      if (centerLow >= Low[i])                     // ..минимумом. Не позволяется..
         return (false);                           // ..наличие баров с меньшим или..
      cnt++;                                       // .. равным минимумом
   }
   
   if (i < 0)                                      // g_center-1 больших минимумов не..
      return (false);                              // ..найдено. Фрактала нет
// - 1 - == Окончание блока =============================================================

// - 2 - == Поиск минимумов слева от центрального бара ==================================
   cnt = 0;
   i = index + g_center + 1;
   int total = Bars - 1;
   for (; i < total && cnt < g_center; i++)        // Слева от центрального бара должно
   {                                               // ..быть g_center-1 баров с большим..
      if (centerLow == Low[i])                     // ..минимумом. Не позволяется..
         continue;                                 // ..наличие баров с меньшим минимумом
      if (centerLow > Low[i])                      // ..Равный минимум - разрешается
         return (false);
      cnt++;   
   }
   
   if (i >= total)                                 // g_center-1 больших минимумов не..
      return (false);                              // ..найдено. Фрактала нет
// - 2 - == Окончание блока =============================================================
                                                   
   return (true);                                  // Фрактал найден                 
}

该函数得到了索引 值,它有一个条形值来计算0或1.这是以一种有趣的方式编写的循环..:

for (; i >= 0 && cnt < g_center; i--)

也就是说,没有变量值可以开始计算。根据机器的逻辑,在这种情况下,将从哪根柱子开始计算?如果有i-- 的递减,那么从最大?

同样有i = index + g_center - 1, 但这里有一个点什么价值的指数会先来这里?最大还是最小?

 
hoz:

也就是说,没有变量值可以开始计算。根据机器的逻辑,计算将从哪一栏开始? 如果有一个i 的递减-- 是最大的吗?


不,从我在循环前的那个变量值来看。入选

   int cnt = 0, i = index + g_center - 1;
   for (; i >= 0 && cnt < g_center; i--)

同于

   int cnt,i;
   for (cnt = 0, i = index + g_center - 1; i >= 0 && cnt < g_center; i--)
 
换句话说,for循环中的第一个表达式既可以写在它的位置上,也可以写在循环之前,结果是一样的。
 
hoz:

同样,i = index + g_center - 1, 但这里是重点这里出现的第一个指数值是什么?最大还是最小?


索引将是作为参数传递给函数的值。