Strategi ini menggunakan indikator Bollinger Bands untuk menentukan sinyal perdagangan dan menetapkan stop profit/loss level. Ini akan panjang ketika harga menyentuh band tengah dari bawah dan akan pendek ketika harga menyentuh band tengah dari atas.
Band tengah Bollinger Bands adalah rata-rata bergerak sederhana N-hari dari harga penutupan. Band atas adalah band tengah + K kali deviasi standar N-hari dari harga penutupan. Band bawah adalah band tengah - K kali deviasi standar N-hari dari harga penutupan.
Solusi:
Logika keseluruhan strategi ini jelas. Menggunakan Bollinger Bands untuk menentukan sinyal efektif. Namun, frekuensi perdagangan yang tinggi dan ruang keuntungan terbatas per perdagangan. Disarankan untuk menggabungkan indikator tren untuk menyaring sinyal dan mengoptimalkan parameter untuk meningkatkan kinerja strategi.
/*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")