Strategi Tangkap Trend

MA SMA
Tarikh penciptaan: 2024-04-26 11:48:28 Akhirnya diubah suai: 2024-04-26 11:48:28
Salin: 5 Bilangan klik: 753
1
fokus pada
1617
Pengikut

Strategi Tangkap Trend

Gambaran keseluruhan

Strategi menangkap trend adalah strategi yang menggunakan kaedah unik untuk mengesan pembentukan trend dan membuka kedudukan ke arah trend. Ia mendapat peratusan yang dikenali sebagai “batas” dengan mengira perbezaan antara harga tertinggi dan terendah dalam julat tertentu dengan jumlah keseluruhan panjang K dalam julat tersebut.

Prinsip Strategi

  1. Hitung perbezaan antara harga tertinggi dan terendah dalam julat tertentu, dan jumlah panjang semua garis K dalam julat tersebut.
  2. Bahagikan perbezaan dengan jumlah panjang K, kemudian kalikan dengan 100 untuk mendapatkan nilai peratusan, yang dipanggil “batas”.
  3. Apabila had melebihi nilai yang ditetapkan, dan bergerak rata-rata ke atas, buka lebih banyak; apabila had melebihi nilai yang ditetapkan, dan bergerak rata-rata ke bawah, buka kosong.
  4. Selepas membuka kedudukan, apabila harga mencapai titik henti, sebahagian daripada kedudukan akan dihapuskan, dan baki kedudukan akan bergerak ke titik henti.
  5. Apabila purata bergerak melintasi ke bawah, rata-rata lebih banyak; apabila purata bergerak melintasi ke atas, rata-rata kosong.

Kelebihan Strategik

  1. Strategi ini menggunakan kaedah yang unik untuk mengesan pembentukan trend, menilai kekuatan trend dengan mengira nilai had, membantu membuka kedudukan pada awal trend.
  2. Strategi untuk mengawal risiko dengan menghapuskan sebahagian daripada kedudukan dan memindahkan titik henti sisa kedudukan selepas kedudukan dibuka.
  3. Strategi menggunakan purata bergerak ke atas dan ke bawah untuk menentukan akhir trend, membantu menyelesaikan kedudukan tepat pada masanya.

Risiko Strategik

  1. Strategi ini adalah untuk mengambil posisi pada awal trend dan mungkin menyebabkan kerugian jika trend tidak berterusan.
  2. Strategi menggunakan stop loss dan stop loss yang tetap, yang mungkin tidak fleksibel dalam beberapa kes.
  3. Strategi ini hanya menggunakan purata bergerak untuk menilai trend dan mungkin terlepas beberapa peluang trend.

Arah pengoptimuman strategi

  1. Anda boleh mempertimbangkan untuk menggunakan petunjuk lain untuk membantu menilai trend, seperti MACD, RSI dan lain-lain, untuk meningkatkan ketepatan kedudukan.
  2. Anda boleh menyesuaikan stop loss dan stop loss secara dinamik mengikut turun naik pasaran untuk mengawal risiko dengan lebih baik.
  3. Anda boleh pertimbangkan untuk membuka kedudukan selepas trend disahkan untuk mengurangkan risiko pada awal trend.

ringkaskan

Strategi menangkap trend menggunakan kaedah unik untuk mengesan pembentukan trend dan membuka kedudukan di arah trend. Ia menilai kekuatan trend dengan mengira nilai had dan memutuskan berakhirnya trend dengan menggunakan pergerakan rata-rata. Strategi mengawal risiko dengan menebus sebahagian kedudukan dan bergerak berhenti selepas membuka kedudukan.

Kod sumber 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))