Скачать MetaTrader 5

Подскажите пожалуйста, как реализовать.

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Михаил
77
Михаил  
MA1_0=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 0);    // Текущее    значение 1-й МА
   MA1_1=iMA(NULL,0, MA1_Period, MA1_Shift,MAMethod(MA1_Method), MAPrice(MA1_Price), 1);    // Предыдущее значение 1-й МА
   MA2_0=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 0);    // Текущее    значение 2-й МА
   MA2_1=iMA(NULL,0, MA2_Period, MA2_Shift,MAMethod(MA2_Method), MAPrice(MA2_Price), 1);    // Предыдущее значение 2-й МА

        if(IntersectFlag == false)
        {   
             if(CrossPositionOpen() == 1) //Ф-ция, проверяющая пересечение МА. Пересекло снизу вверх
               {
               IntersectFlag = true;
               Price = Bid; //Запоминаем цену
               ABars = Bars; //Запоминаем кол-во свечей
               }
          //---- buy conditions
             if(CrossPositionOpen() == 2) //Ф-ция, проверяющая пересечение МА. Пересекло сверху вниз
               {
               IntersectFlag = true;
               Price = Bid; //Запоминаем цену
               ABars = Bars; //Запоминаем кол-во свечей
               }          
         }
               
               
        if(IntersectFlag == true)
        {
               if(CrossPositionClose() == 1) //Ф-ция, проверяющая пересечение МА. Пересекло снизу вверх
               {
               IntersectFlag = false;
               for(i=0; i<Bars-ABars; i++)
                  {
                  if(Low[i] >  MA && High[i] >  MA) //Как проверить мувинг аверэйдж???
                     {
                     
                     break;
                     }
                  }
               }
          //---- buy conditions
             if(CrossPositionClose() == 2) //Ф-ция, проверяющая пересечение МА. Пересекло сверху вниз
               {
               IntersectFlag = false;
               for(i=0; i<Bars-ABars; i++)
                  {
                  if(Low[i] <  MA && High[i] >  MA) //Как проверить мувинг аверэйдж????
                     {
                     
                     break;
                     }
                  }
               }    
         }
Дано ТЗ. Классика : длинная и короткая машка. Условие : короткая пересекает длинную, затем пересекает ее снова, в период между пересечениями, если Н свечей находилось выше (или ниже, смотря как пересекает), то через К кол-во пунктов мы входим в рынок. Подскажите пожалуйста, каким образом проверить, что цена была выше/ниже машки в период между пересечениями. 
Igor Kim
2747
Igor Kim  

Я бы сделал по другому:

  1. Все действия выполняем справа налево , от нулевого (текущего) бара и вглубь истории.
  2. Ищем номер бара первого пересечения машек.
  3. Ищем номер бара второго пересечения машек.
  4. Между барами проверяем машки, свечи и что там ещё нужно.
  5. Если нашли, что хотели, то ставим ордер через нужное количество пунктов, предварительно проверив, что его (ордера) нет.
ktest0
629
ktest0  

Все просто... 

Если хай свечи находится выше машки или лоу ниже. 

Михаил
77
Михаил  

KimIV, тоже интересное решение, попробую! Когда начинал, неоднократно пользовался вашими функциями, спасибо вам =) 

Я, вероятно, немного не правильно сформулировал вопрос... Я то и проверяю хай и лоу свечи, но как именно мне правильно взять определенное значение машки в тот момент, чтобы проверить в этом месте ?

               for(i=0; i<Bars-ABars; i++) //Начинаем проходить свечи от 0 к первому пересечению ?
                  {
                  if(Low[i] >  MA? && High[i] >  MA?) //Как проверить мувинг аверэйдж???
                     {
                     
                     break;
                     }
Igor Kim
2747
Igor Kim  
Stingerrr:

но как именно мне правильно взять определенное значение машки в тот момент, чтобы проверить в этом месте ?

Здесь смотрите параметр shift - это номер бара.
Михаил
77
Михаил  
Получилось, спасибо!
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий