
Strategi trend-following adalah strategi perdagangan yang melacak tren berdasarkan moving average. Strategi ini menggunakan persilangan indeks moving average (EMA) dan oscillating moving average (HMA) untuk menentukan arah tren pasar dan menghasilkan sinyal beli dan jual sesuai. Strategi ini berlaku untuk perdagangan tren garis tengah pendek yang bertujuan untuk melacak tren harga dalam periode yang lebih lama, bukan getaran jangka pendek.
Strategi ini menggunakan moving average dengan dua parameter yang berbeda: EMA dengan periode yang lebih pendek dan HMA dengan periode yang lebih panjang. EMA lebih cepat merespon perubahan harga untuk menentukan tren jangka pendek; HMA lebih lambat merespon perubahan harga untuk menentukan arah tren jangka panjang.
Ketika EMA pendek di atas HMA panjang, dianggap sebagai harga masuk ke tren naik, strategi ini akan membeli pada harga pasar pada saat pembukaan garis K berikutnya; Ketika EMA pendek di bawah HMA panjang, dianggap sebagai harga masuk ke tren turun, strategi ini akan dijual pada harga pasar pada saat pembukaan garis K berikutnya.
Untuk mengoptimalkan waktu masuk ke pasar, strategi menambahkan opsi berdasarkan Heikin-Ashi. Setelah mengaktifkan opsi ini, sinyal perdagangan strategi akan didasarkan pada garis Heikin-Ashi, bukan garis K asli. Karena garis Heikin-Ashi dapat menyaring garis K asli dari osilator, ini membantu mengurangi sinyal palsu.
Strategi ini juga menambahkan pengaturan stop loss. Strategi ini akan berhenti pada harga pasar ketika kerugian kepemilikan mencapai stop loss default. Langkah ini membatasi kerugian maksimum dari satu transaksi.
Strategi ini memiliki keuntungan sebagai berikut:
Menggunakan EMA dan HMA untuk menilai arah tren, Anda dapat memanfaatkan keuntungan dari rata-rata periode yang berbeda untuk meningkatkan akurasi penilaian.
Berdasarkan tren perdagangan, tidak dengan sedikit getaran posisi terbalik, dapat mengurangi jumlah transaksi yang tidak perlu.
Opsi Heikin-Ashi dapat memfilter sinyal palsu dan mengoptimalkan waktu masuk ke pasar.
Dengan strategi mobile stop loss, Anda dapat secara efektif mengontrol kerugian maksimum dalam satu transaksi.
Parameter kebijakan dapat disesuaikan, pengguna dapat menyesuaikan sesuai dengan varietas dan siklus yang berbeda, meningkatkan adaptasi.
Strategi ini juga memiliki risiko sebagai berikut:
Sebagai strategi trend-following, kinerja pasar yang lebih buruk dalam konsolidasi.
Ini adalah salah satu faktor yang menyebabkan penurunan harga minyak mentah di Indonesia, terutama di negara-negara maju.
Stop loss yang tidak tepat dapat menyebabkan stop loss yang tidak perlu dan dapat menyebabkan kerugian yang lebih besar.
Pengaturan parameter yang tidak tepat juga dapat menyebabkan transaksi yang sering atau tidak bergerak sama sekali.
Pengaturan siklus EMA dan HMA perlu dioptimalkan untuk varietas dan siklus yang berbeda.
Heikin-Ashi tidak dapat sepenuhnya menyaring risiko penembusan palsu.
Strategi ini dapat dioptimalkan dengan:
Menggunakan lebih banyak kombinasi indikator untuk menilai tren, seperti MACD, KDJ, dan lain-lain, untuk meningkatkan akurasi penilaian.
Menambahkan lebih banyak kriteria penyaringan, seperti volume transaksi, ATR, dan indikator lainnya, untuk mengurangi probabilitas penembusan palsu.
Optimalkan parameter moving average agar lebih sesuai dengan varietas dan siklus perdagangan.
Optimalkan pengaturan stop loss untuk membuat stop loss lebih masuk akal dan menghindari terlalu longgar atau terlalu keras.
Pertimbangkan untuk menyertakan fitur perlindungan keuntungan, seperti penghentian bergerak, penghentian parsial, dan lain-lain, untuk mengunci keuntungan.
Uji coba berbagai metode alternatif untuk menghitung biaya kepemilikan saham, untuk mengoptimalkan penghitungan biaya kepemilikan saham.
Strategi pelacakan tren didasarkan pada penentuan arah tren yang dipisahkan oleh rata-rata bergerak, menggunakan Heikin-Ashi dan stop loss bergerak untuk mengoptimalkan kinerja strategi. Strategi ini cocok untuk melacak tren garis tengah panjang, yang dapat ditingkatkan lebih lanjut dengan optimasi parameter dan ekstensi fungsi. Namun, pengguna perlu menyadari adanya risiko reversal dan stop loss, yang perlu diuji parameter untuk varietas dan periode.
/*backtest
start: 2022-10-30 00:00:00
end: 2023-11-05 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("𝐉𝐔𝐈𝐂𝐘 𝐓𝐑𝐄𝐍𝐃", overlay=true, initial_capital=1000, default_qty_type=strategy.percent_of_equity, default_qty_value=15)
//Heikin Ashi Option
ha = input(true, title = "Heikin Ashi Source")
src = ha ? request.security(ticker.heikinashi(syminfo.tickerid), timeframe.period, close, barmerge.gaps_off, barmerge.lookahead_off) : close
usestoploss = input(true, title="Stop Loss")
//EMA
len1 = input.int(9, minval=1, title="EMA Length")
ema = ta.ema(src, len1)
emaline = plot(ema, title="EMA", color=color.blue, linewidth=2)
//HMA
len2 = input.int(69, minval=1, title="HMA Length")
hma = ta.wma(2*ta.wma(src, len2/2)-ta.wma(src, len2), math.floor(math.sqrt(len2)))
hmaline = plot(hma, title="HMA", color=color.purple, linewidth=2)
fillcolor = hma < ema ? color.blue : color.purple
fill(emaline, hmaline, title="EMA Fill", color=color.new(fillcolor, 80), editable=true)
//Stop Loss Conditions
stoplosspercent = input.float(title="Stop Loss (%)", defval=-6.5, minval=-50, maxval=0, step=.1) / 100
stoploss = strategy.position_avg_price * (1 + stoplosspercent)
stop = stoploss > close and stoploss[1] < close[1] and strategy.position_size > 0 and usestoploss
//Buy Sell Conditions
buy = hma < ema
sell = hma > ema
//Trades and Alerts
if buy
strategy.entry("Long Position", strategy.long, comment="BUY")
// alert("{\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if sell and strategy.openprofit > 0
strategy.close("Long Position", comment="SELL")
// alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
if stop
strategy.close("Long Position", comment="STOP")
// alert("{\n\"action\": \"close_at_market_price\",\n\"message_type\": \"bot\",\n\"bot_id\": 6477543,\n\"email_token\": \"9b842a1b-9cb4-48ac-9ed4-524c98557e5f\",\n\"delay_seconds\": 0\n}", alert.freq_once_per_bar)
//Alternate Labels
var pos = 0
if buy and pos <= 0
pos := 1
if sell and pos >= 0
pos := -1
buylabel = pos == 1 and (pos != 1)[1]
selllabel = pos == -1 and (pos != -1)[1]
//Plot Labels
plotshape(buylabel, style=shape.labelup, location=location.belowbar, color=color.blue, text="BUY", textcolor=color.white, size=size.tiny)
plotshape(selllabel, style=shape.labeldown, location=location.abovebar, color=color.purple, text="SELL", textcolor=color.white, size=size.tiny)
plotshape(stop, style=shape.labeldown, location=location.abovebar, color=color.yellow, text="STOP", textcolor=color.white, size=size.tiny)