Strategi ini menggabungkan dua indikator teknis: Saluran Donchian dan Rata-rata Bergerak Sederhana (SMA). Ini membuka posisi panjang ketika harga melanggar band bawah Saluran Donchian dan ditutup di atas SMA. Sebaliknya, membuka posisi pendek ketika harga melanggar band atas Saluran Donchian dan ditutup di bawah SMA. Posisi panjang ditutup ketika harga mencapai band atas Saluran Donchian, sementara posisi pendek ditutup ketika harga mencapai band bawah. Strategi ini cocok untuk pasar dengan tren yang kuat.
Strategi Kombinasi Saluran Donchian Dinamis dan Rata-rata Gerak Sederhana adalah kerangka kerja strategi perdagangan kuantitatif yang sederhana dan mudah digunakan. Strategi ini membangun logika masuk dan keluar dari perspektif mengikuti tren dan pecahnya volatilitas, membuatnya cocok untuk instrumen dengan tren yang kuat. Namun, strategi ini berkinerja buruk di pasar yang sering berkisar, dan ketahanan parameternya sedang. Kelayakan dan ketahanan strategi dapat ditingkatkan dengan memperkenalkan kondisi masuk tambahan, pengambilan keuntungan dinamis, dan mekanisme penyesuaian parameter sendiri. Secara keseluruhan, strategi ini dapat berfungsi sebagai strategi kerangka kerja dasar yang akan dimodifikasi dan ditingkatkan untuk menciptakan strategi kuantitatif yang lebih maju.
/*backtest start: 2024-05-01 00:00:00 end: 2024-05-31 23:59:59 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("FBK Donchian Channel Strategy", overlay=true) // Inputs donchian_period = input.int(20, title="Donchian Channel Period") donchian_offset = input.int(1, title="Donchian Channel Offset") sma_period = input.int(200, title="SMA Period") start_date = input(timestamp("2023-01-01 00:00 +0000"), title="Start Date") end_date = input(timestamp("2023-12-31 23:59 +0000"), title="End Date") trade_type = input.string("Both", title="Trade Type", options=["Buy Only", "Sell Only", "Both"]) // Calculate indicators donchian_upper = ta.highest(high, donchian_period)[donchian_offset] donchian_lower = ta.lowest(low, donchian_period)[donchian_offset] sma = ta.sma(close, sma_period) // Plot indicators plot(donchian_upper, color=color.red, title="Donchian Upper") plot(donchian_lower, color=color.green, title="Donchian Lower") plot(sma, color=color.blue, title="SMA") // Helper function to check if within testing period is_in_testing_period() => true // Entry conditions long_condition = low <= donchian_lower and close > sma short_condition = high >= donchian_upper and close < sma // Exit conditions exit_long_condition = high >= donchian_upper exit_short_condition = low <= donchian_lower // Open long position if (is_in_testing_period() and (trade_type == "Buy Only" or trade_type == "Both") and long_condition) strategy.entry("Long", strategy.long) // Close long position if (is_in_testing_period() and exit_long_condition) strategy.close("Long") // Open short position if (is_in_testing_period() and (trade_type == "Sell Only" or trade_type == "Both") and short_condition) strategy.entry("Short", strategy.short) // Close short position if (is_in_testing_period() and exit_short_condition) strategy.close("Short") // Close all positions at the end of the testing period if not is_in_testing_period() strategy.close_all()