Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
14.01.2015, 13:45
Лучший ответ
Выплачено: 42 RUB
Сообщение от Newbie Посмотреть сообщение
цыферку не ту поставил.. терь норм должно быть

Код:
//+------------------------------------------------------------------+
//|                                                   AltAverage.mq4 |
//+------------------------------------------------------------------+
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Maroon
#property indicator_color2 MidnightBlue
#property indicator_color3 Sienna
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
extern string o1 = "главная";
extern int pr00 = 5;
extern int pr01 = 5;
extern int pr02 = 5;
extern string o2 = "сигнальная";
extern int pr10 = 20;
extern int pr11 = 20;
extern int pr12 = 20;
extern string o3 = "фильтр";
extern int pr20 = 50;
extern int pr21 = 50;
extern int pr22 = 50;
extern string o4 = "метод (от 0 до 3)";
extern int sft = 0;
//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double ExtMapBuffer3[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_LINE);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexStyle(1,DRAW_LINE);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexStyle(2,DRAW_LINE);
   SetIndexBuffer(2,ExtMapBuffer3);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//i| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   ObjectsDeleteAll(0,OBJ_ARROW);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
   {
   int limit,i;
   int counted_bars = IndicatorCounted();
   if(counted_bars>0) counted_bars--;
   limit = Bars - counted_bars;
//----
   for(i=limit;i>=0;i--){
      ExtMapBuffer1[i] = Model(NULL,pr00,pr01,pr02,sft,i);
      ExtMapBuffer2[i] = Model(NULL,pr10,pr11,pr12,sft,i);
      ExtMapBuffer3[i] = Model(NULL,pr20,pr21,pr22,sft,i);
      }
  for(i=limit;i>=0;i--){
      double MA1 = ExtMapBuffer1[i+2];
      double MA2 = ExtMapBuffer2[i+2];
      if(ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]>ExtMapBuffer2[i+2]){
         if(ExtMapBuffer1[i+1]>ExtMapBuffer2[i+1]){
            if(MA1<=MA2){
               ArrowUP(i, DodgerBlue);
               Alert(Symbol(), " ", Period(), " BUY Alert ");
               }
            }
         }
      if(ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]<ExtMapBuffer2[i+2]){
         if(ExtMapBuffer1[i+1]<ExtMapBuffer2[i+1]){
            if(MA1>=MA2){
               ArrowDW(i, Red);
               Alert(Symbol(), " ", Period(), " SELL Alert ");
               }
            }
         }
      }
//----
   return(0);
  }
//+------------------------------------------------------------------+
double Model(string ss,int pr0,int pr1,int pr2,int mtd,int shift){
   double a0 = iMA(ss,0,pr0,0,mtd,0,shift);
   double a1 = iMA(ss,0,pr1,0,mtd,0,shift);
   double a2 = iMA(ss,0,pr2,0,mtd,0,shift);
   double res = (a0+a1+a2)/3;
   return (res);
   }
void ArrowUP(int sfift, color col){
         ObjectCreate("UP "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
         ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 241);
         ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
         } 
void ArrowDW(int sfift, color col){
         ObjectCreate("DW "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
         ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 242);
         ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
         }
Толи я чего-то не то делаю, хотя как вобщем опять пищит попусту.
14.01.2015, 13:51
Лучший ответ
Выплачено: 2621 RUB
в коде все по-математике.. кинул на минутный график, тож нормально.. можт он орет на "сигнальной" свече, пока она не закроется?..
никогда не пользуюсь этой функцией, передал сигнал в советник и забыл..
14.01.2015, 14:33
Лучший ответ
Выплачено: 42 RUB
Сообщение от Newbie Посмотреть сообщение
в коде все по-математике.. кинул на минутный график, тож нормально.. можт он орет на "сигнальной" свече, пока она не закроется?..
никогда не пользуюсь этой функцией, передал сигнал в советник и забыл..
Может и так, поищу еще. Спасибо что помогли
11.01.2015, 18:05
Лучший ответ
Выплачено: 2621 RUB
каждая средняя индикатора строится на основе трех, это дает возможность более тонкой настройки системы..
14.01.2015, 10:24
Лучший ответ
Выплачено: 42 RUB
Сообщение от Newbie Посмотреть сообщение
каждая средняя индикатора строится на основе трех, это дает возможность более тонкой настройки системы..
Спасибо, все так. Только сигнал появляется когда 5 МА пересекает 20 МА по тренду т.е 50 МА, а хотелось бы против. Если не сложно черканите, а то чего-то не получается переделать
14.01.2015, 11:03
Лучший ответ
Выплачено: 42 RUB
Сообщение от Nikko24 Посмотреть сообщение
Спасибо, все так. Только сигнал появляется когда 5 МА пересекает 20 МА по тренду т.е 50 МА, а хотелось бы против. Если не сложно черканите, а то чего-то не получается переделать
Все допер, местами периоды МА поменял.
Может подскажите, как теперь Звуковой Аллерт вставить к стрелке для полной картины.
  • #1 Свернуть

    Алерт на пересечении 2-х МА, если они, под/над 3-й МА

    Всем привет, помогите пожалуйста в создании индикатора, скорее всего у профи это не займет много времени.

    К сути:
    Есть три Скользящих Средних с периодом 5, 20, 50.
    Алерт при пересечении МА 5 и МА 20 при условии, что они находятся под МА 50 и МА 5 пересекает 20 снизу вверх.
    Если МА 5 и 20 находятся над МА 50, то алерт при пересечении МА 5 и 20 сверху вниз.

    Вот собственно и все, заранее Спасибо
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    каждая средняя индикатора строится на основе трех, это дает возможность более тонкой настройки системы..

    Комментарий

    • #3 Свернуть

      Сообщение от Newbie Посмотреть сообщение
      каждая средняя индикатора строится на основе трех, это дает возможность более тонкой настройки системы..
      Спасибо, все так. Только сигнал появляется когда 5 МА пересекает 20 МА по тренду т.е 50 МА, а хотелось бы против. Если не сложно черканите, а то чего-то не получается переделать

      Комментарий

      • #4 Свернуть

        Сообщение от Nikko24 Посмотреть сообщение
        Спасибо, все так. Только сигнал появляется когда 5 МА пересекает 20 МА по тренду т.е 50 МА, а хотелось бы против. Если не сложно черканите, а то чего-то не получается переделать
        Все допер, местами периоды МА поменял.
        Может подскажите, как теперь Звуковой Аллерт вставить к стрелке для полной картины.

        Комментарий

        • #5 Свернуть

          не проверял, но должен пищать..
          Код:
          //+------------------------------------------------------------------+
          //|                                                   AltAverage.mq4 |
          //+------------------------------------------------------------------+
          #property indicator_chart_window
          #property indicator_buffers 3
          #property indicator_color1 Maroon
          #property indicator_color2 MidnightBlue
          #property indicator_color3 Sienna
          //+------------------------------------------------------------------+
          //| Custom indicator initialization function                         |
          //+------------------------------------------------------------------+
          extern string o1 = "главная";
          extern int pr00 = 5;
          extern int pr01 = 5;
          extern int pr02 = 5;
          extern string o2 = "сигнальная";
          extern int pr10 = 20;
          extern int pr11 = 20;
          extern int pr12 = 20;
          extern string o3 = "фильтр";
          extern int pr20 = 50;
          extern int pr21 = 50;
          extern int pr22 = 50;
          extern string o4 = "метод (от 0 до 3)";
          extern int sft = 0;
          //--- buffers
          double ExtMapBuffer1[];
          double ExtMapBuffer2[];
          double ExtMapBuffer3[];
          //+------------------------------------------------------------------+
          //| Custom indicator initialization function                         |
          //+------------------------------------------------------------------+
          int init()
            {
          //---- indicators
             SetIndexStyle(0,DRAW_LINE);
             SetIndexBuffer(0,ExtMapBuffer1);
             SetIndexStyle(1,DRAW_LINE);
             SetIndexBuffer(1,ExtMapBuffer2);
             SetIndexStyle(2,DRAW_LINE);
             SetIndexBuffer(2,ExtMapBuffer3);
          //----
             return(0);
            }
          //+------------------------------------------------------------------+
          //i| Custom indicator deinitialization function                       |
          //+------------------------------------------------------------------+
          int deinit()
            {
          //----
             ObjectsDeleteAll(0,OBJ_ARROW);
          //----
             return(0);
            }
          //+------------------------------------------------------------------+
          //| Custom indicator iteration function                              |
          //+------------------------------------------------------------------+
          int start()
             {
             int limit,i;
             int counted_bars = IndicatorCounted();
             if(counted_bars>0) counted_bars--;
             limit = Bars - counted_bars;
          //----
             for(i=limit;i>=0;i--){
                ExtMapBuffer1[i] = Model(NULL,pr00,pr01,pr02,sft,i);
                ExtMapBuffer2[i] = Model(NULL,pr10,pr11,pr12,sft,i);
                ExtMapBuffer3[i] = Model(NULL,pr20,pr21,pr22,sft,i);
                }
            for(i=limit;i>=0;i--){
                double MA1 = ExtMapBuffer1[i+2];
                double MA2 = ExtMapBuffer2[i+2];
                if(ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2]){
                   if(ExtMapBuffer1[i+1]>ExtMapBuffer2[i+1]){
                      if(MA1<=MA2){
                         ArrowUP(i, DodgerBlue);
                         Alert(Symbol(), " ", Period(), " BUY Alert ");
                         }
                      }
                   }
                if(ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2]){
                   if(ExtMapBuffer1[i+1]<ExtMapBuffer2[i+1]){
                      if(MA1>=MA2){
                         ArrowDW(i, Red);
                         Alert(Symbol(), " ", Period(), " SELL Alert ");
                         }
                      }
                   }
                }
          //----
             return(0);
            }
          //+------------------------------------------------------------------+
          double Model(string ss,int pr0,int pr1,int pr2,int mtd,int shift){
             double a0 = iMA(ss,0,pr0,0,mtd,0,shift);
             double a1 = iMA(ss,0,pr1,0,mtd,0,shift);
             double a2 = iMA(ss,0,pr2,0,mtd,0,shift);
             double res = (a0+a1+a2)/3;
             return (res);
             }
          void ArrowUP(int sfift, color col){
                   ObjectCreate("UP "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                   ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 241);
                   ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                   } 
          void ArrowDW(int sfift, color col){
                   ObjectCreate("DW "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                   ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 242);
                   ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                   }

          Комментарий

          • #6 Свернуть

            Сообщение от Newbie Посмотреть сообщение
            не проверял, но должен пищать..
            Код:
            //+------------------------------------------------------------------+
            //|                                                   AltAverage.mq4 |
            //+------------------------------------------------------------------+
            #property indicator_chart_window
            #property indicator_buffers 3
            #property indicator_color1 Maroon
            #property indicator_color2 MidnightBlue
            #property indicator_color3 Sienna
            //+------------------------------------------------------------------+
            //| Custom indicator initialization function                         |
            //+------------------------------------------------------------------+
            extern string o1 = "главная";
            extern int pr00 = 5;
            extern int pr01 = 5;
            extern int pr02 = 5;
            extern string o2 = "сигнальная";
            extern int pr10 = 20;
            extern int pr11 = 20;
            extern int pr12 = 20;
            extern string o3 = "фильтр";
            extern int pr20 = 50;
            extern int pr21 = 50;
            extern int pr22 = 50;
            extern string o4 = "метод (от 0 до 3)";
            extern int sft = 0;
            //--- buffers
            double ExtMapBuffer1[];
            double ExtMapBuffer2[];
            double ExtMapBuffer3[];
            //+------------------------------------------------------------------+
            //| Custom indicator initialization function                         |
            //+------------------------------------------------------------------+
            int init()
              {
            //---- indicators
               SetIndexStyle(0,DRAW_LINE);
               SetIndexBuffer(0,ExtMapBuffer1);
               SetIndexStyle(1,DRAW_LINE);
               SetIndexBuffer(1,ExtMapBuffer2);
               SetIndexStyle(2,DRAW_LINE);
               SetIndexBuffer(2,ExtMapBuffer3);
            //----
               return(0);
              }
            //+------------------------------------------------------------------+
            //i| Custom indicator deinitialization function                       |
            //+------------------------------------------------------------------+
            int deinit()
              {
            //----
               ObjectsDeleteAll(0,OBJ_ARROW);
            //----
               return(0);
              }
            //+------------------------------------------------------------------+
            //| Custom indicator iteration function                              |
            //+------------------------------------------------------------------+
            int start()
               {
               int limit,i;
               int counted_bars = IndicatorCounted();
               if(counted_bars>0) counted_bars--;
               limit = Bars - counted_bars;
            //----
               for(i=limit;i>=0;i--){
                  ExtMapBuffer1[i] = Model(NULL,pr00,pr01,pr02,sft,i);
                  ExtMapBuffer2[i] = Model(NULL,pr10,pr11,pr12,sft,i);
                  ExtMapBuffer3[i] = Model(NULL,pr20,pr21,pr22,sft,i);
                  }
              for(i=limit;i>=0;i--){
                  double MA1 = ExtMapBuffer1[i+2];
                  double MA2 = ExtMapBuffer2[i+2];
                  if(ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2]){
                     if(ExtMapBuffer1[i+1]>ExtMapBuffer2[i+1]){
                        if(MA1<=MA2){
                           ArrowUP(i, DodgerBlue);
                           Alert(Symbol(), " ", Period(), " BUY Alert ");
                           }
                        }
                     }
                  if(ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2]){
                     if(ExtMapBuffer1[i+1]<ExtMapBuffer2[i+1]){
                        if(MA1>=MA2){
                           ArrowDW(i, Red);
                           Alert(Symbol(), " ", Period(), " SELL Alert ");
                           }
                        }
                     }
                  }
            //----
               return(0);
              }
            //+------------------------------------------------------------------+
            double Model(string ss,int pr0,int pr1,int pr2,int mtd,int shift){
               double a0 = iMA(ss,0,pr0,0,mtd,0,shift);
               double a1 = iMA(ss,0,pr1,0,mtd,0,shift);
               double a2 = iMA(ss,0,pr2,0,mtd,0,shift);
               double res = (a0+a1+a2)/3;
               return (res);
               }
            void ArrowUP(int sfift, color col){
                     ObjectCreate("UP "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                     ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 241);
                     ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                     } 
            void ArrowDW(int sfift, color col){
                     ObjectCreate("DW "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                     ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 242);
                     ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                     }
            ДА пищит, только, реагирует на каждое изменение цены, то есть без перерыва, как сумашедший .
            Это происходит пока есть условие выполнения ( пока 5 МА не пересекла 20 МА обратно по тренду)

            Комментарий

            • #7 Свернуть

              цыферку не ту поставил.. терь норм должно быть

              Код:
              //+------------------------------------------------------------------+
              //|                                                   AltAverage.mq4 |
              //+------------------------------------------------------------------+
              #property indicator_chart_window
              #property indicator_buffers 3
              #property indicator_color1 Maroon
              #property indicator_color2 MidnightBlue
              #property indicator_color3 Sienna
              //+------------------------------------------------------------------+
              //| Custom indicator initialization function                         |
              //+------------------------------------------------------------------+
              extern string o1 = "главная";
              extern int pr00 = 5;
              extern int pr01 = 5;
              extern int pr02 = 5;
              extern string o2 = "сигнальная";
              extern int pr10 = 20;
              extern int pr11 = 20;
              extern int pr12 = 20;
              extern string o3 = "фильтр";
              extern int pr20 = 50;
              extern int pr21 = 50;
              extern int pr22 = 50;
              extern string o4 = "метод (от 0 до 3)";
              extern int sft = 0;
              //--- buffers
              double ExtMapBuffer1[];
              double ExtMapBuffer2[];
              double ExtMapBuffer3[];
              //+------------------------------------------------------------------+
              //| Custom indicator initialization function                         |
              //+------------------------------------------------------------------+
              int init()
                {
              //---- indicators
                 SetIndexStyle(0,DRAW_LINE);
                 SetIndexBuffer(0,ExtMapBuffer1);
                 SetIndexStyle(1,DRAW_LINE);
                 SetIndexBuffer(1,ExtMapBuffer2);
                 SetIndexStyle(2,DRAW_LINE);
                 SetIndexBuffer(2,ExtMapBuffer3);
              //----
                 return(0);
                }
              //+------------------------------------------------------------------+
              //i| Custom indicator deinitialization function                       |
              //+------------------------------------------------------------------+
              int deinit()
                {
              //----
                 ObjectsDeleteAll(0,OBJ_ARROW);
              //----
                 return(0);
                }
              //+------------------------------------------------------------------+
              //| Custom indicator iteration function                              |
              //+------------------------------------------------------------------+
              int start()
                 {
                 int limit,i;
                 int counted_bars = IndicatorCounted();
                 if(counted_bars>0) counted_bars--;
                 limit = Bars - counted_bars;
              //----
                 for(i=limit;i>=0;i--){
                    ExtMapBuffer1[i] = Model(NULL,pr00,pr01,pr02,sft,i);
                    ExtMapBuffer2[i] = Model(NULL,pr10,pr11,pr12,sft,i);
                    ExtMapBuffer3[i] = Model(NULL,pr20,pr21,pr22,sft,i);
                    }
                for(i=limit;i>=0;i--){
                    double MA1 = ExtMapBuffer1[i+2];
                    double MA2 = ExtMapBuffer2[i+2];
                    if(ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]>ExtMapBuffer2[i+2]){
                       if(ExtMapBuffer1[i+1]>ExtMapBuffer2[i+1]){
                          if(MA1<=MA2){
                             ArrowUP(i, DodgerBlue);
                             Alert(Symbol(), " ", Period(), " BUY Alert ");
                             }
                          }
                       }
                    if(ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]<ExtMapBuffer2[i+2]){
                       if(ExtMapBuffer1[i+1]<ExtMapBuffer2[i+1]){
                          if(MA1>=MA2){
                             ArrowDW(i, Red);
                             Alert(Symbol(), " ", Period(), " SELL Alert ");
                             }
                          }
                       }
                    }
              //----
                 return(0);
                }
              //+------------------------------------------------------------------+
              double Model(string ss,int pr0,int pr1,int pr2,int mtd,int shift){
                 double a0 = iMA(ss,0,pr0,0,mtd,0,shift);
                 double a1 = iMA(ss,0,pr1,0,mtd,0,shift);
                 double a2 = iMA(ss,0,pr2,0,mtd,0,shift);
                 double res = (a0+a1+a2)/3;
                 return (res);
                 }
              void ArrowUP(int sfift, color col){
                       ObjectCreate("UP "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                       ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 241);
                       ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                       } 
              void ArrowDW(int sfift, color col){
                       ObjectCreate("DW "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                       ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 242);
                       ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                       }

              Комментарий

              • #8 Свернуть

                Сообщение от Newbie Посмотреть сообщение
                цыферку не ту поставил.. терь норм должно быть

                Код:
                //+------------------------------------------------------------------+
                //|                                                   AltAverage.mq4 |
                //+------------------------------------------------------------------+
                #property indicator_chart_window
                #property indicator_buffers 3
                #property indicator_color1 Maroon
                #property indicator_color2 MidnightBlue
                #property indicator_color3 Sienna
                //+------------------------------------------------------------------+
                //| Custom indicator initialization function                         |
                //+------------------------------------------------------------------+
                extern string o1 = "главная";
                extern int pr00 = 5;
                extern int pr01 = 5;
                extern int pr02 = 5;
                extern string o2 = "сигнальная";
                extern int pr10 = 20;
                extern int pr11 = 20;
                extern int pr12 = 20;
                extern string o3 = "фильтр";
                extern int pr20 = 50;
                extern int pr21 = 50;
                extern int pr22 = 50;
                extern string o4 = "метод (от 0 до 3)";
                extern int sft = 0;
                //--- buffers
                double ExtMapBuffer1[];
                double ExtMapBuffer2[];
                double ExtMapBuffer3[];
                //+------------------------------------------------------------------+
                //| Custom indicator initialization function                         |
                //+------------------------------------------------------------------+
                int init()
                  {
                //---- indicators
                   SetIndexStyle(0,DRAW_LINE);
                   SetIndexBuffer(0,ExtMapBuffer1);
                   SetIndexStyle(1,DRAW_LINE);
                   SetIndexBuffer(1,ExtMapBuffer2);
                   SetIndexStyle(2,DRAW_LINE);
                   SetIndexBuffer(2,ExtMapBuffer3);
                //----
                   return(0);
                  }
                //+------------------------------------------------------------------+
                //i| Custom indicator deinitialization function                       |
                //+------------------------------------------------------------------+
                int deinit()
                  {
                //----
                   ObjectsDeleteAll(0,OBJ_ARROW);
                //----
                   return(0);
                  }
                //+------------------------------------------------------------------+
                //| Custom indicator iteration function                              |
                //+------------------------------------------------------------------+
                int start()
                   {
                   int limit,i;
                   int counted_bars = IndicatorCounted();
                   if(counted_bars>0) counted_bars--;
                   limit = Bars - counted_bars;
                //----
                   for(i=limit;i>=0;i--){
                      ExtMapBuffer1[i] = Model(NULL,pr00,pr01,pr02,sft,i);
                      ExtMapBuffer2[i] = Model(NULL,pr10,pr11,pr12,sft,i);
                      ExtMapBuffer3[i] = Model(NULL,pr20,pr21,pr22,sft,i);
                      }
                  for(i=limit;i>=0;i--){
                      double MA1 = ExtMapBuffer1[i+2];
                      double MA2 = ExtMapBuffer2[i+2];
                      if(ExtMapBuffer3[i+2]>ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]>ExtMapBuffer2[i+2]){
                         if(ExtMapBuffer1[i+1]>ExtMapBuffer2[i+1]){
                            if(MA1<=MA2){
                               ArrowUP(i, DodgerBlue);
                               Alert(Symbol(), " ", Period(), " BUY Alert ");
                               }
                            }
                         }
                      if(ExtMapBuffer3[i+2]<ExtMapBuffer1[i+2] && ExtMapBuffer3[i+2]<ExtMapBuffer2[i+2]){
                         if(ExtMapBuffer1[i+1]<ExtMapBuffer2[i+1]){
                            if(MA1>=MA2){
                               ArrowDW(i, Red);
                               Alert(Symbol(), " ", Period(), " SELL Alert ");
                               }
                            }
                         }
                      }
                //----
                   return(0);
                  }
                //+------------------------------------------------------------------+
                double Model(string ss,int pr0,int pr1,int pr2,int mtd,int shift){
                   double a0 = iMA(ss,0,pr0,0,mtd,0,shift);
                   double a1 = iMA(ss,0,pr1,0,mtd,0,shift);
                   double a2 = iMA(ss,0,pr2,0,mtd,0,shift);
                   double res = (a0+a1+a2)/3;
                   return (res);
                   }
                void ArrowUP(int sfift, color col){
                         ObjectCreate("UP "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                         ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 241);
                         ObjectSet("UP "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                         } 
                void ArrowDW(int sfift, color col){
                         ObjectCreate("DW "+TimeToStr(Time[sfift]), OBJ_ARROW, 0, Time[sfift], Open[sfift]);
                         ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_ARROWCODE, 242);
                         ObjectSet("DW "+TimeToStr(Time[sfift]), OBJPROP_COLOR, col);
                         }
                Толи я чего-то не то делаю, хотя как вобщем опять пищит попусту.

                Комментарий

                • #9 Свернуть

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

                  Комментарий

                  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
                  • #10 Свернуть

                    Сообщение от Newbie Посмотреть сообщение
                    в коде все по-математике.. кинул на минутный график, тож нормально.. можт он орет на "сигнальной" свече, пока она не закроется?..
                    никогда не пользуюсь этой функцией, передал сигнал в советник и забыл..
                    Может и так, поищу еще. Спасибо что помогли

                    Комментарий

                    X