Strategi henti rugi dan ambil untung mengikut trend


Tarikh penciptaan: 2024-01-24 14:17:28 Akhirnya diubah suai: 2024-01-24 14:17:28
Salin: 1 Bilangan klik: 661
1
fokus pada
1617
Pengikut

Strategi henti rugi dan ambil untung mengikut trend

Gambaran keseluruhan

Ini adalah strategi pengesanan trend berdasarkan indikator Brin dan menggunakan indikator ATR untuk menetapkan stop loss. Strategi ini menilai trend pasaran terlebih dahulu, pada garis IRONMENT, dan menetapkan stop loss ketika posisi kosong.

Prinsip Strategi

  1. Hitung laluan atas dan bawah di Brin Belt.
  2. Menentukan sama ada harga penutupan adalah lebih tinggi daripada tren atas atau lebih rendah daripada tren bawah, jika demikian, ia akan dianggap sebagai pasaran yang sedang tren, dan sebagai pasaran bertopeng dan kosong.
  3. Sekiranya ia adalah pasaran yang sedang tren, garis persekitaran akan dikira. Garis persekitaran adalah berdasarkan harga terendah tolak nilai ATR (pasaran bertingkat) atau harga tertinggi ditambah nilai ATR (pasaran kosong).
  4. Jika bukan pasaran trend, garis persekitaran kekal sama dengan garis persekitaran K sebelumnya.
  5. Bandingkan garis ENVIRONMENT, untuk menentukan arah trend. Jika kenaikan adalah lebih banyak, penurunan adalah kosong.
  6. Apabila garis ENVIRONMENT bertukar arah, ia menghasilkan isyarat beli/jual.
  7. Set Stop Loss Stop: jarak stop loss tetap 100 kali harga masuk; jarak stop loss terapung 1.1 kali harga masuk (multihead) atau 0.9 kali (head kosong).

Analisis kelebihan

  1. Ia juga boleh digunakan untuk mengkaji trend pasaran dan mengurangkan penipuan.
  2. Tetapkan garis ENVIRONMENT untuk mengelakkan terikat.
  3. Penetapan stop loss adalah munasabah dan dapat mengawal risiko sambil memastikan keuntungan.

Analisis risiko

  1. Tetapan parameter yang tidak betul boleh menyebabkan peluang perdagangan yang hilang.
  2. Indikator Brin Belt mempunyai kebarangkalian yang lebih tinggi untuk membuat keputusan yang salah dalam keadaan gegaran.
  3. Stop loss yang terlalu dekat boleh menyebabkan penyingkiran.

Arah pengoptimuman

  1. Parameter yang dioptimumkan untuk menjadikan ia lebih sesuai untuk pelbagai jenis.
  2. Mengoptimumkan cara mengira garis ENVIRONMENT, seperti memperkenalkan petunjuk lain.
  3. Uji dan optimumkan tetapan parameter penghentian kerosakan.

ringkaskan

Ini adalah strategi untuk menilai trend dengan Brinband, menggunakan garis ENVIRONMENT untuk menetapkan stop loss. Kelebihan utamanya adalah bahawa penilaian trend jelas, penyetempatan stop loss adalah munasabah, dan risiko dapat dikawal dengan berkesan. Risiko utama adalah kesalahan dalam penilaian trend Brinband dan titik stop loss terlalu dekat. Arah pengoptimuman masa depan termasuk pengoptimuman parameter, pengoptimuman cara mengira garis ENVIRONMENT dan pengoptimuman stop loss, dan sebagainya.

Kod sumber strategi
/*backtest
start: 2023-12-01 00:00:00
end: 2023-12-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © zhuenrong

// © Dreadblitz
//@version=4
strategy(shorttitle="FLI", title="Follow Line Indicator", overlay=true)
// 
BBperiod      = input(defval = 21,     title = "BB Period",    type = input.integer, minval = 1)
BBdeviations  = input(defval = 1.00,     title = "BB Deviations",    type = input.float, minval = 0.1, step=0.05)
UseATRfilter  = input(defval = true, title = "ATR Filter",  type = input.bool)
ATRperiod     = input(defval = 5,     title = "ATR Period",    type = input.integer, minval = 1)
hl            = input(defval = false, title = "Hide Labels",  type = input.bool)
//
BBUpper=sma (close,BBperiod)+stdev(close, BBperiod)*BBdeviations
BBLower=sma (close,BBperiod)-stdev(close, BBperiod)*BBdeviations
//
TrendLine = 0.0
iTrend = 0.0
buy = 0.0
sell = 0.0
//
BBSignal = close>BBUpper? 1 : close<BBLower? -1 : 0
// 
if BBSignal == 1 and UseATRfilter == 1
    TrendLine:=low-atr(ATRperiod)
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 1
    TrendLine:=high+atr(ATRperiod)
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 1
    TrendLine:=TrendLine[1]
//
if BBSignal == 1 and UseATRfilter == 0
    TrendLine:=low
    if TrendLine<TrendLine[1] 
        TrendLine:=TrendLine[1]
if BBSignal == -1 and UseATRfilter == 0
    TrendLine:=high
    if TrendLine>TrendLine[1]
        TrendLine:=TrendLine[1]
if BBSignal == 0 and UseATRfilter == 0
    TrendLine:=TrendLine[1]
//
iTrend:=iTrend[1]
if TrendLine>TrendLine[1] 
    iTrend:=1
if TrendLine<TrendLine[1] 
    iTrend:=-1
//
buy:=iTrend[1]==-1 and iTrend==1 ? 1 : na
sell:=iTrend[1]==1 and iTrend==-1? 1 : na
//
plot(TrendLine, color=iTrend > 0?color.blue:color.red ,style=plot.style_line,linewidth=2,transp=0,title="Trend Line") 
plotshape(buy == 1 and hl == false? TrendLine-atr(8) :na, text='💣', style= shape.labelup, location=location.absolute, color=color.blue, textcolor=color.white, offset=0, transp=0,size=size.auto)
plotshape(sell == 1 and hl == false ?TrendLine+atr(8):na, text='🔨', style=shape.labeldown, location=location.absolute, color=color.red, textcolor=color.white, offset=0, transp=0,size=size.auto)
//
alertcondition(sell == 1 ,title="Sell",message="Sell")
alertcondition(buy == 1 ,title="Buy",message="Buy")
alertcondition(buy == 1 or sell == 1 ,title="Buy/Sell",message="Buy/Sell")
if (buy==1)
    strategy.entry("Buy", strategy.long)
if (sell==1)
    strategy.entry("Sell", strategy.short)
// === Stop LOSS ===

if strategy.position_size>0
    strategy.exit("Stop Loss/Profit Long","Buy", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*1.1)
if strategy.position_size<0
    strategy.exit("Stop Loss/Profit Short","Sell", stop=strategy.position_avg_price*100, limit=strategy.position_avg_price*0.9)