PDA

View Full Version : Советник eFXO.SlosMAtor



artamir
09-24-2014, 02:58 PM
Техзадание.


Ладно. Надоело мне руками баловаться с отбойными индикаторными уровнями. Созрел для ТЗ.
Все упростил пока по максимуму - не стал загружать фильтрами, побочными индикаторами в роли отбойных уровней. Оставил один индикатор -"Машку" в качестве центра "ценового вращения" с добавлением к ней же в настройках различных зеркальных (положительных и отрицательных с одинаковыми значениями) уровней, ограничивающих потенциальные границы текущего диапазона ценового разброса по обе от нее стороны, определяющие т.о. границы своеобразного индикаторного канала на основе этой простейшей).
45304
Имеем по умолчанию:
ТФ Н-4 (по умолчанию)
МА с периодом 200 (переменная)
Параметры МА стандартные на выбор (простые МА, ЕМА, по закрытию, по открытию...) - по умолчанию - простая simple МА close Сдвиг 0.
Параметрами уровней (со знаком "+" и "-" ) - переменные величины, желательно предоставить (если не сложно) возможность их менять, и добавлять новые:
+\- 50; 100; 200; 300; 500; 800...(пока хватит) и p.s. Для 5-ти знака добавляем к параметрам уровней по нолику!
Далее - стандартный набор параметров торгового риска, минимального лота, плюс некоторые параметры которые я обозначу в дальнейшем описании ТЗ (добавляются некоторые элементы "Мартини" с прикрученным к нему тралом стопов сделок в безубытке)

Суть алгоритма:
Условия для покупок:
1. Цена находится ниже МА. Движется вниз. Пересекает (достигает) по факту ближайший от текущей цены уровень МА с каким то (не важно) при этом отрицательным параметром. Пусть в данном случае это будет в идеальном варианте первый уровень по умолчанию со значением "-" 50.
На расстоянии "дельты" равной какому то фиксированному значению NN пп (величина переменная) от максимума текущего бара, внутри диапазона которого оказался ценовой отбойный уровень (- 50) выставляется BUY STOP со стартовым лотом с переменным значением к примеру 0.01 по умолчанию (стопы и ТП не нужны) Сделки закрываются по принципу советника eFXO.SLos Traling 5.0 при PositionAmount=1

2. В случае если ценовое снижение продолжилось а отложенный ордер не открылся - уровни BUY STOP перемещаются последовательно к максимуму нового текущего бара (с прежней дельтой) и так пока ордер не откроется. При этом если достигнут следующий нижестоящий уровень а покупка так и не сработала - условия для нового отложенного бая от этого нового отбойного уровня не выполняются. Должен быть только один отложенный ордер перемещающийся от прежнего предыдущего отбойного уровня от бара к бару по их максимумам.

3. Если ордер открылся а ценовое снижение продолжилось - при соблюдении тех же условий для BUY STOP на последующем ближайшем уровне МА (пусть это будет в данном случае с параметром "-" 100) выставляется новый отложенный ордер с увеличенным по отношению к стартовому исходному лоту 1-го исходного ордера в N раз (по умолчанию - утроенным объемом) и т.д. - усредняемся новыми BUY STOP на каждом очередном нижестоящем уровне (- 200; -300; -500; -800)...

Условия для отложенных продаж - идентичны, только все естественно наоборот - цена движется вверх, находится выше "машки", достигается первый ближайший вышестоящий от текущей цены отбойный уровень, выставляется отложенный ордер (SELL STOP) на минимуме текущего бара, пересекающего уровень машки...

Идея алгоритма проста несмотря на писанину. Надеюсь так же не окажется сложной и для своего практического воплощения.:sm23:
Заранее спасибо!



Версия 1.20
Посмотреть сделанные изменения и скачать советника можно в этом сообщении (http://forum.fxopen.ru/showthread.php?104141-sovetnik-efxo-slosmator&p=2123222&viewfull=1#post2123222).

Версия 1.10
Посмотреть сделанные изменения и скачать советника можно в этом сообщении (http://forum.fxopen.ru/showthread.php?104141-sovetnik-efxo-slosmator&p=2122629&viewfull=1#post2122629).

Версия 1.00
Для использования в тестере стратегий.

Настройки:

TPFix - фиксированное значение тейкпрофита в пунктах
SLFix - фиксированное значение стоплосса в пунктах.
В рамках техзадания эти два параметра можно оставить = 0.

Lot - объем первого ордера серии.
Multy - коэффмцент умножения объема последнего ордера серии для вычисления объема ордера который должен быть выставлен.

MALevels - строка со значением уровней скользящей средней в пунктах.
Каждый уровень задается отдельно. Разделитель - точка с запятой.

useDynDelta - использовать динамический расчет дельты отступа от хай/лоу бара для выставления ордера. Если false, то ордер будет выставлен по цене хай/лоу.

Далее настройки советника SlosTraling.



Что умеет данная версия:
1. Открытие по уровням скользящей средней, которые заданы в настройках.

2. Раздельное отслеживание бай и селл сеток.

3. Каждый новый уровень сетки открывается, если цена пересекла конверт средней, который больший, чем тот по которому был выставлен предыдущий ордер.

4. Динамический расчет дельты. Советник расчитывает расстояние вида: для бай сетки хай(и)-хай(и+1), если хай(и)>хай(и+1). Т.е. расчитывается среднее расстояние от хая на котором, теоретически, выставленный ордер будет в безопасности от случайных выбросов.

Чего не умеет:
1. Работает только с жестко заданными настройками скользящей средней: период 50, ема, клоуз.

2. Нет фиксированной дельты.

3. Нет отключения выставления усредняющих ордеров сетки.

artamir
09-25-2014, 07:55 AM
Версия 1.10
Добавлены настройки скользящей средней.

Изменено поведение параметра Multy
Если Multy<=0 то усредняющие ордера выставляться не будут.

slos
09-27-2014, 08:38 AM
На первый взгляд все пока - ок! :sm46:
45422 45423

slos
09-28-2014, 05:03 AM
Предварительные итоги тестовых прогонов.
Идея рабочая и вполне себя оправдывает. Торговые риски предварительно получились в итоге ниже Мартини. Торговать можно объемами ордеров дающих 1$ за 1 пп ценового движения (4-х знак) что дает возможность торговать этим мартином не только на центовых, но и стандартных счетах, дающих такую возможность (имхо).
Правда отказался от усреднения убыточных позиций увеличением объема последующих сделок (Multy=1) и входил на каждом уровне постоянным исходным лотом дающим этот 1$ прибыли/убытка за 1 пп. Хотя можно торговать и с Multy=2=3, но риски и требования к запасу прочности торгового баланса при этом возрастают, возрастает ли при этом сравнительная абсолютная (не относительная) доходность системы (исходный лот приходится уменьшать, если нет возможности увеличить депо) - вопрос.
45429454304543145432
Перепробовал несколько валютных пар - остановился в итоге опять на евройене. Тут как раз подходит ее волатильность ("туда-сюда")
Идея с useDynDelta оказалась удачной -
45433
с ней доходность несколько снизилась, но точность входов повысилась и просадка в итоге уменьшился.
Оптимальный старт для трала оказался 20 пп PriseStep=5 пп, коэф отставания 0.6 (0.5 - разницы особой не заметил)
Отбойные Фибо уровни начать лучше с минимального 50(-50) и добавить по максимуму т.к. рыночная волатильность бывает разная к тому же неизвестно вблизи какого отбойного уровня текущая цена на момент включения совы окажется (50;-50;100;-100;200;-200;300;-300;500;-500;800;-800...)
Недостатки и требование к модернизации (чуть позже)

slos
09-28-2014, 05:56 AM
Недостаток один. В общем то я его предвидел с самого начала, но надеялся что обойдется и он принципиально не будет мешать стабильной и равномерной работе совы. Но не обошлось...
На М50, где амплитуда колебаний тенденций как бы чаще- это конечно не так сильно заметно, но на м200 (а параметры этой машки мне понравились больше) - заметно гораздо сильнее.
На длительных устойчивых трендовых движениях наблюдается следующая картина:
45434
(Максимальная просадка на тестовом прогоне МА200 в 800$ - думаю за счет именно этого "провала")

Решение проблемы предлагаю следующее:
Во флете приоритет открытия последующих сделок только на последующих отбойных уровнях с большими параметрами, чем предыдущий - остается.
Но если началось такое вот трендовое "скольжение" по одним и тем же уровням, просадка увеличивается, а вероятность достижения при этом следующего отбойного уровня остается призрачной... :
Если после открытия последней "правильной" сделки - просадка по ней достигла уровня (пусть будет 100 пп по умолчанию) - включается дополнительный "упрощенный" режим разрешения открытия сделок.
При выполнении прежних условий открытия (цена в конвертере, DynDelta и прочее) разрешается открыть сделку от ЛЮБЫХ близлежащих от текущей цены отбойных уровней ниже (при покупках) и выше (при продажах) от машки - к примеру того же уровня от которого осуществлялся последний вход и даже предыдущего (если текущая цена окажется в итоге и на нем дальше от ее входа, чем 100 пп) а не только на следующем отбойном уровне с большим параметром чем предыдущий как было до этого!
После чего (открытия "упрощенной" сделки) этот режим как бы отключается и становится актуальным если опять просадка и по этому ордеру достигнет 100 пп и выше (имхо)
Хотя скорее всего этот режим и станет уже постоянным после того как текущая цена перевалит за границу уже второго после +/- 50, уровня +/- 100, где расстояния между последующими уровнями (+/- 200 и далее) и будет как правило уже тоже примерно 100 и больше пп.
p.s. Уточнение - только упрощенная сделка (на всякий случай уточню еще раз) открывается не автоматом всякий раз при достижении просадки в 100 пп (по умолчанию) а только при соблюдении прежних условий открытия, но от БЛИЖАЙШЕГО при этом от текущей цены соответствующего отбойного уровня машки.
:sm23:

artamir
09-29-2014, 07:31 AM
Уточняю:
Добавляется переменная ДельтаПросадкиВПунктах, роль которой в следующем. Если просадка по самой низкой покупке или самой высокой продаже переваливает за заданное значение, то включает тригер на выставление доп. ордеров по урпощенному варианту.
А именно.

Если цена пересекает ближайший конверт средней и при этом для покупок/продаж хай/лоу закрытого бара отстоит на ДельтаМеждуОрдерами пунктов, то выставляется отложенный бай/селл ордер. Объем ордера расчитывается по обычной схеме.

artamir
09-29-2014, 08:36 AM
Версия 1.20

Добавленные настройки.
useDeltaLoss - разрешает использовать упрощенные правила выставления ордеров.
DeltaLoss - "минус в пунктах" в который должен уйти последний ордер сетки, чтоб советник переключился в режим использования упрощенных правил выставления ордеров.
DeltaOrders - расстояние между последним ордером сетки и ближайшим хай/лоу, при котором будет выставлен ордер.

slos
09-29-2014, 10:28 AM
:sm46::sm46::sm46:

slos
09-29-2014, 01:18 PM
Теперь вроде все так как надо! Больше ничего не требуется (надеюсь).:sm46:
Сова рабочая, или пока тестовый вариант?
45451

artamir
09-29-2014, 02:43 PM
На реал ставить можно, но держать в голове следующее:

При перезапуске советника данные о том, по какому конверту выставлялся ордер будут теряться.

artamir
10-15-2014, 12:27 PM
Вопрос. Сов для реала дорабатываем?

slos
10-15-2014, 02:35 PM
О, привет!
Да, естественно. Работает нормально...

artamir
10-16-2014, 07:58 AM
Хорошо.

slos
10-17-2014, 06:40 PM
p.s.45588 45589
Итенсивность торговли естественно ниже, чем у Фиборга на 5-ти минутке. Но "курочка по зернышку клюет" :smile147: Одно другому не мешает и к тому же работают разные ТС на разных счетах...
Принцип почти тот же. Но на картинке не так красиво видна отработка уровней, чем на м-5 т.к. отложенные ордера так же перемещаются в случае не отработки сразу - от бара к бару + дельта отступа от их экстремумов (на фиборге дельту не использую, так расстояние между уровнями и так небольшое). В итоге на более крупных ТФ входы могут заметно быть удалены от самих этих отбойных уровней.
Но фиг с ней, с красотой. Профит есть и ладно!..
Надеюсь перспектива и у этой ТС после ее окончательной автоматизации сохранится (имхо).

slos
10-23-2014, 03:01 PM
Всем привет!
Сегодня всплыл недочет моего исходного ТЗ.
Пока вздремнул после обеда по возвращению с работ (одна из причин моей любви к роботорговле:sm34:) закрылись три усредненных ордера по тралу, но при этом остался еще один отложенный ордер по ходу работы совы с очередным лотовым текущим увеличением. Потом он естественно сработал тоже и исходный лот у него получился 0.08 вместо 0.01. !
Надо бы при закрытии текущих усредненных сделок закрывать и одновременно и отложенные тоже от греха подальше... (Плиз!) :confused:
45631 45632
p.s. Хорошо, смотрю, вышла в безубыток. Удачно в итоге получилось, слава Богу! Но раз на раз конечно же не приходится...
45633
... Итого почти 41 $ прибыли. Тем не менее пока отключил и заменил фиборгом
45634 45635

slos
10-23-2014, 07:49 PM
p.s. Вроде заработал (фиборг). Уровни кроме самого центрального пивота только вот не рисует почему то (не только на этом) но не принципиально, реагирует и ладно...
45636

artamir
10-23-2014, 08:19 PM
p.s. Вроде заработал (фиборг). Уровни кроме самого центрального пивота только вот не рисует почему то (не только на этом) но не принципиально, реагирует и ладно...
45636


Фиборга обсуждаем в соседней ветке :)

https://forum.fxopen.ru/showthread.php/104223-sovetnik-efxo-slosfiborg?p=2123233&viewfull=1#post2123233

А если отвечать на вопрос, то в самом сове заложенно рисование только пивота. чтоб рисовать уровни есть индикатор :)

slos
10-23-2014, 09:11 PM
Фиборга обсуждаем в соседней ветке :)

https://forum.fxopen.ru/showthread.php/104223-sovetnik-efxo-slosfiborg?p=2123233&viewfull=1#post2123233

А если отвечать на вопрос, то в самом сове заложенно рисование только пивота. чтоб рисовать уровни есть индикатор :)

Принял, спасибо! Неправильно понял последние изменения! Значит одной проблемой, слава Богу меньше!...

artamir
10-24-2014, 04:02 AM
Всем привет!
Сегодня всплыл недочет моего исходного ТЗ.
Пока вздремнул после обеда по возвращению с работ (одна из причин моей любви к роботорговле:sm34:) закрылись три усредненных ордера по тралу, но при этом остался еще один отложенный ордер по ходу работы совы с очередным лотовым текущим увеличением. Потом он естественно сработал тоже и исходный лот у него получился 0.08 вместо 0.01. !
Надо бы при закрытии текущих усредненных сделок закрывать и одновременно и отложенные тоже от греха подальше... (Плиз!) :confused:
45631 45632
p.s. Хорошо, смотрю, вышла в безубыток. Удачно в итоге получилось, слава Богу! Но раз на раз конечно же не приходится...
45633
... Итого почти 41 $ прибыли. Тем не менее пока отключил и заменил фиборгом
45634 45635

Чего-то я пропустил этот пост :( Ну да ладно.
Если я правильно понял тз, то нужно удалить все отложенные ордера, объемом больше стартового, если нет рыночных позиций. Ждем сле. сигнала и начинаем сетку заново. Так?

slos
10-24-2014, 04:52 AM
Чего-то я пропустил этот пост :( Ну да ладно.
Если я правильно понял тз, то нужно удалить все отложенные ордера, объемом больше стартового, если нет рыночных позиций. Ждем сле. сигнала и начинаем сетку заново. Так?
Да. Совершенно верно. Удаляем и ждем условия для выставления нового отложенного ордера с исходным стартовым объемом при новом пересечении текущей цены ближайшего отбойного -уровня (возможно при этом, учитывая ТФ, что прежнее условие при этом еще сохранится и новый ордер после удаления прежнего тут же появится на том же уровне, только с меньшим уже объемом. Это в идеале ...)
p.s. Но я тут уже думал. В последней версии совы уже предусмотрена минимальная дельта отступа от последнего ордера, и если доработанная для реала сова будет запоминать уровни после перезагрузки терминала или компа, то этот недостаток отпадет сам собой и не сработавших отложенных ордеров просто не будет в принципе. Цена, вернувшись в зону безубытка действующих ордеров по пути к ней скорее всего по-любому этот последний отложенный ордер зацепит еще больше приблизив безубыток ... Если конечно Multi у нас не будет к примеру 10 :-) !

artamir
10-24-2014, 07:56 AM
Принято.

slos
10-25-2014, 08:54 AM
p.s. 45647 45648
:smile147:

artamir
10-30-2014, 02:28 PM
Версия 1.30

Добавлен блок закрывающий усредняющие отложенные ордера, если закрыты рыночные.

slos
10-30-2014, 05:15 PM
Респект! Спасибо!...:sm46:
Сегодня пробовал гонять предыдущую теперь уже версию на меньших ТФ чем Н-4. В общем при желании можно работать и на них...
Период МА ставил 14 уровни машки по числовому ряду фибо: +\- 13-21-34-55-89-144...
45682 45681 45683 45684 45685

slos
11-27-2014, 03:48 PM
Незаслуженно отвлекся от этого советника. Вернусь к нему вплотную чуть позже... В общем то мысли по его поводу постоянно в голове копошатся...
Перебирал разные таймфреймы и показалось что на еще больших ТФ (к примеру дневном вместо н-4) картина еще более становится понятной (имхо)
46023 46024

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

Принцип работы - почти один в один что и уже готовой версии, (усредняемся либо на следующих либо тех же уровнях если позволяет дельта отступа от текущей сделки...)за исключением:
1. ЕМА и ее уровни выставляются тносительно дневного бара, но ориентируемся на выствление отложенного ордера не по окончании этого дневного бара, а какого-нибудь внутридневного (к примеру м-15 по умолчанию...)
Еще настройки по умолчанию:
ЕМА с периодом 1 (Метод - Exponential; Применить к: Weight Close (HLCC/4)
Уровни вокруг ЕМА - всего 2 (думаю вполне достаточно) с параметрами уровней +\- 34 и 89... :smile37:

artamir
11-27-2014, 05:53 PM
Может как в фиборге. Пусть сов сам считает абсолютные фибоуровни от скользящей средней?

slos
11-27-2014, 07:09 PM
Ну да, наверное. Лишь бы считал как то :sm48:

slos
12-23-2014, 10:14 AM
p.s. решил чтобы время не терять - в несколько упрощенном варианте, побаловаться в ручном режиме...
p.s. Упрощенный т.к. предлагаю сделать его более универсальным (с добавлением режима TWIX) используя уровни дневной машки не только в роли отбойной, но и потенциально-пробойной, выставляя при ее пересечении баром меньшего ТФ на противоположных экстремумов этих баров + динамическая дельта отступа, два противоположных отложенных стоповых ордера, последующая серия которых будет автономной и независимой друг от друга, закрывающаяся каждая в своей индивидуальной зоне безубытка...
Примечание: если сработал какой либо из этих ордеров и последующем выходе в безубыток с достижением уровня PriceStart (выставлении стопов в безубытке) и при этом цена не зацепила противоположный отложенный ордер - этот противоположный отложенный ордер удаляется...

slos
12-23-2014, 11:34 AM
... Смотрю отбойно/пробойные уровни вокруг дневной машки в отличии от индикаторных пивотных - не статичны и постоянно меняют свое текущее ценовое значение - постепенно меняю ценовые значения отложенных ордеров в след за изменением уровней машки и я...
46233
p.s. Прозевал изменение уровня - сработала лимитная отложка на бай. Ладно, посмотрим что из нее получится...
46238