Эта стратегия является адаптивной торговой системой, основанной на полосах Боллинджера, управляющей позициями путем динамического мониторинга отношений между ценой и полосами. Она использует 20-дневную скользящую среднюю в качестве средней полосы, 2 стандартных отклонения для ширины канала и сочетает подтверждение прорыва с анализом временного периода для запуска торговых сигналов для оптимизированного распределения капитала.
Стратегия применяет статистические принципы полос Боллинджера, контролирующие колебания цен в пределах нормального диапазона распределения.
Стратегия устанавливает полную торговую систему с помощью полос Боллинджера и анализа временных периодов, достигая баланса между следованием трендам и контролем рисков. Хотя есть место для оптимизации, общая философия дизайна соответствует основным количественным принципам торговли и имеет практическое применение. Инвесторам рекомендуется вносить соответствующие коррективы на основе их терпимости к риску и размера капитала в живой торговле.
/*backtest start: 2024-11-11 00:00:00 end: 2024-12-10 08:00:00 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Bollinger Bands Strategy", overlay=true) // 設定布林通道 length = 20 source = close mult = 2.0 basis = ta.sma(source, length) dev = mult * ta.stdev(source, length) upper = basis + dev lower = basis - dev // 畫出布林通道 plot(upper, color=color.red, linewidth=1) plot(basis, color=color.blue, linewidth=1) plot(lower, color=color.green, linewidth=1) // 設定買入條件:突破布林通道高點5%或持續1小時在高點上方 breakout_level = upper * 1.01 hour_breakout = ta.change(time("60")) == 1 and close > upper buy_condition = (close > breakout_level or hour_breakout) if (buy_condition) strategy.entry("Buy", strategy.long, qty=0.5) // 設定賣出條件:第一次回測中線、跌破低點5%或回升中線 sell_10_condition = ta.crossover(close, basis) and strategy.opentrades > 0 sell_50_condition = close < lower * 0.95 // 賣出10%現貨 if (sell_10_condition) strategy.close("Buy", qty=0.1) // 賣出50%現貨 if (sell_50_condition) strategy.close("Buy", qty=0.5) // 監控買入與賣出信號 plotshape(series=buy_condition, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal") plotshape(series=sell_10_condition, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell 10% Signal") plotshape(series=sell_50_condition, location=location.abovebar, color=color.blue, style=shape.labeldown, title="Sell 50% Signal")