Блог им. XXM

Захват откатов скольжением.

    • 17 декабря 2018, 13:09
    • |
    • XXM
  • Еще

          В программе Lbot3D появилась реализация вычисления скользящего экстремума в конкретной стратегии при наличии позиции. Слово «конкретной» звучит потому, что этот самый экстремум можно использовать в других стратегиях из портфеля стратегий. Согласен, это нужно не всем. Скорее так: мало кому он нужен. Тем не менее, продолжу.

          Допустим мы придумали стратегию на некотором активе, рассчитанную на тренд:
Покупаем на четверть портфеля. Если цена пошла против нас (пусть на 1%)- стопимся, но если в нашу сторону +1%, то в предположении, что мы тренде, выставим лимитированную заявку на покупку второй четверти на 0.5% ниже достигнутого экстремума: откат вероятен, и после того, как на откате вытряхнут часть пассажиров, (самых пугливых, самых недостойных :)), наш портфель зацепит еще несколько лотов и едем дальше, «на север». Но если первая четверть бумаг размещена в нашем портфеле на «долгосрок», то вторая четверть будет сразу же выставлена на продажу с профитом, например, в 1%.
Возможны варианты:

  • откат был меньше 0.5% и бумага пошла выше достигнутого профита в 1%. В этом случае лимитированная заявка будет подтягиваться вверх таким образом, чтобы быть на 0.5% ниже достигнутого максимума.
  • откат на 0.5% состоялся, и… продолжился, на 0.6% и более. Тут уж только стоп: или свой какой-нибудь, 0.5% или стандартный, по величине стопа для первой части закупок.
  • откат на 0.5% состоялся, рынок развернулся, достиг лимитированной заявки на продажу на +1% (а она размещена на уровне +1.5% от уровня первого входа). Здесь сразу должна быть выставлена лимитированная покупка на 0.5% ниже текущей продажи. И эта заявка также становится скользящей. Далее — по кругу, пока стоп или тэйк-профит не прервет существование позиции в ведущей стратегию.

Что касается третьей и четвертой четверти депозита, то тут могут быть варианты: на +3% (или выше) может быть рыночная добавка со своим скользящим лимитником или эту стратегию можно будет соорудить на другой бумаге с другими параметрами.

Код стратегии для Lbot3D, на примере для фьючерса SRZ8:

[SRA0]
Security = SRZ8, SPBFUT, SR_Price, A0
WorkSize = 10
OpenSlippage = 25
min_max = 0.7%
OpenLong = {MA1} > {MA2}
OpenShort = {MA1} < {MA2}
StopLoss = 1%
TakeProfit = 6%, 0.5%, 0.5%
autoBot = Y
[SRA1]
Security = SRZ8, SPBFUT, SR_Price, A1
WorkSize = 10
Sensitivity = 25
BuyAtLimit = if ({SRA0:qty} > 0 and {SRA0:max} > 0) then {SRA0:max} * 0.995
TakeProfitLong = {OpenPrice} * 1.01
SellAtLimit = if ({SRA0:qty} < 0 and {SRA0:min} > 0) then {SRA0:min} * 1.005
TakeProfitShort = {OpenPrice} * 0.99
CloseLong = {SRA0:qty}<=0
CloseShort = {SRA0:qty}>=0
StopLoss = 1%
autoBot = Y

Некоторые пояснения:

OpenLong и OpenShort в стратегии [SRA0] — это некоторое ВАШЕ правило открытия позиций в зависимости от взаимного расположения ваших чудо-индикаторов, сигнализаторов или их комбинаций {MA1} и {MA2};
OpenSlippage — проскальзывание для рыночного открытия позиций в [SRA0], в количестве минимальных шагов цены;
min_max = 0.7% — признак для расчета экстремума цен, при этом расчет начинается только по достижении 0.7% (в данном примере) профита по открытой позиции. Если min_max = 0, то расчет экстремум начнется в момент открытия позиции;
Sensitivity — чувствительность для сдвига лимитированных заявок. Движения меньше 25 шагов цены игнорируются во избежание реакции на каждый шаг.
BuyAtLimit и SellAtLimit — правила для выставления и поддерживания лимитированной заявки на уровне ниже 0.05% от максимума при лонге и выше 0.05% от минимума при шорте;
TakeProfitLong и TakeProfitShort — выставление лимитированных заявок на закрытие позиций с профитом 1% от цены открытия.

Ниже — иллюстрация работы стратегии с двумя скользящими покупками.
Захват откатов скольжением.


а) 1 и 2 — срабатывание лимитированных покупок, выставленных от локального максимума max1;
б) 4 и 3 — срабатывание лимитированных продаж, выставленных от покупок 1 и 2;
с) 5 и 6 — срабатывание лимитированных заявок, которые были порождены при продажах 4 и 3 и которые были вытянуты на некоторый уровень, зафиксированный от уровня max2.

На часть депозита возможна добавка такой стратегии, при котором в момент открытия позиции по ведущей стратегии сразу выставляется лимитированная покупка по цене открытия ведущей стратегии, и, в случае срабатывания, сразу выставляется лимитированная на закрытие.
Эта стратегия будет прописана так:

[SRB1]
Security = SRZ8, SPBFUT, SR_Price, B1
WorkSize = 10
Sensitivity = 25
BuyAtLimit = if {SRA0:qty} > 0 then {SRA0:OpenPrice}
TakeProfitLong = {OpenPrice} * 1.01
SellAtLimit = if {SRA0:qty} < 0 then {SRA0:OpenPrice}
TakeProfitShort = {OpenPrice} * 0.99
CloseLong = {SRA0:qty}<=0
CloseShort = {SRA0:qty}>=0
StopLoss = 1%
autoBot = Y

Отличия — в написании правил для выставления лимитированной заявки на открытие позиции: {SRA0:OpenPrice}. Так как эта цена неизменна, то заявка не будет скользящей. Здесь реализован расчет на извлечение прибыли на начальной стадии предполагаемого тренда.

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

Успехов в захватах откатов!

  • обсудить на форуме:
  • Quik Lua
★16
1 комментарий
Работаю по похожей схеме, но вручную через тейкпрофиты на покупку/продажу. 

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

теги блога XXM

....все тэги



UPDONW
Новый дизайн