Strategi Penangkap Trend

Penulis:ChaoZhang, Tarikh: 2024-04-26 11:48:28
Tag:MASMA

img

Ringkasan

Strategi Penangkap Trend adalah strategi yang mengesan pembentukan trend menggunakan kaedahnya sendiri yang unik dan membuka kedudukan ke arah trend. Ia mengira nilai peratusan yang dipanggil limit dengan membahagikan perbezaan antara harga tertinggi dan terendah dalam julat tertentu dengan jumlah panjang lilin dalam julat itu. Semakin dekat nilai ini kepada 100, semakin kuat trend. Apabila nilai ini melebihi had yang ditetapkan dan purata bergerak meningkat, strategi membuka kedudukan panjang; apabila nilai ini melebihi had yang ditetapkan dan purata bergerak jatuh, strategi membuka kedudukan pendek. Selepas membuka kedudukan, strategi menutup sebahagian kedudukan apabila harga mencapai tahap tertentu dan memindahkan kedudukan yang tersisa ke titik di mana ia percaya trend itu berakhir.

Prinsip Strategi

  1. Hitung perbezaan antara harga tertinggi dan terendah dalam julat tertentu, serta jumlah panjang semua lilin dalam julat itu.
  2. Bahagikan perbezaan dengan jumlah panjang lilin dan kalikan dengan 100 untuk mendapatkan nilai peratusan yang dipanggil had.
  3. Apabila had melebihi nilai yang ditetapkan dan purata bergerak meningkat, buka kedudukan panjang; apabila had melebihi nilai yang ditetapkan dan purata bergerak jatuh, buka kedudukan pendek.
  4. Selepas membuka kedudukan, tutup sebahagian daripada kedudukan apabila harga mencapai tahap mengambil keuntungan dan pindahkan kedudukan yang tersisa ke tahap hentian kerugian.
  5. Apabila purata bergerak melintasi ke bawah, tutup kedudukan panjang; apabila purata bergerak melintasi ke atas, tutup kedudukan pendek.

Kelebihan Strategi

  1. Strategi ini menggunakan kaedah yang unik untuk mengesan pembentukan trend. Dengan mengira nilai had untuk menentukan kekuatan trend, ia membantu membuka kedudukan pada permulaan trend.
  2. Selepas membuka kedudukan, strategi mengawal risiko dengan menutup sebahagian daripada kedudukan dan memindahkan tahap stop loss kedudukan yang tersisa.
  3. Strategi ini menggunakan persimpangan ke atas dan ke bawah purata bergerak untuk menentukan akhir trend, yang membantu menutup kedudukan dengan tepat pada masanya.

Risiko Strategi

  1. Strategi ini membuka kedudukan pada permulaan trend. Jika trend tidak dapat diselenggarakan, ia boleh menyebabkan kerugian.
  2. Strategi ini menggunakan tahap mengambil keuntungan dan berhenti kerugian tetap, yang mungkin tidak cukup fleksibel dalam beberapa kes.
  3. Strategi hanya menggunakan purata bergerak untuk menentukan trend, yang mungkin terlepas beberapa peluang trend.

Arah Pengoptimuman Strategi

  1. Pertimbangkan untuk menggunakan penunjuk lain seperti MACD dan RSI untuk membantu menentukan trend dan meningkatkan ketepatan kedudukan pembukaan.
  2. Sesuaikan secara dinamik tahap mengambil keuntungan dan menghentikan kerugian berdasarkan turun naik pasaran untuk mengawal risiko dengan lebih baik.
  3. Pertimbangkan untuk membuka kedudukan hanya selepas trend disahkan untuk mengurangkan risiko pada permulaan trend.

Ringkasan

Strategi Penangkap Trend menggunakan kaedah yang unik untuk mengesan pembentukan trend dan membuka kedudukan ke arah trend. Ia mengira nilai had untuk menentukan kekuatan trend dan menggunakan penyeberangan purata bergerak untuk menentukan akhir trend. Strategi mengawal risiko dengan menutup sebahagian daripada kedudukan dan menggerakkan tahap stop loss selepas membuka kedudukan. Walau bagaimanapun, strategi mungkin menghadapi risiko tertentu ketika membuka kedudukan pada awal trend, menggunakan tahap keuntungan tetap dan stop loss mungkin tidak cukup fleksibel, dan hanya menggunakan purata bergerak untuk menentukan trend mungkin kehilangan beberapa peluang. Pada masa akan datang, kita boleh mempertimbangkan untuk memperkenalkan penunjuk lain, menyesuaikan secara dinamik tahap mengambil keuntungan dan stop loss, dan membuka kedudukan hanya selepas trend disahkan untuk mengoptimumkan strategi.


/*backtest
start: 2023-04-20 00:00:00
end: 2024-04-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © faytterro

//@version=5
strategy("Trend Catcher Strategy", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100)
len = input.int(10)
tp = input.float(2.5, step = 0.1)
sl = input.float(2.5, step = 0.1)
malen = input.int(5)
limit = input.int(50)
ma = ta.sma(close,malen)
sum = 0.0
for i = 0 to len-1
    sum := sum + high[i]-low[i]
frs = 100*(ta.highest(high,len)-ta.lowest(low,len))/sum
//hline(50)
//plot(frs, color = color.white)
l = ta.crossover(frs,limit) and ma>ma[1]
s = ta.crossover(frs,limit) and ma<ma[1]
cl = ma<ma[1]
cs = ma>ma[1]
qty_balance=input.int(50, maxval = 100)
if (l)
    strategy.entry("My Long Entry Id", strategy.long)
    strategy.exit("exit long", "My Long Entry Id", qty_percent = qty_balance, limit = close*(100+tp)/100, stop = close*(100-sl)/100)

if (s)
    strategy.entry("My Short Entry Id", strategy.short)
    strategy.exit("exit short", "My Short Entry Id", qty_percent = qty_balance, limit = close*(100-tp)/100, stop = close*(100+sl)/100)

if (cl)
    strategy.close("My Long Entry Id")
if (cs)
    strategy.close("My Short Entry Id")

l:= l and strategy.opentrades<1
s:= s and strategy.opentrades<1
transp = strategy.opentrades>0? 0 : 100
pma=plot(ma, color = ma<ma[1]? color.rgb(255, 82, 82, transp) : color.rgb(76, 175, 79, transp))
price = open/2+close/2
pprice = plot(price, display = display.none)
fill(pma,pprice, color = ma<ma[1]? color.rgb(255, 82, 82, transp+90) : color.rgb(76, 175, 79, transp+90))

spm=plot(ta.valuewhen(s,close,0), color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.white : color.rgb(1,1,1,100), offset=1)
lpm=plot(ta.valuewhen(l,close,0), color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.white : color.rgb(1,1,1,100), offset=1)

ltp=plot(ta.valuewhen(l,close,0)*(100+ta.valuewhen(l,tp,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
lsl=plot(ta.valuewhen(l,close,0)*(100-ta.valuewhen(l,sl,0))/100,  color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.red : color.rgb(1,1,1,100), offset=1)

stp=plot(ta.valuewhen(s,close,0)*(100-ta.valuewhen(s,tp,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.green : color.rgb(1,1,1,100), offset=1)
ssl=plot(ta.valuewhen(s,close,0)*(100+ta.valuewhen(s,sl,0))/100, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.red : color.rgb(1,1,1,100), offset=1)
fill(stp,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(ssl,spm, color = (strategy.opentrades>0 and ma<ma[1] and ma[1]<ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))
fill(ltp,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(76, 175, 79, 90) : color.rgb(1,1,1,100))
fill(lsl,lpm, color = (strategy.opentrades>0 and ma>ma[1] and ma[1]>ma[2])? color.rgb(255, 82, 82, 90) : color.rgb(1,1,1,100))

Berkaitan

Lebih lanjut