Как написать робастного эксперта - страница 8

 
Valmars:

Увы, как правило, они не оправдывают ожидания в реальном времени. Или сигнализируют о трэнде, когда он уже подходит к концу, или молчат, когда цена уже улетела.

Ну конечно самое лучшее и надежное плясать от самой цены. Только нужно тогда создать какую-то опору, или сетку. Наример внутри того-же ПрайсЧеннал сделать полосы уровней, 4-8-12 полос, как нотные линейки, и считать смещения цены от полосы к полосе. Или медленную среднюю окружить несколькими уровнями вниз и несколькими наверх. Вообщем нужна какая-то относительная система координат. Расчет смещения и силовые векторы друг относительно друга трудно сделать логически, но это будет безинерционная система. Все будет зависеть от качаства логики. Это будет напоминать цифровую систему, в отличии от всевозможных аналоговых фильтров, обладающих инерцией.

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

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

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

 

В подарок граалеискателям. Несколько лет назад начал использовать следующую схему определения тренда и флэта:

 

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

 
Lizar:

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

Не совсем понятен спрособ построения баров. FlatBars - вроде чередуются один за другим то Open сверху, то снизу, и имеют одинаковую высоту?  А RangeBar? К тому же средние кажется строятся по Close или как? По Close как-то некорректно, поскольку цена закрытия на текущем баре неопределена еще окончательно. А если построить как более корректно, по Open, так на рисунке тогда будет сдвиг на один бар и с данного колебания почти ничего не возьмешь, будет очень маленькая разница. Хотя смещение от верха до низа в целом ок. 40 больших пунктов. Может и можно тогда что-то снять. Или там фича какая-то на Range барах?
 
ANG3110:
Не совсем понятен спрособ построения баров. FlatBars - вроде чередуются один за другим то Open сверху, то снизу, и имеют одинаковую высоту?  А RangeBar? К тому же средние кажется строятся по Close или как? По Close как-то некорректно, поскольку цена закрытия на текущем баре неопределена еще окончательно.
У  FlatBars цена закрытия равна цене открытия предыдущего бара, размер тела зависит от последнего  RangeBar.  У  RangeBar разница High-Low=constant - задается пользователем.  
 
ANG3110:
 И на каком таймфрейме? А то если на маленьком, там и спред еще нужно учитывать. Или там фича какая-то на Range барах?
Таймфрейм не используется. Подробности про RangeBar поищите на форуме и в Code Base четверки.
 
Lizar:
У  FlatBars цена закрытия равна цене открытия предыдущего бара, размер тела зависит от последнего  RangeBar.  У  RangeBar разница High-Low=constant - задается пользователем.  

А, понятно. Вы знете, я в свое время тоже пробовал подобные построения. Не точно такие же, но тоже пытался отрихтовать по высоте и помочь средним поровнее идти и более однозначно пересекаться. Потом пришел к выводу, что достаточно использовать саму более гладкую среднюю на основе индикатора Т3, - это 6 EMA друг от друга возвращенные обратно на место первой методом устранения лага. А позже изобрел свою среднюю из 4-х EMA, которая по гладкости была аналогична T3, но даже чуть быстрее на какие-то доли. Но к сожалению все-равно при постоянно меняющихся амплитудах и длительностях ценовых волн, использовать средние с постоянным периодом бесполезно. Где-то совпадают, а где-то то раннее срабатывание, то позднее. Вообщем система получается не универсальная и с низсковатым профит фактором, если тестируешь за длительный период.

Про RangeBar - посмотрю на досуге, возможно у них другой принцип, и тогда то, что я уже написал к этому не относится.  

 

Могу предложить такой вариант определения тренда. На больших таймфреймах (например, рабочий Н1, а трендовый D1) используем в качестве индикатора тренда осциллятор силы (точнее ускорения). Например, AC или  OSMA. Особеннстью таких осцилляторов является измерения не скорости изменения цены, а темпов изменения самой скорости (то есть 2-я произвадная цены). Ну а это позволяет серьёзно уменьшить запаздывание, а большой таймфрейм одновременно и фильтрует шумы на малом таймфрейме.

Теперь по поводу фильтрации. Вещь обоюдоострая: с одной стороны убираем шумы, с другой резко уменьшаем количество сделок (в том числе и самых прибыльных). Мне лично больше всех подходит ADX.

По поводу стопов. В автоматической торговли они обязательны! Ну нельзя же на деньгах запустить советник совсем без тормозов. А то что некоторые говорят, что работают без стопов, так это лукавство. Если рынок пошёл против вас, то вы рано или поздно всё равно закроете позицию - вот это и будет ваш стоп (ну или MarginCall) . Если же вы закрываете каждую позицию индивидуально, то есть следите во все глаза за каждым советником дённо и ночно, то это уже не автоматическая торговля.  

Документация по MQL5: Торговые функции / HistoryDealsTotal
Документация по MQL5: Торговые функции / HistoryDealsTotal
  • www.mql5.com
Торговые функции / HistoryDealsTotal - Документация по MQL5
 

Есть еще простой метод определения тренда. Берутся несколько средних с геометрическим шагом по периоду, типа 21,42,84,168. Если они все расходятся - это тренд. Если хоть одна пересекает во внутрь, а другие во-вне, то это флет.

На основе этого можно попробовать сделать и более тонкий определитель степени тренда или флета. Но конечно некоторая инерция все-равно будет и при резских скачках все-равно влетишь. 

 
Что такое прибыльный?
 
... по Вашему мнению... Я свое высказал несколько страниц назад.