Strategi Asas Super Trend


Tarikh penciptaan: 2023-10-11 15:14:54 Akhirnya diubah suai: 2023-10-11 15:14:54
Salin: 0 Bilangan klik: 907
1
fokus pada
1617
Pengikut

Gambaran keseluruhan

Strategi asas supertrend adalah strategi perdagangan algoritma yang boleh dipercayai dan menguntungkan berdasarkan tiga penunjuk yang kuat: penunjuk supertrend (ATR), indeks yang agak kuat (RSI) dan purata bergerak indeks (EMA). Strategi ini bertujuan untuk mengenal pasti arah dan kekuatan trend pasaran, memasuki pasaran pada titik masuk yang optimum, dan keluar dari pasaran apabila mencapai titik berhenti atau titik berhenti.

Prinsip Strategi

Strategi ini menggunakan indikator supertrend untuk menentukan sama ada harga berada dalam trend naik atau turun. Indikator supertrend berdasarkan purata gelombang sebenar dan satu faktor, naik apabila harga lebih tinggi daripada supertrend, turun apabila harga lebih rendah daripada supertrend.

Indeks kekuatan relatif digunakan untuk mengesan keadaan yang terlalu panas dan terlalu banyak membeli atau menjual. Apabila RSI lebih tinggi daripada 50, ia adalah pasaran yang kuat, sebaliknya lemah. RSI dapat menyaring kebocoran palsu.

Rata-rata bergerak indeks digunakan untuk menentukan arah trend jangka panjang. Apabila harga lebih tinggi daripada EMA, ia adalah tren naik, dan apabila ia lebih rendah, ia adalah tren turun. Ia boleh digunakan untuk mengesahkan arah perdagangan.

Isyarat perdagangan untuk strategi ini adalah seperti berikut:

Masuk dengan banyak mata: harga lebih tinggi daripada Super Trend dan RSI lebih tinggi daripada 50 dan harga lebih tinggi daripada EMA Permulaan berganda: harga ditutup di bawah supertrend atau stop loss atau stop loss

Kemasukan kosong: harga di bawah supertrend dan RSI di bawah 50 dan harga di bawah EMA
Keluar kosong: harga ditutup di atas trend super atau berhenti atau berhenti

Hentikan dan hentikan boleh ditetapkan sebagai peratusan harga masuk.

Analisis kelebihan

Strategi ini mempunyai kelebihan berikut:

  1. Menggunakan gabungan tiga penunjuk untuk menentukan arah trend

  2. Penunjuk Super Trend dapat menentukan dengan jelas trend naik dan turun

  3. RSI boleh disaring untuk mengelakkan terlampau beli dan terlampau jual

  4. EMA boleh digunakan untuk menentukan arah trend utama

  5. Isyarat strategi ringkas, jelas dan mudah dikendalikan

  6. Boleh menyesuaikan kitaran ATR, parameter RSI dan kitaran EMA untuk pengoptimuman

  7. Anda boleh menetapkan stop loss untuk mengawal risiko

  8. Anda boleh melakukan lebih banyak atau lebih sedikit untuk menyesuaikan diri dengan keadaan pasaran yang berbeza.

  9. Boleh digunakan dalam sebarang kitaran masa

Analisis risiko

Risiko utama strategi ini ialah:

  1. Indeks super trend akan mengalami kemunduran dan boleh menyebabkan kerugian apabila trend utama berbalik

  2. Stop loss yang ditetapkan terlalu kecil mungkin tidak dapat menangkap keadaan yang lebih besar

  3. EMA tidak dapat menentukan titik perubahan

  4. Tidak dapat menilai kemerosotan

  5. Terdapat beberapa risiko turun naik dan risiko perdagangan masa.

Penyelesaian:

  1. Kaedah ini juga boleh digunakan untuk menilai perubahan trend.

  2. Optimumkan parameter stop loss

  3. Kaedah ini juga boleh digunakan untuk menilai perubahan trend.

  4. Gabungan dengan penunjuk deviasi

  5. Pengurusan kedudukan yang betul

Arah pengoptimuman

Strategi ini boleh dioptimumkan dengan:

  1. Optimumkan parameter kitaran ATR untuk mengimbangi sensitiviti dan kestabilan

  2. Optimumkan parameter RSI untuk meningkatkan ketepatan

  3. Mengoptimumkan kitaran EMA untuk menyesuaikan diri dengan pasaran yang berbeza

  4. Menambah penyesuaian penentuan lain seperti MACD, KD dan sebagainya

  5. Peningkatan pengembalian keputusan daripada penunjuk

  6. Keputusan berbalik dengan teori gelombang

  7. Parameter pengoptimuman dinamik menggunakan algoritma seperti pembelajaran mesin

  8. Menambah algoritma penutupan yang lebih maju, seperti penutupan yang dijejaki, penutupan bergerak dan sebagainya

  9. Mengoptimumkan pengurusan kedudukan, menyesuaikan diri dengan pasaran yang berbeza

  10. Uji kombinasi keadaan masuk dan keluar yang lebih kompleks

ringkaskan

Strategi asas super trend mengintegrasikan super trend, RSI dan tiga indikator EMA, membentuk satu strategi pemantauan trend yang mudah dan praktikal. Ia dapat mengenal pasti arah trend dengan jelas, menyaring isyarat palsu, dan mengesahkan trend besar.

Kod sumber strategi
/*backtest
start: 2023-09-10 00:00:00
end: 2023-10-10 00:00:00
period: 2h
basePeriod: 15m
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/
// © JS_TechTrading

//@version=5
// strategy("Supertrend", overlay=true,default_qty_type =strategy.percent_of_equity,default_qty_value = 1,process_orders_on_close = false)

// group string////
var string group_text000="Choose Strategy"
var string group_text0="Supertrend Settings"
var string group_text0000="Ema Settings"
var string group_text00="Rsi Settings"
var string group_text1="Backtest Period"
var string group_text2="Trade Direction"
// var string group_text3="Quantity Settings"
var string group_text4="Sl/Tp Settings"
////////////////////
option_ch=input.string('Pullback',title = "Type Of Strategy",options =['Pullback','Simple'])

//atr period input supertrend 
atrPeriod = input(10, "ATR Length",group = group_text0)
factor = input.float(3.0, "Factor", step = 0.01,group=group_text0)

[supertrend, direction] = ta.supertrend(factor, atrPeriod)

bodyMiddle = plot((open + close) / 2, display=display.none)
upTrend = plot(direction < 0 ? supertrend : na, "Up Trend", color = color.green, style=plot.style_linebr)
downTrend = plot(direction < 0? na : supertrend, "Down Trend", color = color.red, style=plot.style_linebr)

fill(bodyMiddle, upTrend, color.new(color.green, 90), fillgaps=false)
fill(bodyMiddle, downTrend, color.new(color.red, 90), fillgaps=false)

long=direction < 0 ? supertrend : na
short=direction < 0? na : supertrend

longpos=false
shortpos=false

longpos :=long?true :short?false:longpos[1]
shortpos:=short?true:long?false:shortpos[1]

fin_pullbuy= (ta.crossunder(low[1],long) and long and high>high[1])
fin_pullsell=(ta.crossover(high[1],short) and short and low<low[1]) 

//Ema 1
on_ma=input.bool(true,"Ema Condition On/Off",group=group_text0000)
ma_len= input.int(200, minval=1, title="Ema Length",group = group_text0000)
ma_src = input.source(close, title="Ema Source",group = group_text0000)
ma_out = ta.ema(ma_src, ma_len)

ma_buy=on_ma?close>ma_out?true:false:true
ma_sell=on_ma?close<ma_out?true:false:true

// rsi indicator and condition
// Get user input
en_rsi    = input.bool(true,"Rsi Condition On/Off",group = group_text00)
rsiSource = input(title='RSI Source', defval=close,group = group_text00)
rsiLength = input(title='RSI Length', defval=14,group = group_text00)
rsiOverbought = input(title='RSI BUY Level', defval=50,group = group_text00)
rsiOversold   = input(title='RSI SELL Level', defval=50,group = group_text00)

// Get RSI value
rsiValue = ta.rsi(rsiSource, rsiLength)

rsi_buy=en_rsi?rsiValue>=rsiOverbought ?true:false:true
rsi_sell=en_rsi?rsiValue<=rsiOversold?true:false:true

// final condition
buy_cond=option_ch=='Simple'?long and not(longpos[1]) and rsi_buy and ma_buy:option_ch=='Pullback'?fin_pullbuy and rsi_buy and ma_buy:na
sell_cond=option_ch=='Simple'?short and not(shortpos[1]) and rsi_sell and ma_sell:option_ch=='Pullback'?fin_pullsell and rsi_sell and ma_sell:na

//backtest engine
start = input(timestamp('2005-01-01'), title='Start calculations from',group=group_text1)
end=input(timestamp('2045-03-01'), title='End calculations',group=group_text1)
time_cond =true

// Make input option to configure trade direction

tradeDirection = input.string(title='Trade Direction', options=['Long', 'Short', 'Both'], defval='Both',group = group_text2)

// Translate input into trading conditions
longOK  = (tradeDirection == "Long") or (tradeDirection == "Both")
shortOK = (tradeDirection == "Short") or (tradeDirection == "Both")



// strategy start
if buy_cond and longOK and time_cond and strategy.position_size==0
    strategy.entry('long',direction = strategy.long)
if sell_cond and shortOK and time_cond and strategy.position_size==0
    strategy.entry('short',direction =strategy.short)

// fixed percentage based stop loss and take profit 

// User Options to Change Inputs (%)
stopPer = input.float(1.0,step=0.10, title='Stop Loss %',group =group_text4) / 100
takePer = input.float(1.0,step =0.10, title='Take Profit %',group =group_text4) / 100

// Determine where you've entered and in what direction
longStop  = strategy.position_avg_price * (1 - stopPer)
shortStop = strategy.position_avg_price * (1 + stopPer)
shortTake = strategy.position_avg_price * (1 - takePer)
longTake  = strategy.position_avg_price * (1 + takePer)


if strategy.position_size > 0
    strategy.exit(id='Close Long',stop=longStop, limit=longTake)
if strategy.position_size < 0
    strategy.exit(id='Close Short',stop=shortStop, limit=shortTake)

//PLOT FIXED SLTP LINE
plot(strategy.position_size > 0 ? longStop : na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Long Fixed SL')
plot(strategy.position_size < 0 ? shortStop :na, style=plot.style_linebr, color=color.new(color.red, 0), linewidth=1, title='Short Fixed SL')
plot(strategy.position_size > 0 ? longTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Long Take Profit')
plot(strategy.position_size < 0 ? shortTake : na, style=plot.style_linebr, color=color.new(color.green, 0), linewidth=1, title='Short Take Profit')

//