Strategi ini menggunakan kombinasi indikator garis rata-rata dan indikator Stoch untuk merancang sistem perdagangan kuantitatif yang memiliki fungsi penilaian tren dan penilaian overbought dan oversold. Strategi ini menggabungkan keunggulan beberapa indikator untuk menilai tren secara sistematis dan menangkap peluang.
Prinsip-prinsip Strategi:
Perhitungan rata-rata jangka panjang ((MA) dan rata-rata jangka pendek ((EMA), sebagai indikator teknis untuk menentukan arah tren.
Hitung nilai Stoch K dan nilai D untuk menentukan apakah Anda berada dalam kondisi overbought atau oversold.
Ketika CLOSE menembus MA dari bawah ke atas, dan nilai Stoch K dan nilai D berada di atas garis overbought, dinilai sebagai titik masuk garis panjang, lakukan lebih.
Ketika CLOSE menembus EMA dari atas ke bawah, dan nilai Stoch K dan D berada di bawah garis oversold, dinilai sebagai titik masuk ke garis pendek, kosongkan.
Ke arah transaksi berdasarkan COLOR.
Keuntungan dari strategi ini:
Kombinasi dua garis sejajar menentukan arah tren utama, untuk menghindari sinyal yang salah.
Indeks Stoch mengidentifikasi area overbought dan oversold untuk meningkatkan probabilitas keuntungan.
Kombinasi menggunakan beberapa indikator, dapat saling diverifikasi, meningkatkan keandalan sinyal.
Strategi ini berisiko:
Optimasi parameter yang tidak tepat, akan terjadi frekuensi transaksi atau sinyal yang tidak konsisten.
Garis rata-rata dan Stoch dapat mengalami keterlambatan, yang menyebabkan masuk terlalu dini atau terlalu terlambat.
Kombinasi multi-indikator meningkatkan reliabilitas, tetapi juga meningkatkan kompleksitas strategi.
Singkatnya, strategi ini melakukan perdagangan kuantitatif dengan menggunakan tren penilaian rata-rata, Stoch menilai overbought dan oversold. Dengan mengoptimalkan penyesuaian parameter, stabilitas dan keandalan sistem perdagangan dapat ditingkatkan. Namun, strategi kuantitatif apa pun memerlukan manajemen risiko yang ketat, dan investor masih harus berhati-hati dalam menggunakannya.
/*backtest
start: 2023-08-12 00:00:00
end: 2023-09-11 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
// strategy("PMB2", overlay=true, default_qty_type = strategy.percent_of_equity, default_qty_value = 20, initial_capital=1000, currency=currency.USD)
//study(title="PMB2", overlay=true)
l_ma = input(50, title="MA (green)", type=input.integer)
l_ema = input(25, title="EMA (red)", type=input.integer)
MA = sma(close,l_ma)
EMA = ema(close,l_ema)
plot(MA, color=color.green)
plot(EMA, color=color.red)
//STOCH(14,3,3)
length = input(20, minval=1, title="STOCH - K")
smoothK = input(2, minval=1, title="STOCH - D")
smoothD = input(2 , minval=1, title="STOCH - Smooth")
StkLong= input(50 , minval=1, maxval=100, title="Long when Close > MA and Stoch > ")
StkShort= input(80 , minval=1, maxval=100, title="Short when Close < EMA and Stoch < ")
k = sma(stoch(close, high, low, length), smoothK)
d = sma(k, smoothD)
//plot(k, color=color.blue, title="STOCH - K")
//plot(d, color=color.orange, title="STOCH - D")
//band180 = hline(80, title="STOCH - Banda superior")
//band120 = hline(20, title="STOCH - Banda superior")
//band100 = hline(50, color=color.gray, editable=false, linestyle=hline.style_solid)
//fill(band180, band120, color=color.gray, transp=75, title="STOCH - Fundo")
BTStartY = input(title="Strategy Test Start Year", type=input.integer, defval=2019, minval=2010, maxval=2100)
BTStartM = input(title="Strategy Test Start Month", type=input.integer, defval=1, minval=1, maxval=12)
BTStartD = input(title="Strategy Test Start Day", type=input.integer, defval=1, minval=1, maxval=31)
BTStopY = input(title="Strategy Test Stop Year", type=input.integer, defval=2019, minval=2010, maxval=2100)
BTStopM = input(title="Strategy Test Stop Month", type=input.integer, defval=12, minval=1, maxval=12)
BTStopD = input(title="Strategy Test Stop Day", type=input.integer, defval=31, minval=1, maxval=31)
// set up min and max date for strategy test
TMin = timestamp(BTStartY, BTStartM, BTStartD, 00, 00)
TMax = timestamp(BTStopY, BTStopM, BTStopD, 00, 00)
InTime = true
bool long = false, short = false, trade = false
trade := trade[1]
long := long[1]
short := short[1]
if (crossover(close, MA) and k > StkLong and d > StkLong) // "LONG!"
//if (close > MA and k > StkLong and d > StkLong) // "LONG!"
short := false
long := true
trade := true // LONG
if (crossunder(close, EMA) and k < StkShort and d < StkShort) // "SHORT!""
//if (close < EMA and k < StkShort and d < StkShort) // "SHORT!""
long := false
short := true
trade := false // SHORT
//bgcolor(FL > SH ? color.green : FH < SL ? color.red : na, transp=80)
bgcolor(trade ? color.green : color.red, transp=90)
//alertcondition((crossover(close, MA) and k > 50 and d > 50) , title='Buy', message='Buy')
//alertcondition((crossunder(close, EMA) and k > 80 and d > 80) , title='Sell', message='Sell')
if ((crossover(close, MA) and k > StkLong and d > StkLong) and InTime)
//if ((close > MA and k > StkLong and d > StkLong) and InTime)
strategy.entry("Long", strategy.long)
if ((crossunder(close, EMA) and k < StkShort and d < StkShort) and InTime)
//if ((close < EMA and k < StkShort and d < StkShort) and InTime)
strategy.entry("Short", strategy.short)