PDA

View Full Version : Советник FXOpen.PriceAction+PinBar



MaxZ
07-19-2013, 06:49 AM
Здравствуйте.

Данный советник был заказан в теме (http://forum.fxopen.ru/showthread.php?91373-%D0%9E%D1%82%D0%B4%D0%B0%D0%BC-%D1%81%D0%BE%D0%B2%D0%B5%D1%82%D0%BD%D0%B8%D0%BA-%D0%B8%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80-%D0%B8%D0%BB%D0%B8-%D1%81%D0%BA%D1%80%D0%B8%D0%BF%D1%82-%D0%B7%D0%B0-%D0%B8%D0%B4%D0%B5%D1%8E&p=1450226&viewfull=1#post1450226).

Техническое задание (ТЗ) для данного советника было следующим:


Здравствуйте, идея советника навеяна вот этой темой (http://forum.fxopen.ru/showthread.php?89125-Price-Action-(%D0%BF%D0%BE%D0%B2%D0%B5%D0%B4%D0%B5%D0%BD%D0%B8%D0%B5-%D1%86%D0%B5%D0%BD%D1%8B)/page12). Так как форум, не разрабатывал подобные "контртрендовые" подходы, возможно он (советник) будет интересен пользователям форума как готовый продукт или как база для модернизации. Сразу уточню, что контр трендовость данного подхода, имеет ввиду вход в рынок в начале отката, против текущего (локального) направления. Наверное корректнее название противотрендовый подход.

Картинка:

26587

Идея:

1) Есть тренд, думаю что Вы (Максим) знаете наиболее объективный способ его определения.

2) Есть пин бар сформированный на вершине этого локального тренда противоположный по направлению в отношении тренда. Алгоритм идентификации это пин бара, можно взять из индикатора 26612. Но, данный идентификационный алгоритм должен отфильтроваться алгоритмом нашего индикатора FXOpen Extrime. Чтобы данный пин бар был подтвержден экстремумом по схеме 1Е1.

3) В случае выполнения описанных выше условий, мы входим в рынок против тренда, после окончания формирования пин бара.

4) Стоп выставляем, отталкиваясь от размера нашего тренда (конструкции), и выражаем данную настройку советника в виде процентного (%) или целого (пункты) выражения.

5) Тейк так же выставляем, отталкиваясь от размера нашего тренда (конструкции), и выражаем данную настройку советника в виде процентного (%) или целого (пункты) выражения.

6) Реализовать возможность выхода из сделки по обратному сигналу.

7) Реализовать возможность трейлинг стопа, отталкиваясь от размера нашего тренда (конструкции), и выражаем данную настройку советника в виде процентного (%) или целого (пункты) выражения.

Описание ТЗ скромное. Надеюсь Вы суть поймете, а на возникшие вопросы я постараюсь ответить.

Я могу дать одно из определений тренда. Но почему то подумал, что Вы найдете более оптимальные параметры идентификации.

Сразу о тренде:

Тренд - это 6 свечей подряд, с повышающимися значениями low этих свечей (high не интересует).

Я вставлял эту картинку в прошлом посте, но почему то ее не видно:

26587

Как раз первые два примера (с лева на картинке), и есть примерами выполнения условий для входа.

К стати, не написал еще важный момент: это соотношение размера тренда и пин бара (свечи пин). Если свеча пин, превышает размер 1/3 размера тренда, такая конструкция не проходит проверку алгоритма.

Еще один момент, думаю будет логичным добавить. Это опция которая дает возможность выставления стопа относительно high пин бара (свечи пин) в пунктах. Так как алгоритм стопа описанный в пункте 4, не способен четко выполнять данное задание.

Есть еще одно предложение: указывать в настройках советника количество свечек формирующих тренд. К примеру, это может быть диапазон от 3 до 9. Данная опция (по моему мнению) повысит уровень гибкости алгоритма в идентификации тренда, относительно рыночных условий.

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

Я извиняюсь перед заказчиком. В советнике реализованы не все пункты ТЗ. Но советник работает и им можно торговать на реальном или демо-счёте.

Не реализованы:
- стоп на уровне High или Low пин-бара (в зависимости от направления тренда);
- Trailing с процентным шагом.

Да и может чего наделала не того. Поэтому выкладываю бета-версию советника. Можно, кстати, ещё чего добавить в ТЗ. Пожелания принимаются! ;)

Настройки советника следующие:


Общие настройки:
- Risk, параметр для использования динамического лота (используется (Risk*100)% от свободных средств);
- Lots, объём для открываемого ордера;
- Slippage, проскальзывание;
- Magic, магическое число для открываемого ордера;
- FixedStopLoss, true - используется фиксированный StopLoss (задаётся в пунктах), false - используется относительный уровень StopLoss'а (задаётся от размера сформировавшейся конструкции);
- StopLoss, уровень StopLoss'а;
- FixedTakeProfit, true - используется фиксированный TakeProfit (задаётся в пунктах), false - используется относительный уровень TakeProfit'а (задаётся от размера сформировавшейся конструкции);
- TakeProfit, уровень TakeProfit'а;
- MarketExecution, true - исполнение "Market Execution", false - исполнение "Instant Execution";

Настройки торгового алгоритма:
- BarsForExtrm, количество баров справа от пин-бара для определения экстремума;
- BarsForTrend, количество баров для определения тренда;
- CloseOnReverseSignal, true - ордера закрываются при обратном сигнале, false - не закрываются.

Параметры для TrailingStop'а:
- UseBreakevenLevel, true - выставление уровня безубытка включено, false - выключено;
- BreakevenLevel, значение профита в пунктах, после которого выставляется безубытка (используется, если UseBreakevenLevel = true);
- UseTrailing, true - TrailingStop включен, false - выключен;
- TrailingStop, TrailingStep, основные параметры для TrailingStop'а (используется, если UseTrailing = true).

Примечание: для параметров BreakevenLevel, TrailingStop, TrailingStep нужно вводить целое число, которое умножается на величину, равную одному пункту.

Прочие параметры:
- UseGraphicObjects, true - показывать графические объекты (линии формирующегося и сформированного тренда), false - не показывать;
- ColorTrendUp, цвет для графических объектов, относящихся к тренду вверх;
- ColorTrendDown, цвет для графических объектов, относящихся к тренду вниз;
- BarsForStart, количество баров, после которых начинает рисоваться линия формирующегося тренда (линия сформированного тренда образуется, когда количество баров стало равно или больше BarsForTrend);
- WidthForStart, толщина линии для формирующегося тренда;
- WidthForTrend, толщина линии для сформированного тренда.

Просьба в дальнейшем данный советник обсуждать здесь.

ВНИМАНИЕ!!! На данный момент выложена бета-версия советника. В этой версии советника реализованы не все пункты ТЗ.

С уважением, Максим З..

Sanyok11
07-19-2013, 07:41 AM
Спасибо, посмотрю отпишусь. По поводу Стопа над high/low бара, то он просто необходим, так как преодоление ценой пика (носа) пин бара, в одной из трактовок данного подхода отменяет сетап как не состоявшийся. Трейлин стоп с процентным шагом не так важен, в данной ситуации, но не помешал бы.

- - - Добавлено - - -

И если можно, выложите описание советника.

MaxZ
07-22-2013, 06:43 AM
И если можно, выложите описание советника.

Оно и так должно быть интуитивно понятно. Тот, Кто захотел, уже давно разобрался с переменными! ;) И Я считаю, что советник уже и в таком виде получился довольно-таки интересным. Есть на что посмотреть, а Заказчику проверить логику входов.

Описание будет вечером.

Sanyok11
08-05-2013, 11:39 AM
По данному советнику только не давно начал разбираться. На данный момент, можно привести пример данного графика:

28469

Пока что это самая информативная кривая (по моему мнению), в 90% случаев, с использованием различных настроек и таймфреймов, кривая имеет строгий медвежий наклон с периодами флета во второй трети тестируемого периода 2009 - 2013. А это указывает на то что, в последние пару лет этот алгоритм работает 50/50.

В общем нужно смотреть большее количество вариантов по данному алгоритму, если они в большинстве своем будут иметь бычий наклон кривой, возможно стоит внести изменения в алгоритм поменяв команду By на Sell.

На данный момент могу констатировать, что с каждым разом убеждаюсь в том что это не мое (как говорится) возится с роботами. Хоть тема интересна, прежде всего тем что это идейная среда (а она не может не притягивать).

MaxZ
08-05-2013, 11:50 AM
По данному советнику только не давно начал разбираться. На данный момент, можно привести пример данного графика:

28469

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


В общем нужно смотреть большее количество вариантов по данному алгоритму, если они в большинстве своем будут иметь бычий наклон кривой, возможно стоит внести изменения в алгоритм поменяв команду By на Sell.

Похоже, что советник не подходит под весь рынок (под все его фазы). И не думаю, что смена Buy на Sell и Sell на Buy улучшат картину... Спред всё съест. Возможно, что пригодились бы какие-то фильтры.


На данный момент могу констатировать, что с каждым разом убеждаюсь в том что это не мое (как говорится) возится с роботами. Хоть тема интересна, прежде всего тем что это идейная среда (а она не может не притягивать).

А что с советником будем делать? Дорабатывать его нужно (до полного ТЗ) или это не имеет смысла? Или Вам нужно ещё время поразбираться с текущей версией советника?

Sanyok11
08-05-2013, 12:07 PM
А что с советником будем делать? Дорабатывать его нужно (до полного ТЗ) или это не имеет смысла? Или Вам нужно ещё время поразбираться с текущей версией советника?

Да, нужно время. Сам алгоритм работает, нужно попробовать различные варианты.

К стати, попробовал фиксированный лот с теми же настройками. Картинка по моему особо не отличается.

28470

MaxZ
08-05-2013, 12:16 PM
Да, нужно время. Сам алгоритм работает, нужно попробовать различные варианты.

Ок. Я Вас понял! :)


К стати, попробовал фиксированный лот с теми же настройками. Картинка по моему особо не отличается.

28470

Лот не должен меняться. Лот меняется только в том случае, когда переменная Risk больше 0. Выставите Risk в 0 и лот должен стать постоянным! ;)

Sanyok11
08-05-2013, 12:24 PM
На сколько я понял, отсутствие галочки на строке опции не отключает опцию если в ней стоит значение.

Картинка отличается:

28471

Andriy_7
06-15-2016, 01:45 PM
Здравствуй MaxZ!

Хочу внести рацпредложение. Попробуй прикрутить индикатор MFI (Била Вильямса)для входа в рынок.
Суть такова: когда рынок формирует маленькую свечу (high-low) и при этом имеем большой тиковый объем - появляется красный столбик MFI, Это означает что на рынке идет сильная борьба , в рынок входят много игроков. Именно этот пин-бар и будет правильным для входа в рынок.
Можно модифицировать MFI и брать за размер свечи (open-close). так, мне кажется, будет более правдоподобно отображаться равновесие быков/медведей.

С уважением Андрей