Trend Mengikut Strategi

Penulis:ChaoZhang, Tarikh: 2023-11-06 10:34:19
Tag:

img

Ringkasan

Strategi trend berikut adalah strategi perdagangan trend berdasarkan persimpangan purata bergerak. Ia menggunakan persimpangan purata bergerak eksponensial (EMA) dan purata bergerak Hull (HMA) untuk menentukan arah trend dan menghasilkan isyarat perdagangan dengan sewajarnya. Strategi ini bertujuan untuk mengikuti trend harga jangka panjang dan bukan goyangan jangka pendek.

Logika Strategi

Strategi ini menggunakan dua purata bergerak dengan parameter yang berbeza: EMA yang lebih cepat dan HMA yang lebih perlahan. EMA bertindak balas lebih cepat terhadap perubahan harga dan digunakan untuk menilai trend jangka pendek, sementara HMA bertindak balas lebih perlahan dan mengesan arah trend jangka panjang.

Apabila EMA yang lebih cepat melintasi di atas HMA yang lebih perlahan, ia dilihat sebagai permulaan trend menaik, dan strategi akan meletakkan pesanan panjang pada harga pasaran pada bar terbuka seterusnya.

Untuk mengoptimumkan masa kemasukan, strategi ini menggabungkan pilihan Heikin-Ashi. Apabila diaktifkan, isyarat beli dan jual akan berdasarkan bar Heikin-Ashi dan bukannya lilin biasa.

Strategi ini juga menggunakan tetapan stop loss. Apabila kerugian kedudukan mencapai peratusan stop loss yang telah ditetapkan, kedudukan akan ditutup pada harga pasaran, mengehadkan kerugian maksimum setiap perdagangan.

Analisis Kelebihan

Kelebihan strategi ini termasuk:

  1. Menggunakan persilangan EMA dan HMA untuk menentukan trend boleh mengambil kesempatan daripada purata bergerak tempoh yang berbeza dan meningkatkan ketepatan.

  2. Perdagangan berdasarkan trend mengelakkan bergoyang pada goyangan kecil dan mengurangkan dagangan yang tidak perlu.

  3. Pilihan Heikin-Ashi mengoptimumkan masa kemasukan dengan menapis isyarat palsu.

  4. Stop loss bergerak secara berkesan mengehadkan kerugian maksimum setiap perdagangan.

  5. Parameter yang boleh disesuaikan membolehkan pengoptimuman untuk produk dan jangka masa yang berbeza.

Analisis Risiko

Risiko strategi ini termasuk:

  1. Sebagai sistem yang mengikuti trend, ia berprestasi rendah semasa pasaran yang terhad.

  2. Ia boleh menimbulkan kerugian besar apabila perubahan trend berlaku.

  3. Tetapan stop loss yang tidak betul boleh menyebabkan berhenti yang tidak perlu atau memperbesar kerugian.

  4. Penyesuaian parameter yang buruk boleh menyebabkan overtrading atau tidak bertindak.

  5. Tempoh EMA dan HMA memerlukan pengoptimuman untuk produk dan jangka masa yang berbeza.

  6. Heikin-Ashi tidak boleh mengelakkan risiko pelarian palsu.

Arahan pengoptimuman

Strategi ini boleh ditingkatkan dari aspek berikut:

  1. Gunakan lebih banyak penunjuk seperti MACD, KDJ untuk meningkatkan ketepatan trend.

  2. Tambah lebih banyak penapis seperti kelantangan, ATR untuk mengurangkan hentian palsu.

  3. Mengoptimumkan parameter purata bergerak berdasarkan produk dan jangka masa.

  4. Sempurnakan peratusan stop loss untuk tingkah laku stop loss yang lebih baik.

  5. Pertimbangkan mengambil keuntungan ciri-ciri seperti bergerak berhenti keuntungan dan mengambil keuntungan separa.

  6. Uji cara alternatif untuk mengira asas kos kedudukan untuk pengoptimuman.

Ringkasan

Strategi trend berikut mengenal pasti trend menggunakan crossover purata bergerak, dan mengoptimumkan prestasi melalui Heikin-Ashi dan stop loss bergerak. Ia sesuai untuk perdagangan trend jangka menengah hingga panjang, dan boleh ditingkatkan lagi melalui penyesuaian parameter dan pengembangan ciri. Tetapi pengguna harus menyedari risiko pembalikan dan stop loss yang tidak betul. Secara keseluruhan ia menyediakan kerangka kerja universal dan disesuaikan untuk perdagangan trend yang berfungsi di pelbagai produk dan jangka masa. Ujian parameter yang betul diperlukan ketika menerapkannya.


/*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)


Lebih lanjut