
Strategi ini menggunakan indikator saluran gelombang dan indikator aliran dana yang dikombinasikan untuk mengidentifikasi arah tren dan melakukan pelacakan tren. Strategi ini berjalan pada siklus waktu 15 menit, menilai arah tren harga melalui saluran gelombang, dan kemudian menggunakan indikator aliran dana untuk mengkonfirmasi tren, untuk mencapai pelacakan tren yang melampaui garis pendek.
Indikator WaveTrend dapat secara efektif mengidentifikasi arah tren harga. Ini terdiri dari saluran rata-rata, saluran rata-rata dan saluran indeks. Saluran rata-rata adalah rata-rata bergerak indeks harga, yang mencerminkan tren harga; Saluran rata-rata adalah rata-rata bergerak saluran rata-rata, yang digunakan untuk menentukan saluran rata-rata; Indeks saluran mencerminkan seberapa jauh harga dari saluran rata-rata, dan memberikan sinyal overbought dan oversold.
Indikator arus kas (CMF) dapat menilai arus masuk dan keluar dana, mengkonfirmasi tren. Indikator ini didasarkan pada akumulasi / garis distribusi setelah penyesuaian volume transaksi, yang mencerminkan kekuatan antara pembeli dan penjual. Nilai di dekat 0 menunjukkan keseimbangan arus masuk dan keluar dana; di bawah 0 menunjukkan arus keluar dana, di atas 0 menunjukkan arus masuk dana.
Strategi ini berjalan pada siklus 15 menit, dengan indikator saluran gelombang untuk menentukan arah tren harga, kemudian menggunakan indikator aliran dana untuk mengkonfirmasi, sehingga memungkinkan pelacakan tren. Secara khusus, jika indikator saluran saluran saluran indikator lebih rendah dari -60 dan indikator aliran dana kurang dari -0.2, maka lakukan over; jika indikator saluran saluran indikator lebih tinggi dari 60 dan indikator aliran dana lebih besar dari 0.2, maka lakukan posisi kosong.
Solusi untuk Mengatasi Risiko:
Strategi ini menggunakan indikator saluran gelombang untuk menentukan arah tren, dan indikator aliran dana untuk mengkonfirmasi, untuk mencapai operasi pelacakan tren yang melampaui garis pendek. Keuntungan dari strategi ini adalah portofolio indikator yang masuk akal, dapat melacak tren secara efektif, dan siklus 15 menit lebih cocok untuk operasi garis pendek. Namun, ada juga risiko, seperti sinyal indikator yang tidak akurat, waktu memegang posisi yang terlalu pendek, dll.
/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)
//Chaikin Money Flow
len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")
trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p = if p
50*cmf+50
else
cmf
b = p ? 50 : 0
//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
ap = hlc3
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
wt1 = tci
wt2 = sma(wt1,4)
//
longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
strategy.entry("My Long Entry Id", strategy.long)
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
strategy.entry("My Short Entry Id", strategy.short)
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))