В процессе загрузки ресурсов... загрузка...

Стратегия двойной тяги

Автор:Чао Чжан, Дата: 2023-09-19 16:27:12
Тэги:

Обзор

Стратегия двойного толчка устанавливает верхние и нижние диапазоны на основе цены открытия и диапазона предыдущего дня, выходя на длинный курс при взлетах и короткий курс при падениях.

Принцип стратегии

  1. Вычислить самый высокий высокий HH и самый низкий низкий LL на последних N-барах.

  2. Вычислить наивысший близкий HC и самый низкий близкий LC предыдущего дня.

  3. Диапазон предыдущего дня Диапазон больше HH-LC и HC-LL.

  4. Высшая полоса BuyLine - это цена открытия плюс k1 * диапазон.

  5. Нижняя полоса SellLine - это цена открытия минус k2 * диапазон.

  6. Пройдите длинный, когда закрытие прерывается выше BuyLine, и короткий, когда закрытие прерывается ниже SellLine.

Анализ преимуществ

Основные преимущества этой стратегии:

  1. Захватывает тенденцию, сформированную прорывами вокруг открывающейся цены.

  2. Пробелы устанавливаются автоматически на основе исторической волатильности, избегая субъективности.

  3. Настраиваемые значения k подходят для продуктов с различной волатильностью.

  4. Сигналы прорыва относительно высокого качества.

  5. Гибкие периоды хранения для отслеживания тенденций в разные периоды времени.

Анализ рисков

Основные риски этой стратегии:

  1. Трудность определения разумного диапазона для полос, риски перегрузки.

  2. Прорывы могут оказаться ложными сигналами, нужно остановить потерю.

  3. Фиксированный период хранения не может динамически адаптироваться к рынку.

  4. Недостаточные данные обратных испытаний приводят к настройке кривой.

  5. Трудность совместного осуществления длинной и короткой торговли.

Решения:

  1. Оптимизируйте значения k на больших наборах данных, чтобы избежать перегрузки.

  2. Установите правильный стоп-лосс, чтобы ограничить потери на одну сделку.

  3. Добавить фильтр тренда, чтобы избежать торговли контртендом.

  4. Рассмотреть возможность сокращения периода хранения до внутридневного.

  5. Подтверждение в режиме реального времени с постепенным размещением позиции.

Руководство по оптимизации

Некоторые способы улучшения стратегии:

  1. Динамически регулируйте значения k для полос.

  2. Добавьте фильтр громкости, чтобы подтвердить сигналы прорыва.

  3. Используйте перемещение стоп-лосса для защиты прибыли.

  4. Оценить силу прорыва для определения размера положения.

  5. Различить тренд и диапазон для разложения стратегии.

Резюме

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


/*backtest
start: 2023-09-11 00:00:00
end: 2023-09-18 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy("Dual Thrust Strategy",overlay=true,initial_capital=1000)
k1=input(0.67,type=float,step=0.01)
k2=input(0.62,type=float,step=0.01)
TimeFrame=input('240')
len=input(20)
HH=security(syminfo.tickerid,TimeFrame,highest(high,len),barmerge.lookahead_off)
LC=security(syminfo.tickerid,TimeFrame,lowest(close,len),barmerge.lookahead_off)
HC=security(syminfo.tickerid,TimeFrame,highest(close,len),barmerge.lookahead_off)
LL=security(syminfo.tickerid,TimeFrame,lowest(low,len),barmerge.lookahead_off)
Range=max(HH-LC,HC-LL)
BuyLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)+k1*Range
SellLine=security(syminfo.tickerid,"D",open,barmerge.lookahead_off)-k2*Range
plot(BuyLine,color=blue,linewidth=2,offset=1,transp=70)
plot(SellLine,color=red,linewidth=2,offset=1,transp=70)


LongCondition=crossover(close,BuyLine)
ShortCondition=crossunder(close,SellLine)
strategy.entry("enter long",true,1,when=LongCondition)
strategy.entry("enter short",false,1,when=ShortCondition)
plotshape(LongCondition and strategy.position_size<0?low:na,style=shape.labelup,location=location.absolute,color=blue,text="Long",textcolor=white,size=size.small)
plotshape(ShortCondition and strategy.position_size>0?high:na,style=shape.labeldown,location=location.absolute,color=red,text="Short",textcolor=white,size=size.small)
alertcondition(LongCondition and strategy.position_size<0,title='Long_DT')
alertcondition(ShortCondition and strategy.position_size>0,title='Short_DT')

Больше