Strategi ini adalah sistem perdagangan yang mengikuti tren berdasarkan Chande Momentum Oscillator (CMO). Strategi ini mencari peluang pembelian di wilayah yang terlalu banyak dijual dan peluang penjualan di wilayah yang terlalu banyak dibeli, sementara menggabungkan batas waktu kepemilikan posisi untuk manajemen risiko. Pendekatan ini memungkinkan untuk menangkap pembalikan harga sambil menghindari perdagangan yang sering di berbagai pasar.
Inti dari strategi ini menggunakan indikator CMO untuk mengukur momentum pasar. CMO menghasilkan osilator berkisar dari -100 hingga 100 dengan menghitung rasio perbedaan antara pergerakan ke atas dan ke bawah terhadap jumlahnya. Sistem menghasilkan sinyal panjang ketika CMO turun di bawah -50, menunjukkan kondisi pasar oversold. Posisi ditutup ketika CMO melebihi 50 atau ketika periode kepemilikan melebihi 5 siklus. Desain ini menangkap peluang rebound harga sambil menerapkan langkah-langkah pengambilan keuntungan dan stop-loss yang tepat waktu.
Strategi yang didasarkan pada momentum ini menangkap peluang pasar yang terlalu banyak dibeli dan terlalu banyak dijual menggunakan indikator CMO. Desain strategi rasional, dengan aturan perdagangan yang jelas dan mekanisme pengendalian risiko. Sementara risiko yang melekat ada, optimalisasi dapat lebih meningkatkan stabilitas dan profitabilitas strategi. Strategi ini sangat cocok untuk pasar yang sangat fluktuatif dan dapat mencapai pengembalian yang baik selama fase tren yang jelas.
/*backtest start: 2019-12-23 08:00:00 end: 2024-11-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Chande Momentum Oscillator Strategy", overlay=false) // Input for the CMO period cmoPeriod = input.int(9, minval=1, title="CMO Period") // Calculate price changes priceChange = ta.change(close) // Separate positive and negative changes up = priceChange > 0 ? priceChange : 0 down = priceChange < 0 ? -priceChange : 0 // Calculate the sum of ups and downs using a rolling window sumUp = ta.sma(up, cmoPeriod) * cmoPeriod sumDown = ta.sma(down, cmoPeriod) * cmoPeriod // Calculate the Chande Momentum Oscillator (CMO) cmo = 100 * (sumUp - sumDown) / (sumUp + sumDown) // Define the entry and exit conditions buyCondition = cmo < -50 sellCondition1 = cmo > 50 sellCondition2 = ta.barssince(buyCondition) >= 5 // Track if we are in a long position var bool inTrade = false if (buyCondition and not inTrade) strategy.entry("Long", strategy.long) inTrade := true if (sellCondition1 or sellCondition2) strategy.close("Long") inTrade := false // Plot the Chande Momentum Oscillator plot(cmo, title="Chande Momentum Oscillator", color=color.blue) hline(-50, "Buy Threshold", color=color.green) hline(50, "Sell Threshold", color=color.red)