Strategi ini menghasilkan isyarat dagangan dengan mengira garisan Heikin-Ashi, harga garisan K, dan MACD, untuk mencapai strategi dagangan kuantitatif yang menjejaki trend garisan panjang dan tengah.
Hitung harga pembukaan dan penutupan Heikin-Ashi, harga tertinggi dan harga terendah, melukis garisan Heikin-Ashi, meluruskan pergerakan harga K.
Tetapkan parameter MACD: Panjang garisan pantas 12, panjang garisan perlahan 26, panjang garisan isyarat 9.
Hitung garis perlahan DEA, garis cepat DEA dan perbezaan MACD. Gambarkan grafik MACD.
Apabila MACD di atas 0, buat lebih banyak; apabila MACD di bawah 0, buat kosong.
Tetapkan penapis tahun, bulan, dan hari untuk berdagang hanya dalam tempoh masa yang ditetapkan.
Heikin-Ashi Filter adalah kaedah yang berkesan untuk menyaring bunyi pasaran dan mengenal pasti trend.
MACD boleh menyediakan titik jual beli trend yang lebih jelas.
Gabungan Heikin-Ashi dan MACD dapat meningkatkan kualiti tempat membeli dan menjual dan meningkatkan keuntungan perdagangan.
Tetapkan syarat penapisan masa untuk menentukan masa perdagangan terbaik berdasarkan data sejarah dan meningkatkan kadar keuntungan.
Jika trend berbalik, ia boleh menyebabkan kerugian besar.
Parameter MACD yang tidak betul boleh menghasilkan terlalu banyak isyarat tidak sah.
Syarat penapisan masa terlalu ketat dan mungkin menyebabkan peluang perdagangan yang lebih baik terlepas.
Kaedah pencegahan:
Tetapkan Stop Loss Stop Stop untuk mengawal kerugian tunggal.
Mengoptimumkan parameter MACD untuk menentukan kombinasi parameter terbaik.
Kaedah ini boleh dikombinasikan dengan petunjuk lain untuk menilai trend tempatan.
Uji kombinasi parameter yang berbeza untuk mencari parameter yang optimum.
Menambah mekanisme hentikan kerugian, seperti meninggalkan hentikan kerugian / menjejaki hentikan kerugian.
Ini adalah satu titik balik dalam pengkajian EMA, KDJ dan sebagainya.
Tambahkan penunjuk tenaga, elakkan perbezaan tenaga.
Strategi ini mencapai strategi kuantitatif yang berdasarkan trend-tracking dengan mengira harga rataan Heikin-Ashi, dengan menggunakan MACD Tradingview untuk menentukan arah trend dan titik masuk. Berbanding dengan strategi MACD biasa, ia melonggarkan kurva harga, menapis sebahagian bunyi, dan dapat menentukan arah trend dengan lebih jelas. Dengan pengoptimuman parameter, mekanisme stop-loss, dan kombinasi indikator lain, anda dapat meningkatkan lagi kestabilan dan keuntungan strategi.
/*backtest
start: 2023-11-18 00:00:00
end: 2023-12-18 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
strategy("MACD ASHI BARS .v1 ", overlay=false,default_qty_type = strategy.percent_of_equity, default_qty_value = 100,commission_type=strategy.commission.percent,commission_value=0.1,slippage=1)
// Calculation HA Values
haopen = 0.0
haclose = (open + high + low + close) / 4
haopen := na(haopen[1]) ? (open + close) / 2 : (haopen[1] + haclose[1]) / 2
hahigh = max(high, max(haopen, haclose))
halow = min(low, min(haopen, haclose))
// HA colors
hacolor = haclose > haopen ? color.green : color.red
src=haclose
fastmacd = input(12,title='MACD Fast Line Length')
slowmacd = input(26,title='MACD Slow Line Length')
signalmacd = input(9,title='Signal Line Length')
macdslowline1 = sma(src,slowmacd)
macdslowline2 = sma(macdslowline1,slowmacd)
DEMAslow = ((2 * macdslowline1) - macdslowline2 )
macdfastline1 = sma(src,fastmacd)
macdfastline2 = sma(macdfastline1,fastmacd)
DEMAfast = ((2 * macdfastline1) - macdfastline2)
MACDLine = (DEMAfast - DEMAslow)
SignalLine = sma(MACDLine, signalmacd)
delta = MACDLine-SignalLine
swap1 = delta>0?color.green:color.red
plot(delta,color=swap1,style=plot.style_columns,title='Histo',histbase=0,transp=20)
p1 = plot(MACDLine,color=color.blue,title='MACD Line')
p2 = plot(SignalLine,color=color.red,title='Signal')
fill(p1, p2, color=color.blue)
hline(0)
yearfrom = input(2020)
yearuntil =input(2042)
monthfrom =input(1)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( crossover(delta,0) and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil)
strategy.entry("MMAL", strategy.long, stop=close, oca_name="TREND", comment="AL")
else
strategy.cancel(id="MMAL")
if ( crossunder(delta,0) and year >= yearfrom and year <= yearuntil and month>=monthfrom and month <=monthuntil and dayofmonth>=dayfrom and dayofmonth < dayuntil )
strategy.entry("MMSAT", strategy.short,stop=close, oca_name="TREND", comment="SAT")
else
strategy.cancel(id="MMSAT")