Strategi Dasar Super Trend


Tanggal Pembuatan: 2023-10-11 15:14:54 Akhirnya memodifikasi: 2023-10-11 15:14:54
menyalin: 0 Jumlah klik: 907
1
fokus pada
1617
Pengikut

Ringkasan

Strategi dasar supertrend adalah strategi perdagangan algoritmik yang dapat diandalkan dan menguntungkan berdasarkan tiga indikator kuat: indikator supertrend (ATR), indeks relatif kuat (RSI) dan indeks moving average (EMA). Strategi ini bertujuan untuk mengidentifikasi arah dan kekuatan tren pasar, memasuki pasar pada titik masuk yang optimal, dan keluar dari pasar saat mencapai titik stop loss atau stop loss.

Prinsip Strategi

Strategi ini menggunakan indikator supertrend untuk menentukan apakah harga berada dalam tren naik atau turun. Indikator supertrend didasarkan pada rata-rata amplitudo riil dan satu faktor, yaitu tren naik ketika harga lebih tinggi dari supertrend dan tren turun ketika harga lebih rendah dari supertrend.

Indeks Relatif Lemah digunakan untuk mendeteksi apakah ada overheating dan overbuying atau overselling. Ketika RSI di atas 50 adalah pasar yang kuat, sebaliknya adalah lemah. RSI dapat memfilter terobosan palsu.

Rata-rata bergerak indeks digunakan untuk menentukan arah tren jangka panjang. Ketika harga lebih tinggi dari EMA adalah tren naik, dan ketika lebih rendah adalah tren turun. Dapat digunakan untuk mengkonfirmasi arah perdagangan.

Strategi ini memberikan sinyal perdagangan sebagai berikut:

Multiple entry: harga lebih tinggi dari supertrend dan RSI lebih tinggi dari 50 dan harga lebih tinggi dari EMA Berbagai posisi: harga ditutup di bawah supertrend atau stop loss atau stop loss

Masuk dengan posisi kosong: Kurangnya harga di bawah supertrend dan RSI di bawah 50 dan harga di bawah EMA
Keluar kosong: harga ditutup di atas supertrend atau stop loss atau stop loss

Stop loss dan stop stop dapat diatur sebagai persentase dari harga tiket.

Analisis Keunggulan

Strategi ini memiliki keuntungan sebagai berikut:

  1. Menggunakan tiga kombinasi indikator untuk menentukan arah tren

  2. Indikator supertrend dapat dengan jelas menentukan tren naik dan turun

  3. RSI dapat memfilter terobosan palsu untuk menghindari overbought dan oversold

  4. EMA dapat digunakan untuk menentukan arah tren besar

  5. Sinyal strategi sederhana, jelas, dan mudah dioperasikan

  6. Periode ATR, parameter RSI, dan siklus EMA dapat disesuaikan untuk dioptimalkan

  7. Stop loss yang dapat diatur untuk mengendalikan risiko

  8. Hanya melakukan lebih banyak atau hanya melakukan lebih sedikit untuk menyesuaikan diri dengan kondisi pasar yang berbeda

  9. Dapat digunakan pada siklus waktu apa pun

Analisis risiko

Risiko utama dari strategi ini adalah sebagai berikut:

  1. Indikator supertrend akan mengalami lag dan dapat menyebabkan kerugian ketika tren besar berbalik

  2. Stop loss yang terlalu kecil mungkin tidak bisa menangkap tren besar.

  3. EMA tidak dapat menilai titik balik tren

  4. Tidak bisa menilai apa yang terjadi.

  5. Ada beberapa risiko volatilitas dan risiko perdagangan waktu.

Solusi yang sesuai:

  1. Terkait dengan indikator lain yang menilai adanya pembalikan tren

  2. Optimalkan parameter stop loss

  3. Terkait dengan indikator lain yang menilai adanya pembalikan tren

  4. Tergabung dengan deviasi indikator

  5. Manajemen posisi yang disesuaikan

Arah optimasi

Strategi ini dapat dioptimalkan dengan:

  1. Optimalkan parameter siklus ATR untuk menyeimbangkan sensitivitas dan stabilitas

  2. Optimalkan parameter RSI untuk meningkatkan akurasi

  3. Optimalkan siklus EMA agar sesuai dengan pasar yang berbeda

  4. Menambahkan indikator lain untuk menilai reversal, seperti MACD, KD, dan lain-lain

  5. Peningkatan pengembalian dari penilaian indikator

  6. Pengadilan Terbalik Bersama Teori Gelombang

  7. Parameter optimasi dinamis menggunakan algoritma seperti pembelajaran mesin

  8. Menambahkan algoritma stop-loss canggih, seperti tracking stop-loss, move stop-loss, dan lain-lain

  9. Mengoptimalkan manajemen posisi untuk beradaptasi dengan pasar yang berfluktuasi

  10. Pengujian kombinasi kondisi masuk dan keluar yang lebih kompleks

Meringkaskan

Strategi dasar supertrend mengintegrasikan supertrend, RSI dan tiga indikator besar EMA, membentuk strategi pelacakan tren yang sederhana dan praktis. Ini dapat dengan jelas mengidentifikasi arah tren, memfilter sinyal palsu, dan mengkonfirmasi tren besar.

Kode 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')

//