Strategi Perdagangan Kuantitatif SuperTrend Rata-rata Pergerakan Ganda


Tanggal Pembuatan: 2024-02-05 12:05:10 Akhirnya memodifikasi: 2024-02-05 12:05:10
menyalin: 0 Jumlah klik: 608
1
fokus pada
1617
Pengikut

Strategi Perdagangan Kuantitatif SuperTrend Rata-rata Pergerakan Ganda

Ringkasan

Strategi ini menggabungkan dua indikator, yaitu garis rata ganda dan SuperTrend, untuk membangun sinyal perdagangan, dan menggabungkannya dengan berbagai siklus untuk menentukan arah tren, untuk menghasilkan keuntungan yang efisien.

Prinsip Strategi

Strategi ini menggunakan MACD dan SuperTrend untuk menentukan waktu masuk ke pasar. Di antaranya, MACD menentukan arah tren jangka pendek, dan Supertrend menentukan arah tren jangka panjang.

Ketika garis cepat dari bawah ke atas menerobos garis lambat untuk membeli sinyal, pada saat ini jika jangka menengah Supertrend sama dengan tren naik, maka menghasilkan final membeli sinyal, melakukan lebih; sebaliknya, ketika garis cepat dari atas ke bawah menerobos garis lambat untuk menjual sinyal, pada saat ini jika jangka menengah Supertrend sama dengan tren turun, maka menghasilkan final menjual sinyal, melakukan kosong.

Stop Loss dan Stop Stop diatur menjadi nilai tetap.

Analisis Keunggulan

Keuntungan terbesar dari strategi ini adalah bahwa dengan menggunakan dua garis rata-rata dan SuperTrend pada saat yang sama untuk menentukan arah pasar, kombinasi jangka pendek dan jangka panjang, meningkatkan efisiensi pengambilan keputusan secara signifikan dan menghindari terjadinya terobosan palsu. Selain itu, Supertrend dapat menyesuaikan parameter berdasarkan volatilitas pasar dan menyesuaikan diri dengan lingkungan pasar yang lebih luas.

Analisis risiko

Risiko utama dari strategi ini adalah bahwa pengaturan stop loss tetap dapat kehilangan ruang keuntungan yang lebih besar. Selain itu, strategi tidak dapat bekerja dengan baik jika ada perbedaan dalam penilaian jangka pendek dan jangka panjang. Kita dapat mengurangi risiko ini dengan pengaturan stop loss floating.

Arah optimasi

Strategi ini dapat dioptimalkan dalam beberapa hal:

  1. Menambahkan mekanisme penyesuaian stop loss yang dinamis, mengatur stop loss sesuai dengan volatilitas dan tren pasar.

  2. Optimalkan parameter MACD untuk menemukan parameter rata-rata yang lebih cocok untuk varietas target.

  3. Mengoptimalkan parameter Supertrend, menyesuaikan sensitivitasnya terhadap pasar.

  4. Menambahkan penilaian indikator lainnya, memberikan sinyal yang lebih berdimensi, dan meningkatkan efektivitas strategi.

Meringkaskan

Strategi ini berhasil menggabungkan keunggulan dari dua indikator, Garis Dua dan SuperTrend, untuk memfilter sinyal yang salah melalui penilaian kombinasi dari siklus yang berbeda, sehingga menghasilkan keuntungan yang lebih baik di pasar tren. Kita dapat meningkatkan stabilitas dan profitabilitas strategi ini lebih lanjut dengan pengoptimalan parameter dan penyesuaian mekanisme.

Kode Sumber Strategi
/*backtest
start: 2024-01-28 00:00:00
end: 2024-02-04 00:00:00
period: 5m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//Supertrend Strategy by breizh29 using *rajandran.r* Supertrend Indicator

strategy("Super Trend 2 MACD", overlay=true)
// MACD input
source = input(close)
fastLength = input(12, minval=1, title="MACD fast moving average")
slowLength=input(26,minval=1, title="MACD slow moving average")
signalLength=input(9,minval=1, title="MACD signal line moving average")

// Calculation
fastMA = sma(source, fastLength)
slowMA = sma(source, slowLength)

Macd = fastMA - slowMA
Signal = sma(Macd, signalLength)


res = input(title="Main SuperTrend Time Frame",  defval="120")
Factor=input(1, minval=1,maxval = 100)
Pd=input(1, minval=1,maxval = 100)

tp = input(500,title="Take Profit")
sl = input(400,title="Stop Loss")


Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
MUp=request.security(syminfo.tickerid,res,hl2-(Factor*atr(Pd)))
MDn=request.security(syminfo.tickerid,res,hl2+(Factor*atr(Pd)))

Mclose=request.security(syminfo.tickerid,res,close)

TrendUp=close[1]>TrendUp[1]? max(Up,TrendUp[1]) : Up
TrendDown=close[1]<TrendDown[1]? min(Dn,TrendDown[1]) : Dn

MTrendUp=Mclose[1]>MTrendUp[1]? max(MUp,MTrendUp[1]) : MUp
MTrendDown=Mclose[1]<MTrendDown[1]? min(MDn,MTrendDown[1]) : MDn

Trend = close > TrendDown[1] ? 1: close< TrendUp[1]? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown

MTrend = Mclose > MTrendDown[1] ? 1: Mclose< MTrendUp[1]? -1: nz(MTrend[1],1)
MTsl = MTrend==1? MTrendUp: MTrendDown

linecolor = Trend == 1 ? green : red
plot(Tsl, color = linecolor , style = line , linewidth = 2,title = "SuperTrend")

Mlinecolor = MTrend == 1 ? blue : orange
plot(MTsl, color = Mlinecolor , style = line , linewidth = 2,title = "Main SuperTrend")

plotshape(cross(close,Tsl) and close>Tsl , "Up Arrow", shape.triangleup,location.belowbar,green,0,0)
plotshape(cross(Tsl,close) and close<Tsl , "Down Arrow", shape.triangledown , location.abovebar, red,0,0)

up = Trend == 1 and Trend[1] == -1 and MTrend == 1 
down = Trend == -1 and Trend[1] == 1 and MTrend == -1 
plotarrow(up ? Trend : na, title="Up Entry Arrow", colorup=lime, maxheight=60, minheight=50, transp=0)
plotarrow(down ? Trend : na, title="Down Entry Arrow", colordown=red, maxheight=60, minheight=50, transp=0)


golong = Trend == 1 and Trend[1] == -1 and MTrend == 1 and Macd > Signal
goshort = Trend == -1 and Trend[1] == 1 and MTrend == -1 and Macd < Signal

strategy.entry("Buy", strategy.long,when=golong)
strategy.exit("Close Buy","Buy",profit=tp,loss=sl)
   
   
strategy.entry("Sell", strategy.short,when=goshort)
strategy.exit("Close Sell","Sell",profit=tp,loss=sl)