この戦略は,トレード信号を決定し,ストップ/損失レベルを設定するためにボリンジャーバンド指標を使用する.価格が下から中間帯に触ると長くなって,価格が上から中間帯に触ると短くなります. 0.5%の利益と3%のストップ損失を設定し,短期取引戦略に属します.
ボリンジャーバンドの中間帯は,閉値のN日単純な移動平均線である.上帯は,中間帯+K倍N日標準偏差である.下帯は,中間帯−K倍N日標準偏差である.価格が中帯を下から突破すると長になり,価格が上から中帯を下に突破すると短くなります.各取引に固定サイズを開き,0.5%の利益と3%のストップロスを設定します.
解決策:
この戦略の全体的な論理は明確である.信号を決定するためにボリンジャーバンドを使用することは効果的です.しかし,取引頻度が高いことと,取引ごとに利益の余地が限られていること.信号をフィルターし,戦略パフォーマンスを向上させるためにパラメータを最適化するためにトレンドインジケーターを組み合わせることをお勧めします.
/*backtest start: 2024-02-01 00:00:00 end: 2024-02-29 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Estrategia Bollinger Bands", shorttitle="BB Strategy", overlay=true) // Parámetros de las Bandas de Bollinger length = input(20, title="Longitud") mult = input(2.0, title="Multiplicador") // Calcula las Bandas de Bollinger basis = ta.sma(close, length) upper_band = basis + mult * ta.stdev(close, length) lower_band = basis - mult * ta.stdev(close, length) // Condiciones para realizar operaciones price_touches_basis_up = ta.crossover(close, basis) price_touches_basis_down = ta.crossunder(close, basis) // Lógica de la estrategia if (price_touches_basis_up) strategy.entry("Compra", strategy.long, qty = 1) if (price_touches_basis_down) strategy.entry("Venta", strategy.short, qty = 1) // Lógica para cerrar la operación con un movimiento del 0,5% (take profit) o 3% (stop loss) target_profit = 0.005 // Actualizado a 0.5% stop_loss = 0.03 if (strategy.position_size > 0) strategy.exit("Take Profit/Close", from_entry = "Compra", profit = close * (1 + target_profit)) strategy.exit("Stop Loss/Close", from_entry = "Compra", loss = close * (1 - stop_loss)) if (strategy.position_size < 0) strategy.exit("Take Profit/Close", from_entry = "Venta", profit = close * (1 - target_profit)) strategy.exit("Stop Loss/Close", from_entry = "Venta", loss = close * (1 + stop_loss)) // Dibuja las Bandas de Bollinger en el gráfico plot(upper_band, color=color.blue, title="Upper Band") plot(lower_band, color=color.red, title="Lower Band") plot(basis, color=color.green, title="Basis")