А давайте поговорим о переменном (адаптивном) окне?
Системщикам известно, что любая простая система даже основанная на пересечении цены — SMA будет работоспособна на любом периоде и на любом таймфрейме, главное подобрать нужную длинну окна (период SMA).
Но так же известно, что чем больше длинна тестируемого отрезка от 2-х лет и более, тем сложнее подобрать нужную длинну окна, выходные параметры (доходность/риск) ухудшаются.
Предлагаю в этом топике обсудить и поделиться опытом в построении адаптивных параметров (выбор длинны окна в зависимости от рыночных условий).
От себя скажу, что тестируемые адаптивные скользящие типа: KAMA, VIDYA, DEMA, T3, MMA, MEF, HMA, JMA, FRAMA при тестировании мало чем отличаются друг от друга.
Интересные идеи буду публиковать апдейтом в этом же топике в процессе обсуждения.
Присоединяйтесь, давайте будем друг-другу полезны. Просьба «хранителей граалей» не зашумлять эфир бессмысленными — «щаз я так все и рассказал».
Не знаю как на счет скользящих средних, но я в своей студии реализовал «скользящие конверты боллинджера с 3 сигма уровнями» и фигею как точно цена ходит по ним, сейчас проблема понять от какого точно уровня произойдет отскок, то что она дойдет до одного из них — видно «невооруженным глазом»… p.s. это как идея к «адаптивным» алгоритмам.
Дмитрий Интрадей, то бишь я формирую итоговый болинджер по принципу SMA усредняя только теперь каждую точку уровнял конверта с шагом от 5 до 250 свечек. итоговый конверт вывожу в свой терминал
Если выпрямить MA с любым периодом, то график будет колебаться вокруг нее, как вокруг нуля. В связи с этим, мне не совсем понятна логика систем, подразумевающих входы при пересечении MA. Хотя они и работают на определенных промежутках, как сказал автор. Могу понять системы, в которых увеличивается весовой коэффициент входа при удалении от МА…
Да и что такое МА, если разобраться? Это тренд на более старшем таймрейме, но не фиксированном, типа 1м, 5м, 15м, и т.д., а дробном, в зависимости от периода. А пересечение ценой МА — как бы признак слома более старшего тренда, что для меня, например, не может являться сигналом входа, а может быть подтверждением чего-то…
CamarillaDaily, как альтернативный подход, попробуй посмотреть на МА в временном ряде, тоест не последовательно её строить, а относительно каждого дня)
например на минутке МА5 в 20:00 считается по ценам предыдущих 5 дней в 20:00)))
Мне Чечета идея нравится — строить МА не по набору последовательных баров, а по набору временных последовательных баров.
Например в 20:00 МА5 считается по значениям цены за 5 дней в 8мь вечера)
1) считаю SMA за три периода: например, SMA3(10,20,90) — формула на ATF трансака выглядит так: =(MovAvg(ind_sma,period1,pt_open)+MovAvg(ind_sma,period2,pt_open)+MovAvg(ind_sma,period3,pt_open))/3
[SMA(10,20,90)<>SMA(40=avg(10,20,90))]
2)считаю среднее от значения SMA и значения «X_point» за период — где «X_point» — точка на графике (например, цена OPEN в начале периода, либо LOW за предыдущий период, ну и так далее). как вариант ещё придаю разный вес SMA и X_point. в общем виде формула такая: SMA*sma_weight+X_POINT*(1-sma_weight)
если говорить о вычислении «переменного окна», то для этого я пользую волатильность (стандартное отклонение). вариантов тут всего два: 1) чем выше волатильность, тем меньше должен быть период; 2) чем выше волатильность, тем ниже должен быть период. выбор зависит от стратегии. если интрадэй, то лучше брать вариант №1.
формула для варианта №1 на ATF для трансака выглядит так:
g=StdDev(stddev_abs, stdev_period, pt_open);//вол-ть в абсолюте
zmin=open*(min_volatility/100);//мин.вол-ть в абсолюте
if (g<zmin) {g=zmin;}
sma_period=floor(stdev_period/(g/zmin))+1;//округление вниз
примечание: min_volatility (в %) нужна для того, чтобы градировать волатильность (т.е. по сути это шаг волатильности, как у фьюча ртс шаг цены 5 пунктов). недостаток формулы в том, что stdev_period получается больше, чем sma_period. вы можете придумать свои варианты, чтобы sma_period был больше…
забыл предупредить владельцев трансака: после вычисления sma_period уже нельзя пользоваться встроенной функцией MovAvg, потому что ATF начинает ругаццо — типа «изменился период в момент вычисления индикатора». юзайте такую конструкцию:
i=0;zz=0;while (i<period) {zz+=open[-i];i+=1;}
if (zz==0) {zz=open*period;}
line[0]=zz/period;
написав сейчас все эти посты, вдруг подумал, что можно сделать SMA3(x,y,z), которая адаптирует период каждой из суб-SMA по волатильности. попробовал. получилось довольно занятно.
Разбор эмитента: Сургутнефтегаз Сургутнефтегаз — одна из крупнейших российских компаний, занимающаяся добычей нефти и газа. Основанная в 1970-х годах, сегодня она остается популярной среди частных ин...
Редактор Боб,
Вот тут еще про дружественные страны: Зимбабве планирует при поддержке России создать собственную ракету-носитель и отправить своего астронавта на орбиту с собственного космодрома....
думаю в этом году вспомнят про них
например на минутке МА5 в 20:00 считается по ценам предыдущих 5 дней в 20:00)))
Например в 20:00 МА5 считается по значениям цены за 5 дней в 8мь вечера)
1) считаю SMA за три периода: например, SMA3(10,20,90) — формула на ATF трансака выглядит так: =(MovAvg(ind_sma,period1,pt_open)+MovAvg(ind_sma,period2,pt_open)+MovAvg(ind_sma,period3,pt_open))/3
[SMA(10,20,90)<>SMA(40=avg(10,20,90))]
2)считаю среднее от значения SMA и значения «X_point» за период — где «X_point» — точка на графике (например, цена OPEN в начале периода, либо LOW за предыдущий период, ну и так далее). как вариант ещё придаю разный вес SMA и X_point. в общем виде формула такая: SMA*sma_weight+X_POINT*(1-sma_weight)
формула для варианта №1 на ATF для трансака выглядит так:
g=StdDev(stddev_abs, stdev_period, pt_open);//вол-ть в абсолюте
zmin=open*(min_volatility/100);//мин.вол-ть в абсолюте
if (g<zmin) {g=zmin;}
sma_period=floor(stdev_period/(g/zmin))+1;//округление вниз
примечание: min_volatility (в %) нужна для того, чтобы градировать волатильность (т.е. по сути это шаг волатильности, как у фьюча ртс шаг цены 5 пунктов). недостаток формулы в том, что stdev_period получается больше, чем sma_period. вы можете придумать свои варианты, чтобы sma_period был больше…
i=0;zz=0;while (i<period) {zz+=open[-i];i+=1;}
if (zz==0) {zz=open*period;}
line[0]=zz/period;
http://www.bot4sale.ru/download-categories/2012-06-13-15-10-36/item/indikator-frama.html