
Strategi ini menggunakan penunjuk saluran gelombang dan penunjuk aliran wang yang digabungkan untuk mengenal pasti arah trend dan mengikuti trend. Strategi ini berjalan pada kitaran masa 15 minit, menilai arah trend harga melalui saluran gelombang, dan kemudian menggunakan penunjuk aliran wang untuk pengesahan trend, untuk mengikuti trend yang melampaui garis pendek.
Indeks saluran gelombang (WaveTrend) dapat mengenal pasti arah trend harga. Ia terdiri daripada garis purata saluran, harga purata saluran dan indeks saluran. Garis purata saluran adalah purata bergerak indeks harga, yang mencerminkan trend harga.
Penunjuk aliran wang tunai (CMF) boleh menilai aliran masuk dan keluar wang, mengesahkan trend. Penunjuk ini berdasarkan kepada pengumpulan / garis pengeluaran yang disesuaikan dengan jumlah urus niaga, mencerminkan kekuatan yang berbeza antara pembeli dan penjual. Nilai di sekitar 0 menunjukkan aliran masuk dan keluar wang yang seimbang; kurang dari 0 menunjukkan aliran keluar wang, lebih tinggi daripada 0 menunjukkan aliran masuk wang.
Strategi ini berjalan pada kitaran 15 minit, dengan menentukan arah trend harga melalui indikator saluran gelombang, kemudian menggunakan indikator aliran dana untuk mengesahkan, sehingga trend dapat dilacak. Khususnya, jika indikator saluran saluran saluran gelombang lebih rendah daripada -60 dan indikator aliran dana kurang dari -0.2, maka lebih banyak; jika indikator saluran saluran saluran gelombang lebih tinggi daripada 60 dan indikator aliran dana lebih besar daripada 0.2, maka posisi kosong kosong.
Penyelesaian risiko:
Strategi ini menggunakan indikator saluran gelombang untuk menentukan arah trend, dan indikator aliran wang untuk pengesahan, untuk mencapai operasi pengesanan trend yang melampaui garis pendek. Kelebihan strategi adalah bahawa portofolio indikator masuk akal, trend dapat dijejaki dengan berkesan, dan operasi kitaran 15 minit lebih sesuai untuk operasi garis pendek. Tetapi ada juga risiko, seperti isyarat indikator tidak tepat, terlalu pendek memegang kedudukan.
/*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))