Индикаторы форекс Обсуждение, поиск и тестирование индикаторов для MT4.

Ответить
12.11.2015, 13:20
Аватар для Рюня
Рюня Рюня на форуме Почётный гражданин
Регистрация: 15.04.2010 / Сообщений: 69
Поблагодарили 311 раз(а) / Репутация: 312
Добрый день. Помогите поставить алерт на индикатор пожалуйста.
Уже делали такие. Есть во вложениях:Вложения - Forex Forum - Независимый форекс форум для трейдеров
13.11.2015, 14:35
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,775
Поблагодарили 9,203 раз(а) / Репутация: 9208
Просили звук к индюку Triggerlines_m1_alert:
15.11.2015, 10:35
Аватар для kadet
kadet kadet вне форума Новичок форума
Регистрация: 26.11.2010 / Сообщений: 109
Поблагодарили 16 раз(а) / Репутация: 17
Уважаемый mobidik просьба установить алерт в индикатор, правда он у меня только в ех.4, в mql.4 не могу найти его нигде, возможно ли это?

Спасибо, нашел уже во вложениях со звуком.

Последний раз редактировалось kadet; 15.11.2015 в 10:39.
15.11.2015, 15:19
Аватар для ravi123
ravi123 ravi123 вне форума Активный участник
Регистрация: 15.07.2014 / Сообщений: 25
Поблагодарили 70 раз(а) / Репутация: 71
Уважаемый mobidik просьба установить алерт в индикатор, правда он у меня только в ех.4, в mql.4 не могу найти его нигде, возможно ли это?

Спасибо, нашел уже во вложениях со звуком.
привлекает.
15.11.2015, 17:42
Регистрация: 29.09.2011 / Адрес: Саратов / Сообщений: 642
Поблагодарили 2,190 раз(а) / Репутация: 2198
mobidik, приветствую! можно к Вам с просьбой добавить алерт при появлении точки... Заранее спасибо
Упавший духом гибнет раньше срока... (Омар Хайам)
15.11.2015, 18:15
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,775
Поблагодарили 9,203 раз(а) / Репутация: 9208
mobidik, приветствую! можно к Вам с просьбой добавить алерт при появлении точки... Заранее спасибо
То, что они запаздывают, надеюсь, Вы в курсе.
15.11.2015, 18:44
Регистрация: 29.09.2011 / Адрес: Саратов / Сообщений: 642
Поблагодарили 2,190 раз(а) / Репутация: 2198
В курсе) спасибо
Упавший духом гибнет раньше срока... (Омар Хайам)
15.11.2015, 21:07
Аватар для dimarrik2106
dimarrik2106 dimarrik2106 вне форума Интересующийся
Регистрация: 17.10.2015 / Сообщений: 3
Поблагодарили 0 раз(а) / Репутация: 1
Здравствуйте ,Мобидик. А можете приделать звук к обычному боленжеру или может у вас какой-то интересный есть. Да так чтоб когда был пробой линий отклонений (верхней и нижней)
15.11.2015, 23:25
Регистрация: 09.08.2012 / Адрес: Ua_Khm / Сообщений: 1,775
Поблагодарили 9,203 раз(а) / Репутация: 9208
Сообщение от: dimarrik2106
Здравствуйте ,Мобидик. А можете приделать звук к обычному боленжеру или может у вас какой-то интересный есть. Да так чтоб когда был пробой линий отклонений (верхней и нижней)
Поиск рулит, наверняка есть и не один такой индюк даже в этой ветке.
17.11.2015, 15:11
Аватар для ilkinn
ilkinn ilkinn вне форума Новичок форума
Регистрация: 21.05.2012 / Адрес: Нижний Новгород / Сообщений: 21
Поблагодарили 16 раз(а) / Репутация: 17
Здравствуйте mobidik. Не могли бы вы приделать alert ? Очень надо



Казахский Удав.mq4
18.11.2015, 05:39
Аватар для samson55
samson55 samson55 вне форума Активный участник
Регистрация: 22.05.2010 / Сообщений: 196
Поблагодарили 127 раз(а) / Репутация: 128
Уважаемый, Мобидик, выручите ещё раз. Вот индикатор (прилагаю). Если есть такая возможность, приделайте ему голос при пересечении верхней и нижней границы канала. Выручите, кудесник вы наш
19.11.2015, 09:42
Аватар для samson55
samson55 samson55 вне форума Активный участник
Регистрация: 22.05.2010 / Сообщений: 196
Поблагодарили 127 раз(а) / Репутация: 128
Ещё одна просьба. Есть неплохой индикатор (осторожно рисует) и хоть в нем прописан аллерт, но он молчит собака. Исправьте это недоразумение, пожалуйста
19.11.2015, 13:58
Аватар для Вячеслав2015
Вячеслав2015 Вячеслав2015 вне форума Интересующийся
Регистрация: 27.10.2015 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 1
Здравствуйте.
Можете добавить звук в алерт? Спасибо.

Скрытый текст

Код HTML:
#property copyright "Copyright © 2013, Lucifer"
#property link      "Hell_Underground"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

double G_ibuf_76[];
double G_ibuf_80[];
extern int FasterMovingAverage = 5;
extern int SlowerMovingAverage = 200;
extern int RSIPeriod = 12;
extern int MagicFilterPeriod = 14;
extern int BollingerbandsPeriod = 20;
extern int BollingerbandsShift = 0;
extern double BollingerbandsDeviation = 1.6;
extern int BullsPowerPeriod = 50;
extern int BearsPowerPeriod = 50;
extern bool Alerts = TRUE;
int Gi_unused_128 = 0;
bool Gi_132 = FALSE;
bool Gi_136 = FALSE;
bool Gi_140 = FALSE;
bool Gi_144 = FALSE;
bool Gi_148 = FALSE;
bool Gi_152 = FALSE;
bool Gi_156 = FALSE;
bool Gi_160 = FALSE;
bool Gi_164 = FALSE;
bool Gi_168 = FALSE;
int Gi_172 = 0;
bool Gi_176 = FALSE;
bool Gi_180 = FALSE;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, 221);
   SetIndexBuffer(0, G_ibuf_76);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, 222);
   SetIndexBuffer(1, G_ibuf_80);
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int Li_8;
   double ima_12;
   double ima_20;
   double ima_28;
   double ima_36;
   double irsi_44;
   double irsi_52;
   double ibullspower_60;
   double ibullspower_68;
   double ibearspower_76;
   double ibearspower_84;
   double Ld_92;
   double Ld_100;
   double Ld_108;
   double Ld_116;
   double Ld_124;
   double Ld_132;
   double Ld_140;
   double ibands_152;
   double ibands_160;
   double ibands_168;
   double ibands_176;
   int Li_148 = IndicatorCounted();
   if (Li_148 < 0) return (-1);
   if (Li_148 > 0) Li_148--;
   int Li_0 = Bars - Li_148;
   for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) {
      Li_8 = Li_4;
      Ld_132 = 0;
      Ld_140 = 0;
      for (Li_8 = Li_4; Li_8 <= Li_4 + 10; Li_8++) Ld_140 += MathAbs(High[Li_8] - Low[Li_8]);
      Ld_132 = Ld_140 / 10.0;
      ima_12 = iMA(NULL, 0, FasterMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4);
      ima_28 = iMA(NULL, 0, FasterMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1);
      ima_20 = iMA(NULL, 0, SlowerMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4);
      ima_36 = iMA(NULL, 0, SlowerMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1);
      irsi_44 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4);
      irsi_52 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4 + 1);
      ibullspower_60 = iBullsPower(NULL, 0, BullsPowerPeriod, PRICE_CLOSE, Li_4);
      ibullspower_68 = iBullsPower(NULL, 0, BullsPowerPeriod, PRICE_CLOSE, Li_4 + 1);
      ibearspower_76 = iBearsPower(NULL, 0, BearsPowerPeriod, PRICE_CLOSE, Li_4);
      ibearspower_84 = iBearsPower(NULL, 0, BearsPowerPeriod, PRICE_CLOSE, Li_4 + 1);
      ibands_152 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_UPPER, Li_4);
      ibands_160 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_LOWER, Li_4);
      ibands_168 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_UPPER, Li_4 + 1);
      ibands_176 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_LOWER, Li_4 + 1);
      Ld_92 = iHighest(NULL, 0, MODE_HIGH, MagicFilterPeriod, Li_4);
      Ld_100 = iHighest(NULL, 0, MODE_LOW, MagicFilterPeriod, Li_4);
      Ld_108 = 100 - 100.0 * ((Ld_92 - 0.0) / 10.0);
      Ld_116 = 100 - 100.0 * ((Ld_100 - 0.0) / 10.0);
      if (Ld_108 == 0.0) Ld_108 = 0.0000001;
      if (Ld_116 == 0.0) Ld_116 = 0.0000001;
      Ld_124 = Ld_108 - Ld_116;
      if (Ld_124 >= 0.0) {
         Gi_148 = TRUE;
         Gi_168 = FALSE;
      } else {
         if (Ld_124 < 0.0) {
            Gi_148 = FALSE;
            Gi_168 = TRUE;
         }
      }
      if (Close[Li_4] > ibands_152 && Close[Li_4 + 1] >= ibands_168) {
         Gi_144 = FALSE;
         Gi_164 = TRUE;
      }
      if (Close[Li_4] < ibands_160 && Close[Li_4 + 1] <= ibands_176) {
         Gi_144 = TRUE;
         Gi_164 = FALSE;
      }
      if (ibullspower_60 > 0.0 && ibullspower_68 > ibullspower_60) {
         Gi_140 = FALSE;
         Gi_160 = TRUE;
      }
      if (ibearspower_76 < 0.0 && ibearspower_84 < ibearspower_76) {
         Gi_140 = TRUE;
         Gi_160 = FALSE;
      }
      if (irsi_44 > 50.0 && irsi_52 < 50.0) {
         Gi_136 = TRUE;
         Gi_156 = FALSE;
      }
      if (irsi_44 < 50.0 && irsi_52 > 50.0) {
         Gi_136 = FALSE;
         Gi_156 = TRUE;
      }
      if (ima_12 > ima_20 && ima_28 < ima_36) {
         Gi_132 = TRUE;
         Gi_152 = FALSE;
      }
      if (ima_12 < ima_20 && ima_28 > ima_36) {
         Gi_132 = FALSE;
         Gi_152 = TRUE;
      }
      if (Gi_132 == TRUE && Gi_136 == TRUE && Gi_144 == TRUE && Gi_140 == TRUE && Gi_148 == TRUE && Gi_172 != 1) {
         G_ibuf_76[Li_4] = Low[Li_4] - 1.3 * Ld_132;
         if (Li_4 <= 2 && Alerts && (!Gi_176)) {
            Alert(Symbol(), " ", Period(), "   BUY");
            Gi_176 = TRUE;
            Gi_180 = FALSE;
         }
         Gi_172 = 1;
      } else {
         if (Gi_152 == TRUE && Gi_156 == TRUE && Gi_164 == TRUE && Gi_160 == TRUE && Gi_168 == FALSE && Gi_172 != 2) {
            G_ibuf_80[Li_4] = High[Li_4] + 1.3 * Ld_132;
            if (Li_4 <= 2 && Alerts && (!Gi_180)) {
               Alert(Symbol(), " ", Period(), "   SELL");
               Gi_180 = TRUE;
               Gi_176 = FALSE;
            }
            Gi_172 = 2;
         }
      }
   }
   return (0);
}
[свернуть]

Последний раз редактировалось NSerega; 19.11.2015 в 20:53.
21.11.2015, 13:55
Аватар для jenzo
jenzo jenzo на форуме Местный знаток
Регистрация: 10.07.2014 / Сообщений: 529
Поблагодарили 570 раз(а) / Репутация: 571
Сообщение от: Вячеслав2015
Здравствуйте.
Можете добавить звук в алерт? Спасибо.

Скрытый текст

Код HTML:
#property copyright "Copyright © 2013, Lucifer"
#property link      "Hell_Underground"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red

double G_ibuf_76[];
double G_ibuf_80[];
extern int FasterMovingAverage = 5;
extern int SlowerMovingAverage = 200;
extern int RSIPeriod = 12;
extern int MagicFilterPeriod = 14;
extern int BollingerbandsPeriod = 20;
extern int BollingerbandsShift = 0;
extern double BollingerbandsDeviation = 1.6;
extern int BullsPowerPeriod = 50;
extern int BearsPowerPeriod = 50;
extern bool Alerts = TRUE;
int Gi_unused_128 = 0;
bool Gi_132 = FALSE;
bool Gi_136 = FALSE;
bool Gi_140 = FALSE;
bool Gi_144 = FALSE;
bool Gi_148 = FALSE;
bool Gi_152 = FALSE;
bool Gi_156 = FALSE;
bool Gi_160 = FALSE;
bool Gi_164 = FALSE;
bool Gi_168 = FALSE;
int Gi_172 = 0;
bool Gi_176 = FALSE;
bool Gi_180 = FALSE;

// E37F0136AA3FFAF149B351F6A4C948E9
int init() {
   SetIndexStyle(0, DRAW_ARROW, EMPTY);
   SetIndexArrow(0, 221);
   SetIndexBuffer(0, G_ibuf_76);
   SetIndexStyle(1, DRAW_ARROW, EMPTY);
   SetIndexArrow(1, 222);
   SetIndexBuffer(1, G_ibuf_80);
   return (0);
}

// 52D46093050F38C27267BCE42543EF60
int deinit() {
   return (0);
}

// EA2B2676C28C0DB26D39331A336C6B92
int start() {
   int Li_8;
   double ima_12;
   double ima_20;
   double ima_28;
   double ima_36;
   double irsi_44;
   double irsi_52;
   double ibullspower_60;
   double ibullspower_68;
   double ibearspower_76;
   double ibearspower_84;
   double Ld_92;
   double Ld_100;
   double Ld_108;
   double Ld_116;
   double Ld_124;
   double Ld_132;
   double Ld_140;
   double ibands_152;
   double ibands_160;
   double ibands_168;
   double ibands_176;
   int Li_148 = IndicatorCounted();
   if (Li_148 < 0) return (-1);
   if (Li_148 > 0) Li_148--;
   int Li_0 = Bars - Li_148;
   for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) {
      Li_8 = Li_4;
      Ld_132 = 0;
      Ld_140 = 0;
      for (Li_8 = Li_4; Li_8 <= Li_4 + 10; Li_8++) Ld_140 += MathAbs(High[Li_8] - Low[Li_8]);
      Ld_132 = Ld_140 / 10.0;
      ima_12 = iMA(NULL, 0, FasterMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4);
      ima_28 = iMA(NULL, 0, FasterMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1);
      ima_20 = iMA(NULL, 0, SlowerMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4);
      ima_36 = iMA(NULL, 0, SlowerMovingAverage, 0, MODE_EMA, PRICE_CLOSE, Li_4 + 1);
      irsi_44 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4);
      irsi_52 = iRSI(NULL, 0, RSIPeriod, PRICE_CLOSE, Li_4 + 1);
      ibullspower_60 = iBullsPower(NULL, 0, BullsPowerPeriod, PRICE_CLOSE, Li_4);
      ibullspower_68 = iBullsPower(NULL, 0, BullsPowerPeriod, PRICE_CLOSE, Li_4 + 1);
      ibearspower_76 = iBearsPower(NULL, 0, BearsPowerPeriod, PRICE_CLOSE, Li_4);
      ibearspower_84 = iBearsPower(NULL, 0, BearsPowerPeriod, PRICE_CLOSE, Li_4 + 1);
      ibands_152 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_UPPER, Li_4);
      ibands_160 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_LOWER, Li_4);
      ibands_168 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_UPPER, Li_4 + 1);
      ibands_176 = iBands(NULL, 0, BollingerbandsPeriod, BollingerbandsDeviation, BollingerbandsShift, PRICE_CLOSE, MODE_LOWER, Li_4 + 1);
      Ld_92 = iHighest(NULL, 0, MODE_HIGH, MagicFilterPeriod, Li_4);
      Ld_100 = iHighest(NULL, 0, MODE_LOW, MagicFilterPeriod, Li_4);
      Ld_108 = 100 - 100.0 * ((Ld_92 - 0.0) / 10.0);
      Ld_116 = 100 - 100.0 * ((Ld_100 - 0.0) / 10.0);
      if (Ld_108 == 0.0) Ld_108 = 0.0000001;
      if (Ld_116 == 0.0) Ld_116 = 0.0000001;
      Ld_124 = Ld_108 - Ld_116;
      if (Ld_124 >= 0.0) {
         Gi_148 = TRUE;
         Gi_168 = FALSE;
      } else {
         if (Ld_124 < 0.0) {
            Gi_148 = FALSE;
            Gi_168 = TRUE;
         }
      }
      if (Close[Li_4] > ibands_152 && Close[Li_4 + 1] >= ibands_168) {
         Gi_144 = FALSE;
         Gi_164 = TRUE;
      }
      if (Close[Li_4] < ibands_160 && Close[Li_4 + 1] <= ibands_176) {
         Gi_144 = TRUE;
         Gi_164 = FALSE;
      }
      if (ibullspower_60 > 0.0 && ibullspower_68 > ibullspower_60) {
         Gi_140 = FALSE;
         Gi_160 = TRUE;
      }
      if (ibearspower_76 < 0.0 && ibearspower_84 < ibearspower_76) {
         Gi_140 = TRUE;
         Gi_160 = FALSE;
      }
      if (irsi_44 > 50.0 && irsi_52 < 50.0) {
         Gi_136 = TRUE;
         Gi_156 = FALSE;
      }
      if (irsi_44 < 50.0 && irsi_52 > 50.0) {
         Gi_136 = FALSE;
         Gi_156 = TRUE;
      }
      if (ima_12 > ima_20 && ima_28 < ima_36) {
         Gi_132 = TRUE;
         Gi_152 = FALSE;
      }
      if (ima_12 < ima_20 && ima_28 > ima_36) {
         Gi_132 = FALSE;
         Gi_152 = TRUE;
      }
      if (Gi_132 == TRUE && Gi_136 == TRUE && Gi_144 == TRUE && Gi_140 == TRUE && Gi_148 == TRUE && Gi_172 != 1) {
         G_ibuf_76[Li_4] = Low[Li_4] - 1.3 * Ld_132;
         if (Li_4 <= 2 && Alerts && (!Gi_176)) {
            Alert(Symbol(), " ", Period(), "   BUY");
            Gi_176 = TRUE;
            Gi_180 = FALSE;
         }
         Gi_172 = 1;
      } else {
         if (Gi_152 == TRUE && Gi_156 == TRUE && Gi_164 == TRUE && Gi_160 == TRUE && Gi_168 == FALSE && Gi_172 != 2) {
            G_ibuf_80[Li_4] = High[Li_4] + 1.3 * Ld_132;
            if (Li_4 <= 2 && Alerts && (!Gi_180)) {
               Alert(Symbol(), " ", Period(), "   SELL");
               Gi_180 = TRUE;
               Gi_176 = FALSE;
            }
            Gi_172 = 2;
         }
      }
   }
   return (0);
}
[свернуть]
Название скажи индикатора, точно помню у меня был такой с алертом
22.11.2015, 10:27
Аватар для Вячеслав2015
Вячеслав2015 Вячеслав2015 вне форума Интересующийся
Регистрация: 27.10.2015 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 1
Спасибо. уже поставил. Добавил 4 строчки и вуаля
extern bool UseSound=TRUE;
extern string SoundFile="Alert.wav";
bool SoundBuy = TRUE;
bool SoundSell = TRUE
индикатор называется - Super Arrow Indicator
23.11.2015, 05:30
Аватар для Tureniy
Tureniy Tureniy вне форума Активный участник
Регистрация: 22.09.2015 / Адрес: Екатеринбург / Сообщений: 23
Поблагодарили 43 раз(а) / Репутация: 44
Здравствуйте. Помогите добавить звук в индикатор, при выходе за верхнюю или нижнюю границы канала. Во вложениях искал, там только смена цвета центральной линии, нужное не нашел.
23.11.2015, 16:07
Аватар для benkair
benkair benkair вне форума Новичок форума
Регистрация: 18.09.2015 / Сообщений: 5
Поблагодарили 25 раз(а) / Репутация: 26
Здравствуйте mobidik!

Прикрепите пожалуйста алерт с окошком.
23.11.2015, 18:19
Аватар для jenzo
jenzo jenzo на форуме Местный знаток
Регистрация: 10.07.2014 / Сообщений: 529
Поблагодарили 570 раз(а) / Репутация: 571
Сообщение от: Вячеслав2015
Спасибо. уже поставил. Добавил 4 строчки и вуаля
extern bool UseSound=TRUE;
extern string SoundFile="Alert.wav";
bool SoundBuy = TRUE;
bool SoundSell = TRUE
индикатор называется - Super Arrow Indicator
Ага есть у меня держи
23.11.2015, 22:22
Аватар для Вячеслав2015
Вячеслав2015 Вячеслав2015 вне форума Интересующийся
Регистрация: 27.10.2015 / Сообщений: 4
Поблагодарили 0 раз(а) / Репутация: 1
спасибо
а к такому можно звук прикрутить? спасибо.

Скрытый текст

//+------------------------------------------------------------------+
//| SHI_SilverTrendSig.mq4 |
//| Copyright © 2003, VIAC.RU, OlegVS, GOODMAN, 2005 Shurka |
//| shforex@narod.ru |
//| |
//| |
//| Пишу программы на заказ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2005, Shurka"
#property link "http://shforex.narod.ru"

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
#define SH_BUY 1
#define SH_SELL -1

//---- Входные параметры
extern int AllBars=0;//Для скольки баров считать. 0 - для всех.
extern int Otstup=30;//Отступ.
extern double Per=9;//Период.
int SH,NB,i,UD;
double R,SHMax,SHMin;
double BufD[];
double BufU[];

//+------------------------------------------------------------------+
//| Функция инициализации |
//+------------------------------------------------------------------+
int init()
{
//В NB записываем количество баров для которых считаем индикатор
if (Bars<AllBars+Per || AllBars==0) NB=Bars-Per; else NB=AllBars;
IndicatorBuffers(2);
IndicatorShortName("SHI_SilverTrendSig");
SetIndexStyle(0,DRAW_ARROW,0,1);
SetIndexStyle(1,DRAW_ARROW,0,1);
SetIndexArrow(0,159);
SetIndexArrow(1,159);
SetIndexBuffer(0,BufU);
SetIndexBuffer(1,BufD);
SetIndexDrawBegin(0,Bars-NB);//Индикатор будетотображаться только для NB баров
SetIndexDrawBegin(1,Bars-NB);
ArrayInitialize(BufD,0.0);//Забьём оба буфера ноликами. Иначе будет мусор при смене таймфрейма.
ArrayInitialize(BufU,0.0);
return(0);
}
//+------------------------------------------------------------------+
//| Функция деинициализации |
//+------------------------------------------------------------------+
int deinit()
{
return(0);
}
//+------------------------------------------------------------------+
//| Собсна индикатор |
//+------------------------------------------------------------------+
int start()
{
int CB=IndicatorCounted();
/* Тут вот та самая оптимизационная фишка. В язык введена функция, которая возвращает количество
посчитанных баров, причём очень хитро. При первом вызове индикатора это 0, всё понятно, ещё ничего
не считалось, а затем выдаёт количество обсчитанных баров минус один. Т.е. если всего баров 100,
то функция вернёт 99. Я ввёл такой код, выше у меня определялась NB - кол-во баров подлежащих
обсчёту. В принципе этот параметр можно и выкинуть, однако для тех кто в танке (I80286) можно
и оставить. Так вот, здесь, при первом вызове NB остаётся прежней, а при последующих уменьшается
до последнего бара, т.е. 1 или 2, ну или сколько там осталось посчитать*/
if(CB<0) return(-1); else if(NB>Bars-CB) NB=Bars-CB;
for (SH=1;SH<NB;SH++)//Прочёсываем график от 1 до NB
{
for (R=0,i=SH;i<SH+10;i++) {R+=(10+SH-i)*(High[i]-Low[i]);} R/=55;

SHMax = High[Highest(NULL,0,MODE_HIGH,Per,SH)];
SHMin = Low[Lowest(NULL,0,MODE_LOW,Per,SH)];
if (Close[SH]<SHMin+(SHMax-SHMin)*Otstup/100 && UD!=SH_SELL) { BufU[SH]=Low[SH]-R*0.5; UD=SH_SELL; }
if (Close[SH]>SHMax-(SHMax-SHMin)*Otstup/100 && UD!=SH_BUY) { BufD[SH]=High[SH]+R*0.5; UD=SH_BUY; }
}
return(0);
}
[свернуть]

Последний раз редактировалось NSerega; 24.11.2015 в 14:16.
24.11.2015, 06:44
Аватар для Rey
Rey Rey на форуме Активный участник
Регистрация: 24.02.2012 / Сообщений: 89
Поблагодарили 52 раз(а) / Репутация: 53

По умолчанию Алерт

Мobidik, добрый день. Озвучььте, пожалуйста индикатор с указанием пары и ТФ.
Ответить


Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Выкл.
Pingbacks are Выкл.
Refbacks are Выкл.



Текущее время: 05:30. Часовой пояс GMT.


Перевод: zCarot
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
SEO by vBSEO