alex30774

 
Уровень 20

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2146



РЕКОМЕНДУЮ



Стрелочный индикатор на основе другого стрелочного индикатора

Здравствуйте, Андрей.
Сделайте пожалуйста стрелочный индикатор на основе, вот этого стрелочного индикатора
zakaz.opentraders.ru/58635.html


Теперь постараюсь обьяснить, что нужно:
Индикатор должен выставлять стрелку на продажу, если текущая стелка выше трёх предыдущих(параметр можно фиксированный, но если вынесите в настройки то ещё лучше).Причём не важно как расположены три предыдущие стрелки: они могут идти впорядке возрастания, могут быть даже быть расположены всё ниже и ниже относительно предыдущей.Также между красными могут оказать зелёные стрелки.Главное что текущая выще предыдущих.
И так на каждом сигнале, если условие выполняется:


На покупку зеркально:
  • 0
  • Просмотров: 1882
  • 24 ноября 2021, 21:03
  • alex30774
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Скрипт для выгрузки ордеров в файл
Следующая запись в группе  
Советник на двух МА с регулирующим спредом
24 ноября 2021
25 ноября 2021

Брокер для ваших роботов, 15 лет на рынке

Комментарии (10)

+
+1
на 1-е
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 24 ноября 2021, 21:08
+
0
Спасибо, буду ждать.
avatar

  20  alex30774 Автор Сообщений: 748

  • 25 ноября 2021, 09:59
+
+1
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 29 ноября 2021, 21:01
+
0
Здравствуйте, Андрей спасибо за работу, но у меня почему то одна единственная стрелка(на покупку) за всю историю.
Настройки индикатора по умолчанию.
Вы наверное не тот индикатор загрузили.



Проверил на несколько символах везде один единственный сигнал.
Редактирован: 29 ноября 2021, 21:46
avatar

  20  alex30774 Автор Сообщений: 748

  • 29 ноября 2021, 21:42
+
+1
но у меня почему то одна единственная стрелка(на покупку) за всю историю


стрелок много:



Вы наверное не тот индикатор загрузили.


вот код в окне:


//+------------------------------------------------------------------+
//|                                                     RSICross.mq4 |
//|                                              Copyright 2021, AM2 |
//|                                      http://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2021, AM2"
#property link      "http://www.forexsystems.biz"
#property version   "1.00"
#property strict
#property indicator_chart_window

#property indicator_buffers 2

input int RSI=7;
input int Num=3;
input int Level=30;
input int Count=666;

double up[],dn[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexStyle(0,DRAW_ARROW,0,1,Aqua);
   SetIndexArrow(0,233);
   SetIndexBuffer(0,up);

   SetIndexStyle(1,DRAW_ARROW,0,1,Red);
   SetIndexArrow(1,234);
   SetIndexBuffer(1,dn);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
double PointPrice(int type,int k=0,int n=0)
  {
   int num=0;

   double pr=0;

   for(int i=k; i<Count; i++)
     {
      double rsi1=iRSI(NULL,0,RSI,0,i);
      double rsi2=iRSI(NULL,0,RSI,0,i+1);

      if(rsi1>Level && rsi2<Level && type==0)
         num++;

      if(rsi1<100-Level && rsi2>100-Level && type==1)
         num++;

      if(num==n)
        {
         pr=Close[i];
         break;
        }
     }

   return(pr);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   for(int i=0; i<Count; i++)
     {
      double rsi1=iRSI(NULL,0,RSI,0,i);
      double rsi2=iRSI(NULL,0,RSI,0,i+1);

      if(rsi1>Level && rsi2<Level && PointPrice(0,i,1)<PointPrice(0,i,2) && PointPrice(0,i,1)<PointPrice(0,i,Num))
        {
         up[i]=low[i];
        }
      if(rsi1<100-Level && rsi2>100-Level && PointPrice(1,i,1)>PointPrice(1,i,2) && PointPrice(1,i,1)>PointPrice(1,i,Num))
        {
         dn[i]=high[i];
        }
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+



avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 30 ноября 2021, 20:10
+
0
Всё равно немного не верно работает вот скриншоты:

и вот ещё


но уже намого лучше.

Андрей исправьте пожалуйста, те моменты которые указал на скриншотах.

А то что стрелок много не страшно: поставлю большие уровни 90 и 10 и будет мало
avatar

  20  alex30774 Автор Сообщений: 748

  • 30 ноября 2021, 20:50
+
0
я объяснил машине ваше задание так:

1. стрелка вверх: цена закрытия при пересечении уровня рси 30 снизу вверх для первой стрелки меньше цены предыдущей стрелки и меньше цены 3-й по счету от данной

2. стрелка вниз: цена закрытия при пересечении уровня рси 70 сверху вниз для первой стрелки больше цены предыдущей стрелки и больше цены 3-й по счету от данной

если у вас есть другой алгоритм я поправлю.
avatar

  35  AM2 Сообщений: 16266 - Андрей

  • 30 ноября 2021, 21:09
+
0
Вы обьяснили всё правильно машине(так и надо было), только вот не учли что индикатор RSICross ставит стрелки по ценам High и Low, а у вас в индикаторе RSI измеряется по ценам Close.(На это я только сейчас обратил внимание, когда прочитал ваше сообщение).Вот скриншот:



Вот ещё пример, тут уж точно неправильно поставил:


Редактирован: 1 декабря 2021, 11:07
avatar

  20  alex30774 Автор Сообщений: 748

  • 1 декабря 2021, 10:52
комментарий был удален 2021-12-01 11:18:22 alex30774

+
0
Разобрался по поводу нижнего скриншота: параметр «Count» нужно просто больше ставить и всёработает верно.Вот скриншот и тут уже нету этого косяка:



Спасибо большое, Андрей за вашу работу всё работает как нужно.
avatar

  20  alex30774 Автор Сообщений: 748

  • 1 декабря 2021, 11:23

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий