Смотри, как бесплатно скачать роботов
Ищи нас в Telegram!
Ставь лайки и следи за новостями
Интересный скрипт?
Поставь на него ссылку - пусть другие тоже оценят
Понравился скрипт?
Оцени его работу в терминале MetaTrader 5
Индикаторы

Stochastic with Noise Reduction - "Бесшумный" Стохастик. - индикатор для MetaTrader 4

Просмотров:
14503
Рейтинг:
(8)
Опубликован:
2009.10.19 12:25
Обновлен:
2014.04.21 14:54
\MQL4\Include\
Нужен робот или индикатор на основе этого кода? Закажите его на бирже фрилансеров Перейти на биржу

Замена стандартного Стохастика. Имеет те же параметры, что и стандартный, плюс параметр "чувствительности" - Sens в окне параметров.

Позволяет отсечь колебания ниже определенного порога, задаваемого в пунктах. Тем самым радикально сокращается кол-во ложных сигналов. Дело в том, что классический Стохастик (Лейна) позиционирует текущуе цену между максимумом и минимумом цены за нектр. кол-во баров, задаваемое параметром %K (Kperiod), и ему асболютно все равно, будут ли экстремумы отличаться на 1 пункт или на 100 - он все равно будет давать заходы значения в области ПК/ПП. Введение же некоего порога позволяет отсечь незначащие для ТС колебания.

На картинке (евробакс 1 мин) изображены в первом подокне - стандартный Стохастик, во втором - Стохастик с выставленным порогом чувствительности в 18 п.п.


Поля индикатора не отличаются от iStochastic, за искл. добавленного поля int Sens - чувствительность. Выходные буферы (mode) те же: 0 - сам стохастик, 1 - сигнальная.

double iCustom(string symbol, int timeframe, "_StochNR", int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int Sens, int mode, int shift); // StochNR добавлено поле Sens

double iStochastic(string symbol, int timeframe, int %Kperiod, int %Dperiod, 
int slowing, int method, int price_field, int mode, int shift) // стандартный стохастик

Для использования StochNR можно вызвать, как показано выше, но лучше, разумеется, внедрить код. Для этого достаточно добавить в ваш код ф-ю Stoch:

double Stoch(int Kperiod, int Slowing, int PriceFild, double sens, int i) {  
   // экстремумы цены
   double max,min,c;
   for(int j=i; j<i+Slowing; j++) {
      if(PriceFild==1) { // по Close
         max+=Close[ArrayMaximum(Close,Kperiod,j)];
         min+=Close[ArrayMinimum(Close,Kperiod,j)];
        }
      else { // по High/Low
         max+=High[ArrayMaximum(High,Kperiod,j)];
         min+=Low[ArrayMinimum(Low,Kperiod,j)];
        }
      c+=Close[j];
     }
   
   double delta=max-min;
   if(delta<sens) {
      sens/=2;
      max+=sens; min-=sens;
     }
   delta=max-min;
   if(delta==0) double s0=1;
   else s0=(c-min)/delta;

   return(100*s0);
  }

Понятно, что если понадобиться сигнальная, то вам потребуется дополнительная MA по его значению. Или получайте через iCustom с 1-го буфера, но это значительно медленнее.

Отображение имени в подокне сделано несколько более информативным, чем у стандартного - добавлена индикация типа цены расчета лок. экстремумов. Кроме того, если задана чувствительность больше 0, то ее значение в пп. отображается перед названием индикатора.




NettoTrading NettoTrading

Скрипт, позволяющий торговать на MetaTrader4, как на неттинговой платформе. Имеет некоторые преимущества перед MetaTrader5...

Обзор рынка Обзор рынка

Позволяет в одном экране видеть одновременно движение до 16 инструментов по 4 тайм-фреймам.

Индикатор открытых позиций Индикатор открытых позиций

Контейнер для вашего советника. Дополнительная функция отображает на экране в удобном виде информацию по всем открытым позициям отдельно и в суммме. Полезно когда ваш советник открывает много позиций одновременно.

RS_FRASMA RS_FRASMA

Fractally modified SMA after a Rescaled Range Analysis