Стратегия «Золотой крест» и «Мертвый крест» на полосах Боллинджера


Дата создания: 2023-11-23 14:01:57 Последнее изменение: 2023-11-23 14:01:57
Копировать: 0 Количество просмотров: 548
1
Подписаться
1617
Подписчики

Стратегия «Золотой крест» и «Мертвый крест» на полосах Боллинджера

Обзор

Эта стратегия основана на брин-банде, в котором проводится множественное короткое позиционирование. Когда цена прорывает брин-банд вверх, делается короткое позиционирование; когда цена прорывает брин-банд вниз, делается множественное позиционирование. Во время удержания позиции проводится пополнение позиции и отслеживание потерь.

Стратегический принцип

Эта стратегия использует три верхних и нижних траектории пояса Бриньона. Средний траекторий пояса Бриньона представляет собой n-дневную скользящую среднюю, верхний траекторий представляет собой n-дневную стандартную разницу пояса + k-кратный, а нижний траекторий представляет собой n-дневную стандартную разницу пояса - k-кратный.

Когда цена снизу вверх пробивается вниз, это означает, что цена начинает расти, тогда делайте больше; когда цена сверху вниз пробивается вверх, это означает, что цена начинает падать, тогда делайте пустоту.

Если цена снова достигнет средней линии, то она снова будет открыта для увеличения или уменьшения позиции.

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

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

Эта стратегия имеет следующие преимущества:

  1. Использование индикатора Брин-пояса, чтобы зафиксировать ценовые прорывы и сделать более точный пробел
  2. Применение метода золотой форки для регуляризации входа
  3. Если вы будете держать позиции, вы получите больше денег.
  4. Обновление в режиме реального времени, чтобы предотвратить удар по остановке

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

Однако эта стратегия также несет в себе некоторые риски:

  1. BRI, как показатель, более чувствителен к рыночным колебаниям и может быть арбитражным
  2. При этом, как отмечается в статье, “положительный подход увеличивает риски и увеличивает убытки”.
  3. Стоп-линия не является абсолютной, но есть вероятность, что она может быть зафиксирована.

Для этих рисков можно оптимизировать следующие аспекты:

  1. Настройка параметров Брин-пояса для различных циклов
  2. Оптимизация масштабов и частоты пополнения
  3. Добавление средней полосы в качестве дополнительной линии остановки

Направление оптимизации

Эта стратегия может быть оптимизирована в следующих аспектах:

  1. Оптимизация параметров Брин-Бенда для адаптации к новым рыночным условиям
  2. Оптимизация логики нажима, баланс риска и дохода
  3. Добавление стоп-линий, таких как стоп-линия на средней полосе
  4. Больше стратегий и активных действий по борьбе с алкоголизмом
  5. Фильтрация времени входа в сочетании с другими показателями
  6. Оптимизация управления капиталом и контроль рисков

Подвести итог

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

Исходный код стратегии
/*backtest
start: 2022-11-16 00:00:00
end: 2023-11-22 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5

strategy(title='Bollinger Band strategy with split, limit, stop', shorttitle='bb strategy', overlay=true,commission_type = strategy.commission.percent, commission_value = 0.01, default_qty_type = strategy.percent_of_equity, default_qty_value = 10, pyramiding = 4)



//Summary: Going Long or Short when Entering after Breaking the Bollinger Bands\
//At this time, the stop-loss, profit-taking price, and pyramiding standard\
// are determined from the difference between the position average price and the band price.

//After entering the position, if the price crosses the mid-band line, the stop loss is adjusted to the mid-band line.



//each trade, entry position size = 10% of total cash
//max pyramiding is 4
//commission = 0.01%





in_period = true


bb_length = input.int(20)
bb_mult = input.int(2)

[middle, upper, lower] = ta.bb(close,bb_length, bb_mult)
plot(middle, color=color.aqua)
plot(upper, color=color.orange)
plot(lower, color=color.orange)
long_cond = ta.crossover(close,lower)
short_cond = ta.crossunder(close,upper)

var saved_ph = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size > 0
    saved_ph := upper[1]
var saved_pl = 0.0
if strategy.opentrades>0 and strategy.opentrades[1]==0 and strategy.position_size < 0
    saved_pl := lower[1]

avg = strategy.position_avg_price

long_diff = saved_ph-avg
short_diff = saved_pl-avg

long_stoploss = avg - 1*long_diff
short_stoploss = avg - 1*short_diff

long_avgdown = avg - 0.5*long_diff
short_avgup = avg - 0.5*short_diff

long_profit_price = avg + 0.5*long_diff
short_profit_price = avg + 0.5*short_diff

var label _label = na
if in_period
    if long_cond and strategy.opentrades==0
        strategy.entry("Long",strategy.long)
    if long_cond and strategy.opentrades >0 and (close[1]<long_avgdown or close[2]<long_avgdown)
        strategy.entry("Long",strategy.long)

    if short_cond and strategy.opentrades==0
        strategy.entry("Short", strategy.short)
    if short_cond and strategy.opentrades>0 and (close[1]>short_avgup or close[2]>short_avgup)
        strategy.entry("Short",strategy.short)

plot(avg, style=plot.style_linebr)


plot(strategy.position_size > 0? long_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size > 0? long_avgdown: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size > 0? long_stoploss: na,color=color.red, style=plot.style_linebr)

plot(strategy.position_size < 0? short_profit_price: na,color=color.green, style=plot.style_linebr)
plot(strategy.position_size < 0? short_avgup: na,color=color.yellow, style=plot.style_linebr)
plot(strategy.position_size < 0? short_stoploss: na,color=color.red, style=plot.style_linebr)

if strategy.position_size > 0
    if ta.crossover(close, middle)
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=middle)
    else
        strategy.exit("Long Exit", "Long", limit=long_profit_price, stop=long_stoploss)
if strategy.position_size < 0
    if ta.crossunder(close, middle)
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=middle)
    else
        strategy.exit("Short Exit", "Short", limit=short_profit_price, stop=short_stoploss)