Esta estratégia é um sistema de negociação adaptativo baseado em Bandas de Bollinger, gerenciando posições monitorando dinamicamente a relação entre o preço e as bandas.
A estratégia aplica os princípios estatísticos das bandas de Bollinger, que controlam as flutuações de preços dentro de um intervalo de distribuição normal. 1. Usa a média móvel simples de 20 dias (SMA) para construir a faixa média 2. define as faixas superior e inferior usando 2 desvios padrão para formar a faixa de flutuação de preços 3. Compra posição de 50% quando o preço quebra acima da faixa superior em 5% ou permanece acima dela por 1 hora 4. Reduz a posição em 10% no primeiro retorno para a faixa média, 50% quando o preço cai abaixo da faixa inferior em 5% 5. Controla o risco e otimiza os retornos através da construção e redução de posições em fases
A estratégia estabelece um sistema de negociação completo através de Bandas de Bollinger e análise de período de tempo, atingindo um equilíbrio entre o seguimento da tendência e o controle de risco.
/*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")