Logo

Вход

Войти с помощью соц. сетей
X
 
  • Фильтр
  • Время
  • Показать
Очистить всё
новые сообщения
ТОП СООБЩЕНИЙ
10.02.2015, 12:08
Лучший ответ
Выплачено: 36 RUB
16.02.2015, 14:17
Лучший ответ
Выплачено: 42 RUB
Сообщение от Chingis80 Посмотреть сообщение
Исправил.
Спасибо за индикатор, перестал трезвонить несколько раз при пересечении

Только почему-то стал поигрывать все алерты на истории при запуске терминала,
особенно заметно на если уменьшить период средних
19.02.2015, 19:09
Лучший ответ
Выплачено: 36 RUB
Попробуй добавить одну строку if(limit<10)
MQL код:

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);
}
if(limit<10)
for(i=limit;i>=0;i--){
double MA1 = ExtMapBuffer1[i+2];
double MA2 = ExtMapBuffer2[i+2];

И не забываем компилировать.
24.02.2015, 07:52
Лучший ответ
Выплачено: 42 RUB
Сообщение от Chingis80 Посмотреть сообщение
Попробуй добавить одну строку if(limit<10)
MQL код:

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);
}
if(limit<10)
for(i=limit;i>=0;i--){
double MA1 = ExtMapBuffer1[i+2];
double MA2 = ExtMapBuffer2[i+2];

И не забываем компилировать.
Ну вот теперь все пучком, остается икать в районе сигнала импульс по тренду и входить.
Нажмите на изображение для увеличения.

Название:	Безымянный.png
Просмотров:	1
Размер:	12.1 Кб
ID:	25633214
20.01.2015, 16:16
Лучший ответ
Выплачено: 42 RUB
23.01.2015, 20:06
Лучший ответ
Выплачено: 1362 RUB
У вас что-то напутано с i:

MQL код:
 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){

или нужно сменить условие цикла, это условие считает с конца:
MQL код:

for(i=limit;i>=0;i--)


попробуйте это, оно считает с начала:
MQL код:

for(i=0;i<=limit;i++)
  • #1 Свернуть

    Почему повторяется несколько раз АЛЕРТ на пересечении

    Может кто знает, почему при пересечении средних алерт выдается несколько раз зацикливаясь, хотя стрелка выводиться один раз, помогите разобраться
  • <a href="https://www.instaforex.org/ru/?x=ruforum">InstaForex</a>
  • #2 Свернуть

    У вас что-то напутано с i:

    MQL код:
     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){

    или нужно сменить условие цикла, это условие считает с конца:
    MQL код:

    for(i=limit;i>=0;i--)


    попробуйте это, оно считает с начала:
    MQL код:

    for(i=0;i<=limit;i++)

    Комментарий

    • #3 Свернуть

      Сообщение от pedashyuriy Посмотреть сообщение
      У вас что-то напутано с i:

      MQL код:
       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){

      или нужно сменить условие цикла, это условие считает с конца:
      MQL код:

      for(i=limit;i>=0;i--)


      попробуйте это, оно считает с начала:
      MQL код:

      for(i=0;i<=limit;i++)
      Дело в том что код не мой, так же помогли. Попробовал цикл переделать, как вы предложили, зависает, чего-то.

      Комментарий

      • #4 Свернуть

        Сообщение от Nikko24 Посмотреть сообщение
        Дело в том что код не мой, так же помогли. Попробовал цикл переделать, как вы предложили, зависает, чего-то
        Если вы уверены, что стрелка ставится один раз, а не перерисовывается несколько раз, как и алерт, включается несколько раз, то
        есть предположение, что алерт нужно перенести в функцию рисования стрелки. Таким образом можно проверить и рисование
        стрелки. Цикл тут не причём. Если не поможет, нужно искать другой вариант.

        Комментарий

        • #5 Свернуть

          Сообщение от cgon Посмотреть сообщение
          Если вы уверены, что стрелка ставится один раз, а не перерисовывается несколько раз, как и алерт, включается несколько раз, то
          есть предположение, что алерт нужно перенести в функцию рисования стрелки. Таким образом можно проверить и рисование
          стрелки. Цикл тут не причём. Если не поможет, нужно искать другой вариант.
          Переделал, не помогло - все тоже пиликает по движению цены в течении нескольких баров

          Вот чего получилось
          Последний раз редактировалось Семенков Николай; 29.01.2015, 13:45.

          Комментарий

          • #6 Свернуть

            Сообщение от Nikko24 Посмотреть сообщение
            Вот чего получилось
            Да, я тоже попробовал переделать и понаблюдал. Данное решение не помогает. Идёт постоянный повтор данного условия в течении
            двух баров. Если стрелки чередуются, одна вверх, затем другая вниз, то можно сделать переключатель, если они не повторяются,
            вверх, вверх и вниз, вниз.

            Комментарий

            • #7 Свернуть

              Сообщение от cgon Посмотреть сообщение
              Да, я тоже попробовал переделать и понаблюдал. Данное решение не помогает. Идёт постоянный повтор данного условия в течении
              двух баров. Если стрелки чередуются, одна вверх, затем другая вниз, то можно сделать переключатель, если они не повторяются,
              вверх, вверх и вниз, вниз.
              всякое бывает и вверх вверх и вниз вниз подряд, много раз.
              Суть алгоритма такова :
              Есть три MA 605, 233 и 55
              Алерт при пересечении МА 55 и МА 233 при условии, что они находятся под МА 605 и МА 55 пересекает 233 снизу вверх.
              Если МА 55 и 233 находятся над МА 605, то алерт при пересечении МА 55 и 233 сверху вниз.

              В алгоритме просто используются по три МА для для каждой.

              Комментарий

              • #8 Свернуть

                Функция start вызывается при каждом изменении цены (каждый тик).

                Комментарий

                • #9 Свернуть

                  Исправил.

                  Комментарий

                  • #10 Свернуть

                    Сообщение от Chingis80 Посмотреть сообщение
                    Исправил.
                    Спасибо за индикатор, перестал трезвонить несколько раз при пересечении

                    Только почему-то стал поигрывать все алерты на истории при запуске терминала,
                    особенно заметно на если уменьшить период средних

                    Комментарий

                    • #11 Свернуть

                      Попробуй добавить одну строку if(limit<10)
                      MQL код:

                      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);
                      }
                      if(limit<10)
                      for(i=limit;i>=0;i--){
                      double MA1 = ExtMapBuffer1[i+2];
                      double MA2 = ExtMapBuffer2[i+2];

                      И не забываем компилировать.

                      Комментарий

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

                        Сообщение от Chingis80 Посмотреть сообщение
                        Попробуй добавить одну строку if(limit<10)
                        MQL код:

                        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);
                        }
                        if(limit<10)
                        for(i=limit;i>=0;i--){
                        double MA1 = ExtMapBuffer1[i+2];
                        double MA2 = ExtMapBuffer2[i+2];

                        И не забываем компилировать.
                        Ну вот теперь все пучком, остается икать в районе сигнала импульс по тренду и входить.
                        Нажмите на изображение для увеличения.

Название:	Безымянный.png
Просмотров:	1
Размер:	12.1 Кб
ID:	25633214

                        Комментарий

                        working...
                        X