
Strategi ini adalah sistem perdagangan pelacakan tren yang didasarkan pada Indikator Volatilitas Dinamis Chad (CMO). Strategi ini mencari peluang beli di zona oversold dan peluang jual di zona oversold dengan menggunakan perhitungan dan analisis dinamika harga, sekaligus untuk mengelola risiko. Metode ini dapat menangkap peluang untuk membalikkan harga dan menghindari perdagangan yang sering terjadi di pasar yang bergolak.
Inti dari strategi ini adalah dengan menggunakan indikator CMO untuk mengukur dinamika pasar. Dengan menghitung perbedaan antara kenaikan dan penurunan dengan perbandingan total, CMO menghasilkan nilai indikator yang berfluktuasi antara -100 dan 100. Ketika CMO di bawah 50, yang menunjukkan bahwa pasar berada dalam keadaan oversold, sistem akan mengeluarkan beberapa sinyal.
Ini adalah strategi pelacakan tren berbasis momentum untuk menangkap peluang overbought dan oversold di pasar melalui indikator CMO. Strategi ini dirancang dengan akal sehat, dengan aturan perdagangan yang jelas dan mekanisme kontrol risiko. Meskipun ada beberapa risiko yang melekat, dengan pengoptimalan, stabilitas dan profitabilitas strategi dapat ditingkatkan lebih lanjut.
/*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)