Индикаторы: ForsesMomentum

 

ForsesMomentum:

Пытаемся определить Тренд по Нескольким скользящим средним.

Author: qwer643

 

Очень интересно! Хорошо бы добавить в код shortname, чтобы можно было использовать в эксперте! Тогда можно будет судить о практическом применении и для автотрейдинга! Ставлю +10 авансом! Спасибо за свежую струю в проверенных и не всегда верных МАшках!

Добавил shortname "ForsesMom" и периоды с bool вывел в extern, всё работает, буду пробовать с экспертом. Надеюсь, что-нибудь вырисуется!

 

Спасибо за коментарий, не поясните что такое shortname? В справке вроде этой... http://docs.mql4.com/ru/customind/IndicatorShortName не слишком понятно зачем оно надо? Интуитивно я бы предположил, что для того чтобы вызывать индикатор строкой вроде... iForsesMom(some), но интуиция это одно...

Еще хотелось бы знать что вы думаете о сглаживании результата? На светлом рисунке выше видна пара моментов, когда финальная индикация выходит за пределы зоны Флета совсем чуть-чуть...

Я обдумывал такой вариант...

extern int smoothDegree = 1;

//---- внутри функции start() при изменении буферов

double result = ExtMapBuffer1[i] + ExtMapBuffer2[i] + ExtMapBuffer3[i];

if(result > ExtMapBuffer1[ i+1]){

result = result - 0.0001 * smoothDegree;

}

if(result < ExtMapBuffer1[ i+1]){

result = result + 0.0001 * smoothDegree;

}

ExtMapBuffer4[i] = result;

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

 

Смотрите, это сейчас ваш init() у меня:

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
double bar0 = 0;
double bar1 = 0;
int init()
  {
   string short_name;
//---- indicators
   SetIndexStyle(0,DRAW_HISTOGRAM);
   SetIndexBuffer(0,ExtMapBuffer1);
   
   SetIndexStyle(1,DRAW_HISTOGRAM);
   SetIndexBuffer(1,ExtMapBuffer2);
   
   SetIndexStyle(2,DRAW_HISTOGRAM);
   SetIndexBuffer(2,ExtMapBuffer3);
   
   SetIndexStyle(3,DRAW_LINE,EMPTY,2);
   SetIndexBuffer(3,ExtMapBuffer4);
//----
   short_name="ForsesMom("+Fast+","+Slow+","+Tren+")";
   IndicatorShortName(short_name);
   SetIndexLabel(3,short_name);
//----
   return(0);
  }                                    //И далее соответственно поменял.
Поигрался, годится только для глаз! Для эксперта не лучше, чем подогнанная МАшка! В любой момент подводёт! Но надо пытаться, искать! Сам процесс, уже хорошо! Может, когда-нибудь найдём тут "золотую середину"!
 

Спасибо )

Вообще не рассчитывал особенно, что можно будет на основе этого целый эксперт накрутить, я пару интересных Паттернов в свечах заметил, и весьма надежных, но против Тренда все равно не попрешь, так что может мне еще и повезет с комбинацией этих идей )))

 
Cheshir_643:

Спасибо за коментарий, не поясните что такое shortname? В справке вроде этой... http://docs.mql4.com/ru/customind/IndicatorShortName не слишком понятно зачем оно надо? Интуитивно я бы предположил, что для того чтобы вызывать индикатор строкой вроде... iForsesMom(some), но интуиция это одно...

Еще хотелось бы знать что вы думаете о сглаживании результата? На светлом рисунке выше видна пара моментов, когда финальная индикация выходит за пределы зоны Флета совсем чуть-чуть...

Я обдумывал такой вариант...

extern int smoothDegree = 1;

//---- внутри функции start() при изменении буферов

double result = ExtMapBuffer1[i] + ExtMapBuffer2[i] + ExtMapBuffer3[i];

if(result > ExtMapBuffer1[ i+1]){

result = result - 0.0001 * smoothDegree;

}

if(result < ExtMapBuffer1[ i+1]){

result = result + 0.0001 * smoothDegree;

}

ExtMapBuffer4[i] = result;

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


Такой способ давно заездили и выбросили как бесполезную вещь.
 
Автору "Спасибо"- отличная идея, пользуюсь сборкой таких линий очень давно. Только у меня их четыре. Самая первая с периодом 2 стоит по цене закрытия свечей (позволяет торговать на откатах совместно с ADX). 2-я п=8. 3-я п=26 4-я п=82. С вашего позволения изменю индюк под свои нужды. От меня +10.