Подскажите пожалуйста! Конструктор советников!

 
Какой конструктор советников подходит для того, чтоб делать алерты в советника и индикаторах?
 
Dmitry Britan:
Какой конструктор советников подходит для того, чтоб делать алерты в советника и индикаторах?

Конструктор "Прямые руки" + Справка MQL5.

 
Dmitry Britan:
Какой конструктор советников подходит для того, чтоб делать алерты в советника и индикаторах?

Похожая сегодняшняя ветка в англ части - вот - https://www.mql5.com/en/forum/300548 

В ветке два ответа:

  • мой со ссылками на статьи и линк на поиск в Маркете (там есть кое-что),

  • и следующий ответ (наверное более правильный, чем мой) - 

Форум по торговле, автоматизированным торговым системам и тестированию торговых стратегий

Может ли кто-нибудь порекомендовать мне работающего конструктора советников?

Marco vd Heijden , 2019.01.22 13:46

Может ли кто-нибудь порекомендовать мне работающего конструктора советников?

Да ... НЕТ!


Сколько вы хотите их перепробовать, прежде чем поймете, что ни один из них не работает?


 
Sergey Golubev:

Похожая сегодняшняя ветка в англ части - вот - https://www.mql5.com/en/forum/300548 

В ветке два ответа:

  • мой со ссылками на статьи и линк на поиск в Маркете (там есть кое-что),

  • и следующий ответ (наверное более правильный, чем мой) - 


Работающих далеко не один десяток, кстати. И с каждым месяцем появляются новые. Проблема в том, что у них крайне ограниченный набор встроенных индикаторов, поэтому если кто совсем не дружит с программированием, ничего толкового с конструктором не сделает. 

 
Sergey Vradiy:

Работающих далеко не один десяток, кстати. И с каждым месяцем появляются новые. Проблема в том, что у них крайне ограниченный набор встроенных индикаторов, поэтому если кто совсем не дружит с программированием, ничего толкового с конструктором не сделает. 


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

Я вот проверяю кастомные индикаторы с маркета - пока не нашел достойный.

 
Dmitry Britan:
Какой конструктор советников подходит для того, чтоб делать алерты в советника и индикаторах?


Алерт в индикаторе можно сделать за 5 минут. есть готовые коды.

Проще некуда! делал лет 7 назад статью. 

Следуйте подсказкам:

В первую очередь Вам необходимо выяснить, какие индикаторные буферы дают тот или иной сигнал, какова цель создания алерта, Каковы условия определения сигнала на индикаторе. 
Важно: В индикаторах могут показываться только внешние буферы, определенные вначале кода переменной: 
#property indicator_buffers 1
Но также в индикаторе могут быть скрытые буферы, которые задаются в функции init() и объявляются переменной:
IndicatorBuffers(7);
   Нам нужны только первые буферы. Если например у Вас стоит 1 внешний буфер, то смотрим на переменную: 
SetIndexBuffer(0,SarBuffer);
0 - это первый буфер
1 - это второй буфер .........
 
   Эти буферы, или их название , можно получить наведя на графике на определенную линию индикатора
Value1 - ,Это первый буфер Или 0 в системе исчисления в коде SetIndexBuffer(0,SarBuffer);
Название данного нужного нам буфера SarBuffer, далее мы и будем его использовать

 
Далее уже дело техники = определить как будет поступать сигнал, 
например если это пересечение 0 линии сверху (снизу) вниз(вверх) то будет выглядеть так:
SarBuffer[shift+1]>=0 && SarBuffer[shift]<0
 
Если это пересечение индикатором текущей цены или бара, пробой бара индикатором и так далее:
SarBuffer[shift+1]>=Close[shift] && SarBuffer[shift]<Close[shift]
 
Если Это пересечение особых уровней индикаторы например стохастика:
SarBuffer[shift+1]<=75 && SarBuffer[shift]>75
SarBuffer[shift+1]>=25 && SarBuffer[shift]<25
 
Если в Вашем индикаторе уже существуют стрелки, то возможен и такой вид сигнала:
DnTrend[1]!=EMPTY_VALUE && DnTrend[1]!=0&& UpTrend[2]!=EMPTY_VALUE

ШАГ 1

В начало эксперта перед функцией start() (OnCalculate) вставьте следующий код:
  extern bool AlerT=true;  // Выдавать алерт на экран          
  extern bool Mail=true;   // Посылать сообщение         
  extern bool Push=true;   // Посылать ПУШ на телефон
  extern bool Arrow=true;  // Ставить стрелки на сигналах
  extern int shift=1;      // На каком баре считать сигнал 0 - на текущем 1 - на закрытом
  int timetolastError;              // Внутренняя переменная
  string nameInd;

void SetArrow(int cd, color cl,
              string nm="", datetime t1=0, double p1=0, int sz=3) {
  if (nm=="") nm=DoubleToStr(Time[0], 0);
  if (t1<=0) t1=Time[0];
  if (p1<=0) p1=Bid;
  nameInd=WindowExpertName( );
int wind=WindowFind(nameInd);
wind=0;
  if (ObjectFind(nm)<0) ObjectCreate(nm, OBJ_ARROW, wind, 0,0);
  ObjectSet(nm, OBJPROP_TIME1    , t1);
  ObjectSet(nm, OBJPROP_PRICE1   , p1);
  ObjectSet(nm, OBJPROP_ARROWCODE, cd);
  ObjectSet(nm, OBJPROP_COLOR    , cl);
  ObjectSet(nm, OBJPROP_WIDTH    , sz);
}
void Expforex_AlertArrow(string text="",int arrowdir=0,bool history=false,int i=0)
  {
   nameInd=WindowExpertName();
   int wind=WindowFind(nameInd);
   if(wind==-1)wind=0;
     if(!history)
     {
      if(AlerT) Alert(text);
      if(Arrow) if(arrowdir==1) SetArrow(241,Blue,nameInd+DoubleToStr(Time[shift],0),Time[shift],Low[shift]);
      if(Arrow) if(arrowdir==2) SetArrow(242,Red,nameInd+DoubleToStr(Time[shift],0),Time[shift],High[shift]);
      if(!IsTesting())if(Mail) SendMail(text,text);
      if(!IsTesting())if(Push) SendNotification(text);
     }
   if(history)
     {
      if(Arrow) if(arrowdir==1) SetArrow(241,Blue,nameInd+DoubleToStr(Time[shift+i],0),Time[shift+i],Low[shift+i]);
      if(Arrow) if(arrowdir==2) SetArrow(242,Red,nameInd+DoubleToStr(Time[shift+i],0),Time[shift+i],High[shift+i]);
     }
  }
void OnDeinit(const int reason)
  {
   for(int i=ObjectsTotal();i>=0;i--)
     {
      if(StringFind(ObjectName(i),nameInd)!=-1)
         ObjectDelete(ObjectName(i));
     }
  }

ШАГ 2

 Перед закрытием функции start()(OnCalculate) внутри функции перед    
   return(rates_total);
 
  }
 

вставьте следующий код:

nameInd=WindowExpertName( );
          if(timetolastError!=Time[0] && SarBuffer[shift+1]<=75 && SarBuffer[shift]>75)
               {
                 Expforex_AlertArrow(Symbol()+" "+Period()+nameInd+" UP",1);
                    timetolastError=Time[0];           
               }

           if(timetolastError!=Time[0] && SarBuffer[shift+1]>=25 && SarBuffer[shift]<25)
               {
                 Expforex_AlertArrow(Symbol()+" "+Period()+nameInd+" DN",2);
                    timetolastError=Time[0];           
               }



ШАГ 3

Данный код будет служить нашим сигналом, Естественно вам необходимо заменить некоторый код на свой.

Сигналом для алерта служит следующий код:

 
Если это пересечение 0 линии сверху (снизу) вниз(вверх) то будет выглядеть так:
SarBuffer[shift+1]>=0 && SarBuffer[shift]<0
 
Если это пересечение индикатором текущей цены или бара, пробой бара индикатором и так далее:
SarBuffer[shift+1]>=Close[shift] && SarBuffer[shift]<Close[shift]
 
Если Это пересечение особых уровней индикаторы например стохастика:
Buffer[shift+1]<=75 && Buffer[shift]>75
Buffer[shift+1]>=25 && Buffer[shift]<25
 
Vladislav Andruschenko:


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

Я вот проверяю кастомные индикаторы с маркета - пока не нашел достойный.

Да все они строятся по ценам, соответственно и сам индикатор не нужен, нужна только формула построения

Мне вон дня 3 назад сбросили очень интересную формулу, вручную на графике пробовали в режиме видеочата, так входов с положительным результатом около 95%, но с плавающими стопами. Пока нет времени это перекласть на автомат, но формула очень привлекательная.
 
Vitaly Muzichenko:

Да все они строятся по ценам, соответственно и сам индикатор не нужен, нужна только формула построения

в точку. Но индикаторы с маркета скрывают свой алгоритм. 

и проверить индикатор на прибыльность можно только если протестировать его на советнике, который будет открывать по этим сигналам.  


Один из знаменитых индикаторов в маркете оказался рисующей игрушкой. 

И понял я это только сегодня. А по виду был красив с 90% прибыльных сигналов. Но секрет был раскрыт тогда, когда я решил его автомитизировать. 

 
Vitaly Muzichenko:

Да все они строятся по ценам, соответственно и сам индикатор не нужен, нужна только формула построения

Мне вон дня 3 назад сбросили очень интересную формулу, вручную на графике пробовали в режиме видеочата, так входов с положительным результатом около 95%, но с плавающими стопами. Пока нет времени это перекласть на автомат, но формула очень привлекательная.

Дело 5 минут - повесить сигналы на автомат и запустить тест

 
Vladislav Andruschenko:

Дело 5 минут - повесить сигналы на автомат и запустить тест

Нужно продумать алгоритм плавающего стопа, в бот такое сложно воплотить, у него нет глаз и мышления)

 
Vitaly Muzichenko:

Нужно продумать алгоритм плавающего стопа, в бот такое сложно воплотить, у него нет глаз и мышления)


Главное сигнал, а стопы можно подобрать.