Индикаторы: MasterSlave.mq4

 

MasterSlave.mq4:

Управляющий индикатор для адаптации инструментов ТА к «характеру» рынка (Адаптивные Системы).

Author: Петр

 

Скажите пожалуйста.

Где можно найти тот индикатор который показывает у вас уровни (Красный с зеленым) на чарте.

Точно видел в кодобазе, но найти не могу :( Он даже недавно появился.

Спасибо !!

 
fozi:

Скажите пожалуйста.

Где можно найти тот индикатор который показывает у вас уровни (Красный с зеленым) на чарте.

Точно видел в кодобазе, но найти не могу :( Он даже недавно появился.

Спасибо !!

??? Ну да - именно там, где вы и сказали, - в кодобазе. Я его выложил как пример использования индикаторов канала для построения тренда в каментах к ним. Ссылка на ту публикацию есть в этой. Елы-палы! Ну или зайдите на мой профиль - там есть ссылки.

))) (ухмыляясь) Да, я отдаю себе отчет, что людей больше интересуют готовые решения в виде "черных" для большинства "ящиков" советников или эффектные "раскраски заборов" и прочие украшательства и "полезности". Так что я не строю иллюзий по массовой востребованности своих аплоадов - я ведь выложил даже не конечный индикатор, а индикатор для построения индикаторов. Вот даже по трендовому индюку - чего проще - принцип отрисовки тренда по пробою канала дан, осталось потратить 5 мин и сделать из Channel@ трендовый индюк. Еще 5 мин и сделать его адаптивным. Но нет - не канает.

Я даже хотел выложить эти трендовые индюки (без адаптации) на пробое каналов отдельной публикацией, но потом посчитал это самопиаром - типа эксплуатирую уже опубликованую тему, и так все очевидно и расжевано. Возможно, ошибался. Но я, блин, в своем праве!))) Мне не интересно делать очевидные вещи и жевать один бубл гум всю жизнь.

===========

Вот написал, перечитал, и чего-то строчка из Ахматовой всплыла в башке : "Высокомерьем дух твой помрачен, // И оттого ты не познаешь света..." Это я так - в порядке самокритики...)))

 

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

Но мне просто понравился ваш индикатор и не чего больше.

 
fozi:

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

Но мне просто понравился ваш индикатор и не чего больше.

))) Все нормально. Просто давно хотел это высказать, а тут вы (как на грех) подставились. OEM не катит! Только ритейл и только в подарочной упаковке!

З.Ы. У моей одной знакомой присказка есть: Обидели! Все е...и - тебя не видели.

Это я про вотребованность и прочее... Бугага!!!)))

 

Прошу сразу в пятак не бить.

Свинозавр, я почитал описание к индикатору и ничего не понял. Пожалуйста, напишите для неинженеров, как нибудь попроще, очень хочется понять, интересная идея, чуйствуется.

Может и коментов побольше будет, а то народ качает, а непонимает (не факт,конечно, мое мнение).

 
Blaid73:

Прошу сразу в пятак не бить.

Свинозавр, я почитал описание к индикатору и ничего не понял. Пожалуйста, напишите для неинженеров, как нибудь попроще, очень хочется понять, интересная идея, чуйствуется.

Может и коментов побольше будет, а то народ качает, а непонимает (не факт,конечно, мое мнение).

Я чего, зверь какой? (Хотя да... - ник, аватар опять же)))

Ну смотрите. Вы пользуетесь в своей ТС каким-либо индюком. Пусть это будет м-м-м, так, RSI я уже упоминал, ладно - Стохастик. Просто выведите его на график и убедитесь, что на низкой волатильности он лажает - ловит колебания в пипсах. Это и понятно - он так устроен, что масштабирует в 0-100% колебания, попавшие за %K баров. Можно сделать зависмость между волатильностью и параметром %К стохастика. Т.е. чем ниже волатильность (чем меньше значение MasterSlave), тем больше %K. Можно также раздвигать его пороговые уровни ПереКупленности(ПК) и ПереПроданности(ПП). По умолчанию они 80/20. Давайте из на "мертвом" рынке увеличим до 99/1 - пусть отдыхает. Можно также регулировать его внутреннее замедление (параметр Slowing).

Как это все осуществить на практике? Нужно сделать индикатор, где в штатный стохастик подставлять управляемые MasterSlave параметры. Конструкцию я описал в публикации.

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

 

Прошу прощения за предыдущий комментарий, у меня браузер тупанул, и я не видел, что вы уже ответили (Коммент уже удалил).

Идея интересная, видел подобное в адаптивных скользящих средних. ИМХО, существует проблемка - в том КАК регулировать параметры индикаторов, подбирать коэффициенты. Не секрет, что очень многие индюки используют то самое пресловутое усреднение, которое подбирать надо с умом. И автоматизации, лично я, такую процедуру не доверю.

И просьба, можно увидеть формулы расчета? Поподробнее пожалуйста

 

Крутое название M-r Slave)))

 

Пример по использованию (см.пред.пост). Фрагмент кода цикла пересчета в start():

   for(int i=limit; i>=0; i--) {
      // управляющий сигнал
      double k=iCustom(NULL,0,"_MasterSlave",Source,SourcePeriod,Window,Sensitivity,Signal, 0,i); Master[i]=100*k;
      // Управляемые параметры Стохастика
      int Kperiod=KperiodFrom+k*(KperiodTo-KperiodFrom); K[i]=Kperiod; // %K стохастка
      int Slowing=SlowingFrom+k*(SlowingTo-SlowingFrom); Slow[i]=Slowing; // Slowing стохастика
      OS[i]=OverSoldFrom+k*(OverSoldTo-OverSoldFrom); OB[i]=100-OS[i]; // уровни ПП/ПК
      // Стохастик
      Stoch[i]=iStochastic(NULL,0,Kperiod,1,Slowing,0,0, 0,i);
     }

Все массивы здесь приписаны инд. буферам. Массивы Master[i].K[i],Slow[i] можно выкинуть - они несут чисто информативную функцию, чтобы вы в окне данных могли отследить чем и как регулируются параметры. Остальные необъявленные переменные (кроме limit, ясен пень) внешние. Как приаттачить код индюка здесь - без понятия. Выкладываю полностью в тексте камента:

#property indicator_separate_window // в подокне
#property indicator_buffers 6
#property indicator_color1 Blue // стохастик
#property indicator_color2 Magenta // управляющий сигнал
#property indicator_color3 Green // уровень перекупленности
#property indicator_color4 Red // уровень перепроданности
// Воходные параметры MasterSlave
extern int Source=1; // 0 - объем; 1 - ATR; 2 - ст.девиация цены; 3 - цена; 
extern int SourcePeriod=88; // период входного индикатора
extern int Window=111; // длина выборки нормирования
extern double Sensitivity=0; // чувствительность
extern int Signal=55; // сглаживание нормированного индикатора (сигнальная)
// Входные параметры стохастика
extern int KperiodFrom=22; // начальное значение %K
extern int KperiodTo=5; // конечное
extern int SlowingFrom=12; // начальное значение Slowing
extern int SlowingTo=3; // конечное
extern int OverSoldFrom=3; // начальное значение уровня перепроданности
extern int OverSoldTo=22; // конечное
// индикаторные буферы
double Stoch[]; // стохастик
double Master[]; // управляющий сигнал
double OB[]; // уровень перекупленности
double OS[]; // уровень перепроданности
double K[]; // %К стохастика
double Slow[]; // Slowing стохастика
bool first=1; // флаг первого запуска индикатора
int init() {
   SetIndexBuffer(0,Stoch); SetIndexStyle(0,DRAW_LINE); SetIndexLabel(0,"Stoch");
   SetIndexBuffer(1,Master); SetIndexStyle(1,DRAW_LINE); SetIndexLabel(1,"Master");
   SetIndexBuffer(2,OB); SetIndexStyle(2,DRAW_LINE,2); SetIndexLabel(2,"OB");
   SetIndexBuffer(3,OS); SetIndexStyle(3,DRAW_LINE,2); SetIndexLabel(3,"OS");
   SetIndexBuffer(4,K); SetIndexStyle(4,DRAW_NONE); SetIndexLabel(4,"%K");
   SetIndexBuffer(5,Slow); SetIndexStyle(5,DRAW_NONE); SetIndexLabel(5,"Slow");
   return(0);
  }
int start() {
   int ic=IndicatorCounted();
   if(!first && Bars-ic>2) ic=reinit(); // если есть пропущенные бары не на подключении (в работе)
   
   int limit=Bars-ic-1;
   for(int i=limit; i>=0; i--) {
      // управляющий сигнал
      double k=iCustom(NULL,0,"_MasterSlave",Source,SourcePeriod,Window,Sensitivity,Signal, 0,i); Master[i]=100*k;
      // Управляемые параметры Стохастика
      int Kperiod=KperiodFrom+k*(KperiodTo-KperiodFrom); K[i]=Kperiod; // %K стохастка
      int Slowing=SlowingFrom+k*(SlowingTo-SlowingFrom); Slow[i]=Slowing; // Slowing стохастика
      OS[i]=OverSoldFrom+k*(OverSoldTo-OverSoldFrom); OB[i]=100-OS[i]; // уровни ПП/ПК
      // Стохастик
      Stoch[i]=iStochastic(NULL,0,Kperiod,1,Slowing,0,0, 0,i);
     }
   first=0; // сброс флага первого подключения
   return(0);
  }
//+------------------------------------------------------------------+
  
int reinit() { // дополнительная инициализация
   ArrayInitialize(Stoch,0.0); 
   ArrayInitialize(Master,0.0); 
   ArrayInitialize(OB,0.0); 
   ArrayInitialize(OS,0.0); 
   ArrayInitialize(K,0.0); 
   ArrayInitialize(Slow,0.0); 
   
   return(0);
  }

Сам ХозяинРаб красной линией для наглядности также выведен в окне (умножен на 100, чтобы попасть в масштаб Стохастика). Диапазаны параметров взяты мной "с потолка", как и параметры Мастера - для демонстрации сути сгодяться. А там уж сами экпериментируйте.

Надеюсь, я исчерпывающе ответил?

 
sayfuji:

Крутое название M-r Slave)))

Master(хозяин) Slave(раб). Название всплыло из цифровой схемотехники - в триггере входные сигналы так обзывались. Хотя... может это мое увлечение садо-мазо сыграло роль - вот подсознание и выдало. Так или иначе, суть индюка оно отражает.

Бугагага!!!)))