Идеальный фильтр - страница 8

 
hrenfx:
Лучше сделать все же без тупого спреда, тогда множество идиотских нюансов обойдете сразу. Если же говорить про подвох, то без исходника это нереально.

Ок, постараюсь с плавающим сделать, ну тоесть отдельно с бид аск рядами.

Исходник могу выложить, но предупреждаю он наверняка не оптимален и коряв(( Собственно изначально идею я побырому набросал в совсем другом пакете, а уже когда она оказалась чем то потенциально интересным попытался как смог на мт5 переписать, так что не глумитесь плиз…

В настройках индикатора есть VIZ_buf это «что смотреть» переключалка для визуализации масивов из которых последовательно формируется логика, это для того чтобы быстро понять на картинке и проконтролировать глюки если какойто масив вдруг по какой то идиотской причине вроде выхода за пределы массива, не будет работать.

Файлы:
va_sum.mq5  6 kb
vaMACl.mq5  4 kb
 

Желательно, конечно, пояснить логику такого расчета четырех "производных" EMA, которые потом суммируются:

vel = array[bar]-array[bar-period_div];
acc = array[bar]-2*array[bar-period_div]+(array[bar-period_div*2]+array[bar-period_div/2])/2;
aaa = array[bar]-3*array[bar-period_div]+3*(array[bar-period_div*2]+array[bar-period_div/2])/2-(array[bar-period_div*3]+array[bar-period_div/3])/2;

outBuffer[bar]=array[bar]+vel+acc+aaa/3;

По логике, например, для второй производной должно быть так:

acc = array[bar]-2*array[bar-period_div]+array[bar-period_div*2];

А вообще, конечно, периоды в EMA вносят полную путаницу, т.к. в EMA никаких периодов нет на самом деле. Возьмите для трех производных цены три входных параметра: экспоненциальные коэффициенты (0 - 1):

Price = (Bid + Ask) / 2; // в FXOPEN есть *_Avg -символы.

EMA1[n] = EMA1[n - 1] * Koef1 + Price * (1 - Koef1);
EMA2[n] = EMA2[n - 1] * Koef2 + EMA1[n] * (1 - Koef2);
EMA3[n] = EMA3[n - 1] * Koef3 + EMA2[n] * (1 - Koef3);  
 
hrenfx:

Желательно, конечно, пояснить логику такого расчета четырех "производных" EMA, которые потом суммируются:

vel = array[bar]-array[bar-period_div];
acc = array[bar]-2*array[bar-period_div]+(array[bar-period_div*2]+array[bar-period_div/2])/2;
aaa = array[bar]-3*array[bar-period_div]+3*(array[bar-period_div*2]+array[bar-period_div/2])/2-(array[bar-period_div*3]+array[bar-period_div/3])/2;

outBuffer[bar]=array[bar]+vel+acc+aaa/3;

Изначально это были относительно «чистые «производные» вроде:

vel = array[bar]-array[bar-period_div];
acc = array[bar]-2*array[bar-period_div]+array[bar-period_div*2];
aaa = array[bar]-3*array[bar-period_div]+3*array[bar-period_div*2]-array[bar-period_div*3];

но по счастливой невнимательности я ошибся вместо умножить поделил типа:

vel = array[bar]-array[bar-period_div];
acc = array[bar]-2*array[bar-period_div]+array[bar-period_div/2];
aaa = array[bar]-3*array[bar-period_div]+3*array[bar-period_div/2]-array[bar-period_div/3];

прикол в том что это уже как бы и не «производные» но эффект оказался лучше чем от более настоящих «производных», я даже и не заметил ошибки, в общем потом я усреднил оба варианта)))))))))))) Получилась истинная алхимия.

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

Хотя сам факт того что смещение за счет приращений увеличивает качество фильтрации говорит о многом…

А вообще, конечно, периоды в EMA вносят полную путаницу, т.к. в EMA никаких периодов нет на самом деле. Возьмите для трех производных цены три входных параметра: экспоненциальные коэффициенты:

Price = (Bid + Ask) / 2; // в FXOPEN есть *_Avg -символы.

EMA1[n] = EMA1[n - 1] * Koef1 + Price * (1 - Koef1);
EMA2[n] = EMA2[n - 1] * Koef2 + EMA1[n] * (1 - Koef2);
EMA3[n] = EMA3[n - 1] * Koef3 + EMA2[n] * (1 - Koef3);  

Спасибо, попробую.

Хочется для начала понять что ещё кроме раздвижек бид\аск и комисси учитывать и как именно это сделать количественно. Ведь нет ВР проскальзывания))) какое значение отнимать или на сколько сдвигать по времени чтоб статистически верно учесть этот эффект. Потому как разные дядьки разное говорят об этом, кто говорит что минута в среднем, кто секунда и тп. кому верить пока не знаю. Я понимаю что на демо или малодипозитном реале может оно и почти нескользит, но на не тренировочном депозите, какие задержки ожидать?

 

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

Резюмируя на пальцах: в случае с FXOPEN ECN можете считать, что ВР проскальзывания - нулевая константа, а реджектов просто нет. Т.е. учитывайте только единственную торговую издержку - комиссию.

 
hrenfx:

Ваша проверка фильтра основывается на "канальной" стратегии, т.е. реализовывается через лимитники, которые скользят исключительно в плюс, но при этом иногда еще и реджектятся.

Канальная сливает на флэте и стрижет тренд? И как такой тип стратегии лимитниками реализовать, если точка перегиба ZZ вычисляется на лету, когда разворачивается моментум и сразу нужно слать рыночный ордер? Вообще всё наоборот, это трендовая стратегия на рыночных ордерах. Как можно заранее узнать где перевернётся моментум, чтоб лимитник там поставить?

J.B:

Хочется для начала понять что ещё кроме раздвижек бид\аск и комисси учитывать и как именно это сделать количественно. Ведь нет ВР проскальзывания))) какое значение отнимать или на сколько сдвигать по времени чтоб статистически верно учесть этот эффект. Потому как разные дядьки разное говорят об этом, кто говорит что минута в среднем, кто секунда и тп. кому верить пока не знаю. Я понимаю что на демо или малодипозитном реале может оно и почти нескользит, но на не тренировочном депозите, какие задержки ожидать?

Вам(втору) как новичку, конечно удобнее маятся с индикаторами по началу, в принципе это неплохо, но это переходный этап, пока не научитесь обходиться без них. Я имею в виду что все эти фильтры типа JJMA и подобные использовать как основу для построения стратегии это изврат. Они только для наглядности нужны новичкам. Все проходят через это, главное не зациклиться, сама тема «идеальный фильтр» намекает на такую зацикленность. Это опасно, можно застрять в новичках на долго.

Точки разворота трендов любого порядка, вычисляются комбинацией паттерновых распознавателей, в принципе один фильтр+вычеслялка сигнала, логически можно свести к одному паттерну, но во первых нет в этом смысла, во вторых эти паттрены постоянно должны обновляться новыми данными, придётся делать десятки фильтров чтобы приблизиться к верной логике, что приведёт у путанице. Так что фильтруйте но помните что это всеголиш забава.

ЗЫ: Про «нулевое» проскальзывание и прочее придётся узнать самому на практике, нельзя про это узнать на форуме, это познается только через адекватный слив. Но если выделить главный фактор, то это на сколько хватит капитала выдержать длинные шпили и всякие «выбросы» которые у вас отфильтровываются сейчас, чтобы часто не закрываться лосем или Коляном, затем то что в реальной торговле парни с ДЦ так же как и вы примерно знают где люди будут ставить ордера и там раздвигает бид  аск, для них это такая же творческая работа как и у вас при создании ТС. Я не говорю что это непреодолимое препятствие, но нужно понимать что «грааль» это очень временное явление и уж точно не может быть построен на фильтре(ах), точнее это сложно и избыточно.

 

J.B:

Хочется для начала понять что ещё кроме раздвижек бид\аск и комисси учитывать и как именно это сделать количественно. Ведь нет ВР проскальзывания))) какое значение отнимать или на сколько сдвигать по времени чтоб статистически верно учесть этот эффект. Потому как разные дядьки разное говорят об этом, кто говорит что минута в среднем, кто секунда и тп. кому верить пока не знаю. Я понимаю что на демо или малодипозитном реале может оно и почти нескользит, но на не тренировочном депозите, какие задержки ожидать?

Вот Вам статистика по проскальзываниям на FXOpen - с реального счета, лот постоянный 0.3, число трэйдов по каждому инструменту около 20, в среднем, кроме EURAUD.


 
m.butya:

Канальная сливает на флэте и стрижет тренд?

Нет. "Канальная" ТС - могущая быть реализована через лимитники. Как правило, это переворотная ТС.

И как такой тип стратегии лимитниками реализовать, если точка перегиба ZZ вычисляется на лету, когда разворачивается моментум и сразу нужно слать рыночный ордер?

В данном случае точкой перегиба является вот такое условие:

// 0 - текущее состояние, 1 - предыдущее, 2 - предпредыдущее, ...
if ((Filter[0] < Filter[1]) && (Filter[1] > Filter[2]))
  Sell();
else if ((Filter[0] > Filter[1]) && (Filter[1] < Filter[2]))
  Buy();

Поскольку в каждый момент времени наи известен способ расчета функции Filter, а также ее предыдущие значения (в точках 1, 2 и т.д.), то ничто не мешает вычислить ближайшую цену от текущей, когда одно из приведенных выше условий будет выполняться . На уровне этой вычисленной цены и ставится лимитник. Т.е. все делается заранее, не дожидаясь наступления сигнала.

 

Далее на вопросы готов отвечать только здесь.

ЗЫ: Про «нулевое» проскальзывание и прочее придётся узнать самому на практике, нельзя про это узнать на форуме, это познается только через адекватный слив. Но если выделить главный фактор, то это на сколько хватит капитала выдержать длинные шпили и всякие «выбросы» которые у вас отфильтровываются сейчас, чтобы часто не закрываться лосем или Коляном, затем то что в реальной торговле парни с ДЦ так же как и вы примерно знают где люди будут ставить ордера и там раздвигает бид аск, для них это такая же творческая работа как и у вас при создании ТС. Я не говорю что это непреодолимое препятствие, но нужно понимать что «грааль» это очень временное явление и уж точно не может быть построен на фильтре(ах), точнее это сложно и избыточно.

На самом деле на форуме можно многое узнать, если спросить знающего человека. Используйте ECN/STP, и "парни с ДЦ" даже сниться не будут.
Арбитражеры - форум трейдеров • Вход
  • arbitrageurs.ru
Для входа на конференцию вы должны быть зарегистрированы. Регистрация занимает всего несколько минут, но предоставляет вам более широкие возможности. Администратором конференции могут быть установлены также дополнительные привилегии для...
 
hrenfx:

Нет. "Канальная" ТС - могущая быть реализована через лимитники. Как правило, это переворотная ТС.

Прошу прощения что вклиниваюсь, хотелось бы прояснить по поводу «канальной» стратегии и лимитных ордеров. Поправьте если я ошибаюсь:

«Канальная» стратегия это когда происходит осцилляция относительно некоторой условной «точки притяжения», аттрактора, которое может быть вычислено как МО ВР или подобным способом. СКО(или что то типа амплитуды осциляции) это граница канала, там выставляются лимитные ордера в обратную сторону с ТП у противоположной границы. Предполагается сохранение волатильности и соответственно «отскок» от границ.

«Трендовая» стратегия это когда не предполагается точки притяжения и цена движется в определённом направлении дискретными рывками, лимитные ордера в данном случае менее осмысленны, так как неизвестны предполагаемы точки консолидации(коррекции) где можно зафиксироваться и по новой пере открыться в том же направлении пока не произойдёт разворот тенденции.

Правильно ли я понимаю что на тренде лучше использовать рыночные ордера а на канале лимитные? Или на тренде так же следует использовать лимитные ордера основываясь на предположении что точки консолидации пропорциональны предыдущим «рывкам» и\или ширине канала волатильности? И ставить ордера на опережение?

Я немного запутался… Не может же изменяться тип стратегии в зависимости от типа ордеров, как я понимаю. Допустим если на тренде работать лимитниками, от этого же стратегия не станет «канальной»? Или я ошибаюсь?

Спасибо.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
lucky_teapot:

Прошу не обижаться, а отнестись с пониманием:

hrenfx:

Далее на вопросы готов отвечать только здесь.

 
hrenfx:

Нет. "Канальная" ТС - могущая быть реализована через лимитники.

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

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
Причина обращения: