Скачать MetaTrader 5

Как объединить два индикатора?

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
.
24
.  
Есть необходимость в объединении двух индикаторов RSI (с периодом 240) и индикатора на основе Линейной регрессии. Коды и того и другого есть, а как их объединить ума не приложу.
Rashid Umarov
Админ
12700
Rashid Umarov  
Я вот тоже не представляю , как их объединить :)
Андрей
1082
Андрей  
А я не могу представить - что значит "объединить" :)
.
24
.  
у меня задача сделать эксперта который использовал бы данные из RSI и Линии регресии. Получилось создать нужный мне индикатор в MetaStock
вот формула:

p1:=Input("Period LR",1,1000,120);

p2:=Input("Period RSI",1,1000,120);

Up:=If( LinearReg(C,p1)>Ref(LinearReg(C,p1),-1),

LinearReg(C,p1)-Ref(LinearReg(C,p1),-1),0);

Dn:=If( LinearReg(C,p1)<Ref(LinearReg(C,p1),-1),

Ref(LinearReg(C,p1),-1)-LinearReg(C,p1),0);

U:=Sum(Up,p2); D:=Sum(Dn,p2);

RLR:=Mov(100*U/(U+D),p1,S);
RLR;
Sceptic Philozoff
Модератор
17841
Sceptic Philozoff  
sennalex писал (а):
у меня задача сделать эксперта который использовал бы данные из RSI и Линии регресии.
Дык нужно ли реально объединять индикаторы, чтобы получить объединенный, - или проблема просто в вызове их из Вашего эксперта? И вообще - поясните, пожалуйста, что такое в Вашем понимании "объединить".
.
24
.  
может быть я и не правельно выразился сказав, что их необходимо "объединить", необходимо создать индикатор изпользуя RSI и LR
Sceptic Philozoff
Модератор
17841
Sceptic Philozoff  
sennalex писал (а):
может быть я и не правельно выразился сказав, что их необходимо "объединить", необходимо создать индикатор изпользуя RSI и LR


Вы с терминологией, пожалуйста, определитесь, что Вам нужно - индикатор или советник. Это совсем разные вещи, которые делаются по разным технологиям. Я, честно говоря, уже запутался.

P.S. А вообще очень полезно было бы просмотреть Code Base. Там предостаточно примеров и советников, и индюков, использующих данные от разных индикаторов, в том числе и пользовательских. Прибыльные найти весьма нелегко, но дело здесь не в этом, а в том, чтобы понять принципы кодирования подобных вещей.
Андрей
1082
Андрей  
Обычно не "объединяют", а сравнивают показания - по принципу &&. Если оба индюка "сам по себе" показывают "делай", тогда делаю. А если указания не совпадают - отдыхаю. Может это имеется ввиду? Тогда ни о каком объединении нет и речи - проверяй на совпадение или несовпадение сигналов через if( ... && ...) и все :). Хоть в третьем индюке (я в глобалисте использую сбор сигналов глобальными - Rosh научил, спасибо), хоть в советнике.

Если в индюке - то это оказалось несложно. Например весь код для сбора сигналов вверх/вниз с Акселераторов (не стандартных, поэтому не через функции прямого доступа к значениям) работающих на 5-ти разных ТФ:

int start()
{
double m5,m15,m30,m60,m240;
      if(GlobalVariableCheck(Symbol()+"_M5_ACs")==true)
         m5=GlobalVariableGet(Symbol()+"_M5_ACs");
      if(GlobalVariableCheck(Symbol()+"_M15_ACs")==true)
         m15=GlobalVariableGet(Symbol()+"_M15_ACs");
      if(GlobalVariableCheck(Symbol()+"_M30_ACs")==true)
         m30=GlobalVariableGet(Symbol()+"_M30_ACs");
      if(GlobalVariableCheck(Symbol()+"_M60_ACs")==true)
         m60=GlobalVariableGet(Symbol()+"_M60_ACs");
      if(GlobalVariableCheck(Symbol()+"_M240_ACs")==true)
         m240=GlobalVariableGet(Symbol()+"_M240_ACs");
      if(m5>0) m5=m5+0.05;
      if(m5<0) m5=m5-0.05;
      if(m15>0) m15=m15+0.1;
      if(m15<0) m15=m15-0.1;
      if(m30>0) m30=m30+0.15;
      if(m30<0) m30=m30-0.15;
      if(m60>0) m60=m60+0.2;
      if(m60<0) m60=m60-0.2;
      if(m240>0) m240=m240+0.25;
      if(m240<0) m240=m240-0.25;
      Buf_M5[0]=m5;
      Buf_M15[0]=m15;
      Buf_M30[0]=m30;
      Buf_H1[0]=m60;
      Buf_H4[0]=m240;
}
Сдвиг (+0,05 +0,10 .... ) только для того, чтоб графики не закрывали друг друга.
Запускаю на М5 и в результате в сепараторе получаю значения в одном графике всех пяти индюков. И любуюсь :)
Grigoriy Demyanenko
19
Grigoriy Demyanenko  
На график цены индикатор попадает при простом перетаскивании или двойном клике по индикатору.
Для соединения двух индикаторов в одном окне, необходимо вначале поставить один индикатор, затем перетащить мышкой второй индикатор на первый.
moskitman
4027
moskitman  
И вот спустя шесть лет индикаторы встретились... )) На даты смотрите на всякий случай.
Boris
3942
Boris  
moskitman:
И вот спустя шесть лет индикаторы встретились... )) На даты смотрите на всякий случай.

И уже не все живы, к сожалению!..
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий