PDA

View Full Version : Советник FXOpen.NStopProfit



MaxZ
08-04-2013, 06:43 PM
Здравствуйте.

Данный советник был заказан в теме (forum.fxopen.ru/showthread.php?91373&p=1450226#post1450226).

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


Max привет!
Давненько я не постил. Хочу предложить написать советник по простенькой идее напоминающую "одноногий хэдж" но сдвинутый по времени открытия сделок.
1.На расстоянии К от цены строим сетку стоповых ордеров(N ордеров c каждой стороны от цены с шагом Step пунктов).величина лота во внешних настройках.
2.Ставим на каждый из ордеров takeprofit = 2* Step пунктов.Стоплоссы не ставим.
3.Если ход цены только в одну сторону, то после срабатывания 3-х профитов включается трал и у оставшихся в работе ордеров стоплосс устанавливается на уровне тэйкпрофита 3-го закрывшегося в профит Ордера.
4.Если ход цены в виде зигзага: открылись 1 buy и 1 sell (позиция локировалась) - отменяем тэйкпрофиты у этих ордеров и когда цена пройдет в одну сторону 4*Step пунктов закрываем все ордера.
5.Если зигзаг оказался большим: 2 и более buy и 2 и более sell, тогда при малейшем профите закрываем Все ордера.
K,N,Step –внешние настройки.

По 3-му пункту был вопрос


Как Мы выставим StopLoss на уровне TakeProfit'а 3-го закрывшегося в профит ордера, когда в данный момент у Нас там цена и находится?

и на него был дан следующий ответ:


Мах привет!
Можно с этим не заморачиваться а трактовать так:
"после срабатывания 3 профитов удаляются все ордера и работа начинается
с начала"

Как всегда пытался сделать советник более универсальным! ;) И полагаю, что надо дать немного пояснений:
1). Изначально советник выставляет стоповые отложенные ордера в обе стороны, количество которых в одну из сторон равно переменной StopOrdersProfit. Уровень TakeProfit'а выставляется в размере StopOrdersProfit*Step.
2). При образовании лока в размере 1 ордер на покупку и 1 ордер на продажу, советник обращается к переменной StopOrdersLock. Если StopOrdersLock > StopOrdersProfit, то модифицируется уровень TakeProfit'а до размера StopOrdersLock*Step и открываются дополнительные стоповые отложенные ордера.
3). При образовании лока в размере 2 ордера на покупку и 2 ордера на продажу, советник обращается к переменной StopOrdersMax. Если StopOrdersLock > StopOrdersProfit, уровень TakeProfit'а убирается и открываются дополнительные стоповые отложенные ордера. При минимальной прибыли или безубытке советник закроет все ордера и удалит все отложенные ордера.

Примечание:
- не задавайте StopOrdersLock < StopOrdersProfit;
- не задавайте StopOrdersMax < StopOrdersLock.

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


Общие параметры:
- Risk, параметр для использования динамического лота (используется (Risk*100)% от свободных средств);
- Lots, постоянный лот (используется, если Risk = 0.0);
- Slippage, проскальзывание;
- Magic, магическое число.

Параметры для торгового алгоритма:
- K, расстояние от цены до отложенных ордеров;
- Step, шаг сетки отложенных ордеров;
- StopOrdersProfit, количество отложенных ордеров изначально;
- StopOrdersLock, количество отложенных ордеров в одну сторону при образовании лока в размере 1 ордер на покупку и 1 ордер на продажу;
- StopOrdersMax, количество отложенных ордеров в одну сторону при образовании лока в размере 2 ордера на покупку и 2 ордера на продажу.

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

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

ВНИМАНИЕ!!! Не реализована функция подхвата текущей серии ордеров после удаления советника и установки его снова на график. Данную функцию у Меня сделать и не просили. Если будет нужна, сделаю! ;)

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

nahodka
08-13-2013, 05:52 AM
Здравствуйте Максим!
Поставил Ваш советник в тестер стратегий и в какой-то момент перестали появляться красивые "стрелы" закрытия ордеров, а осталась видна только горизонтальная отрисовка - открытые ордера, которые уже не закрывались.
Понимаю, архивы котировок не всегда идеальны, но при явном видном профите, ордера должны были быть удалены. CloseAndDeleteAll()
Что может быть не так?
Настройки для теста оставил "заводские", "пятизнак"...
С уважением...

MaxZ
08-13-2013, 04:08 PM
Здравствуйте Максим!
Поставил Ваш советник в тестер стратегий и в какой-то момент перестали появляться красивые "стрелы" закрытия ордеров, а осталась видна только горизонтальная отрисовка - открытые ордера, которые уже не закрывались.
Понимаю, архивы котировок не всегда идеальны, но при явном видном профите, ордера должны были быть удалены. CloseAndDeleteAll()
Что может быть не так?
Настройки для теста оставил "заводские", "пятизнак"...
С уважением...

Здравствуйте.

На Вашем рисунке Я вижу отрицательный лок (замок). То есть открыто одинаковое количество ордеров одного и того же объёма на покупку и на продажу (в данном случае, это 4 покупки и 4 продажи с одинаковым объёмом 0.10).

При таком полном (когда общий объём покупок = общему объёму продаж) локе (замке), уровень прибыли (Profit) находится на одном месте (и в данном случае он будет всегда отрицательным). Эту ситуация советник не "разруливает" (так как не дождётся положительной прибыли) и поэтому с такими ситуациями необходимо разбираться вручную.

Другой выход из этой ситуации - экспериментировать с настройками советника (например, добавлять количество ордеров, изменять шаг Step), минимизируя количество возникновения подобных ситуаций.

niksh
08-17-2013, 07:16 AM
29122Всем привет!
Прилагаю отчеты с тестера eurjpy,audusd,eurgbp,eurusd.
Мне нравится ступеньки эквити.Видна какая то закономерность.Будем думать как из этого
извлечь прибыль.На демо пока не ставлю т.к. VPS забит под завязку.

niksh
08-17-2013, 07:27 AM
Все рисунки не вмещаются.291232912429125