В догонку - страница 2

 

В догонку к "бесшумному" Стохастику.

Несколько изменений:

1. Исправлена не то, чтобы ошибка... некоторая несуразность, что ли. Из-за особенностей расчета замедления (Slowing) при изменении этого параметра стохастика чувствительность "уплывала", и ее приходилось масштабировать вручную. Исправлено. В ф-ии просто введена строчка умножающая чувств. на замедление (см.в коде).

2. Добавлена (в ф-ии) проверка на достаточность баров для поиска экстремумов в массиве. Ничего страшного не было - просто в логе было предупреждение, но считал нормально. Сейчас не "ругается".

// стохастик с шумодавом
double Stoch(int Kperiod, int Slowing, int PriceFild, double sens, int i) {  
   if(i+Kperiod+Slowing>Bars) return(-1); // недостаточно баров - выход (2)
   // экстремумы цены в цикле замедления/сглаживания
   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];
     }
   // шумоподавление
   sens*=Slowing; // приведение чувствительности в соответствие с периодом замедления (1)
   double delta=max-min; // размах
   double diff=sens-delta; // разница между порогом чувств. и размахом
   if(diff>0) { // если разница >0 (размах меньше порога), то
      delta=sens; // размах = порогу,
      min-=diff/2; // новое значение минимума
     }
   // вычисление осциллятора
   if(delta==0) return(-1);
   else return(100*(c-min)/delta);
  }

3. Упоминал в каментах к записи, что можно сделать порог чувствительности функцией от ATR. Сделано. Добавлены соответствующие два поля:

Volatility - если больше 0, то период сглаживания для ATR; если задать отрицательные значения, то чувствительность будет привязана к StDev. Не люблю я дополнительные поля вводить.

xVolatility - множитель для Volatility.

Сверху вниз: (1) стохастик, где порогом выступает ATR(66) x 4; (2) порог задан жестко в 10 пп.; (3) чистый стохастик.


Файлы:
 
lna01 >>:

А вот если и правда "м.б. и не академический", я бы послушал

Так я скрывать и не собираюсь.))) Если, конечно, до чего додумаюсь в этом направлении.

Интересненько, интересненько. Хотя, признаюсь, некоторый изначальный скепсис у меня присутствует.

Кстати, настоящая формализация означает возможность проверки на истории, вы это делали?

Собственно, мои свиндроиды, использующие этот подход, торгуют. Так что...

Дело тут вот в чем. Выкладывать бота со стейтментом я, разумеется, не собираюсь. Мне интересно будет обсудить сам подход, а для этого, чтоб можно было делать анализ новоиспеченных рядов, надо будет сделать иннсрументы, которые бы хотя бы их слили в файл. Этого у меня на данный момент нет. Надо подготовиться.

 
lna01 писал(а) >>

Я для себя сформулировал нечто вроде теоремы: Для любого (ликвидного) рынка для любого зигзага средний проскок будет примерно равен 1/2. Доказать её вряд ли можно, а вот для опровержения было бы достаточно одного-единственного факта. Так что мой интерес и верно, скорее академический :) .

Это у Пастухова исследовано. Правда у него на основе ренко или каги, но и с ЗЗ тоже самое. А по сути все к Херсту сводится. Больше 0.5 торугем трендовые, меньше флетовые. Средняя температура по больнице на ликвидах 0.5. Иначе все просто было бы :) А так и нужен контекст, когда торгуем тренд, а когда флет.
 
Svinozavr >>:

Собственно, мои свиндроиды, использующие этот подход, торгуют. Так что...

Дело тут вот в чем. Выкладывать бота со стейтментом я, разумеется, не собираюсь. Мне интересно будет обсудить сам подход, а для этого, чтоб можно было делать анализ новоиспеченных рядов, надо будет сделать иннсрументы, которые бы хотя бы их слили в файл. Этого у меня на данный момент нет. Надо подготовиться.

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

В принципе вполне можно было говорить и на уровне идей, но хозяин - барин.

Avals >>:
Это у Пастухова исследовано. Правда у него на основе ренко или каги, но и с ЗЗ тоже самое. А по сути все к Херсту сводится. Больше 0.5 торугем трендовые, меньше флетовые. Средняя температура по больнице на ликвидах 0.5. Иначе все просто было бы :) А так и нужен контекст, когда торгуем тренд, а когда флет.


Да, я в курсе про Пастухова. Наколько я помню, он обосновал значение 1/2 в качестве водораздела между игрой на откат или на пробой для одного конкретного зигзага. "Теорема" же по сути эквивалентна утверждению о невозможности создания самодостаточного для торговли зигзага, то есть носит более общий характер. Впрочем, для перехода к этой более общей гипотезе требуется не столько гениальность, сколько пессимизм :). Тем не менее я полагаю полезным проверять каждый новый зигзаг по этому критерию :)



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

 

Подскажите пожалуйста что бы использовать индикатор в советнике как правильно прописать данные в iCustom?

ZZ=iCustom(Symbol(), 0, "ChanneliMACD_ATR", ..., ..., ..., 0, 0);

Спасибо.

 
skifodessa >>:

Подскажите пожалуйста что бы использовать индикатор в советнике как правильно прописать данные в iCustom?

ZZ=iCustom(Symbol(), 0, "ChanneliMACD_ATR", ..., ..., ..., 0, 0);

Спасибо.

iCustom
  (
   NULL,0,"_Channel@MACD_ATR", // на текущем инструменте и т-ф
   FastMA,SlowMA,SlowMAshift,Method, // параметры МАшек
   ATR,xATR,Sens, // параметры чувствительности
   ChannelMA,Border, // параметры канала
   ShowTrend,ShowChannel,ShowZigZag,ShowFibo, // параметры отображения
   n, // номер буфера
   i // сдвиг буфера
  );

Буферы (n).

0, 1 - пик, впадина ЗигЗага.

2, 3 - верхняя, нижняя границы сырого канала.

4, 5 - верхняя, нижняя границы сглаженного канала.

6 - трендовая линия.

===

Название индюка почему-то некорректно при прикреплении к посту сохраняется. У меня он изначально называется _Channel@MACD_ATR, но @ заменилась какой-то хренью. Так что будьте внимательней при указании имени в iCustom.

 

В догонку к "бесшумному" Стохастику.


Cсылка не работает

 
_my/ убери из ссылки, poruchik.
 
Странно. А что за _my/ такой? У меня ничего нет и открывает все. (Рыжая Лиса 3.0.6)
 

А... нет. Вру. Это из-за того, что я через "мои скрипты" ссылку копировал. Надо их открывать и из строки браузера брать. Буду знать.

===

Не, все равно с _my/. Короче, исправил ссылку вручную. (Странно все это, однако.)

Причина обращения: