
Strategi ini menggabungkan indikator supertrend dengan indikator Commodity Channel Index (CCI) untuk melakukan pelacakan tren dan menghasilkan sinyal perdagangan dalam beberapa kerangka waktu. Gagasan utama strategi ini adalah menggunakan indikator CCI untuk menentukan arah tren jangka pendek, sementara digabungkan dengan indikator supertrend untuk menentukan arah tren jangka panjang.
Indikator CCI dapat menilai fenomena overbought dan oversold, ketika indikator CCI melintasi sumbu 0 dari bawah ke atas, itu adalah sinyal multihead, sebaliknya adalah sinyal kosong. Strategi ini memanfaatkan fitur ini untuk menentukan arah tren jangka pendek.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
Kode di atas mendefinisikan periode dan posisi sumbu tengah dari indikator CCI.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Bagian kode ini menentukan apakah cc naik melalui 0 atau tidak, dan jika ya, maka memperbarui tren super di atas dan di bawah.
Indikator supertrend dapat menentukan arah tren jangka menengah dan panjang dengan menggabungkan indikator ATR dengan harga. Ketika harga menembus supertrend, sinyal atas adalah sinyal multihead, dan sinyal bawah adalah sinyal kosong.
Formula untuk menghitung indikator supertrend dalam strategi ini adalah sebagai berikut:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
Di mana Factor dan Pd adalah parameter yang dapat disesuaikan.
Variabel Trend menilai arah tren super saat ini:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Dengan mengintegrasikan indikator CCI dan indikator supertrend, strategi ini memungkinkan penilaian tren dalam beberapa kerangka waktu. Indikator CCI menangkap tren jangka pendek, sedangkan indikator supertrend menilai tren jangka panjang.
Ketika kedua arah bertepatan, menghasilkan sinyal perdagangan yang lebih andal.
isLong = st_trend == 1
isShort = st_trend == -1
Waktu masuk untuk jangka pendek dan jangka panjang, dan waktu keluar untuk jangka pendek dan jangka panjang.
Strategi ini mengintegrasikan indikator penilaian tren jangka pendek dan jangka menengah untuk membuat sinyal perdagangan lebih dapat diandalkan.
Parameter Factor dalam indikator supertrend dan cc_period dalam indikator CCI dapat disesuaikan dengan pasar, membuat strategi lebih fleksibel.
Struktur strategi yang sederhana dan jelas, mudah dipahami dan diterapkan, sangat cocok untuk pemula dalam perdagangan kuantitatif.
Dapat digunakan untuk pasar seperti saham, valuta asing, cryptocurrency, dan lain-lain, dan dapat disesuaikan dengan parameter yang berbeda.
Ketika harga berfluktuasi secara dramatis, banyak sinyal palsu muncul. Dengan demikian, parameter faktor supertrend dapat dimaksimalkan secara tepat dan mengurangi frekuensi perdagangan strategi.
Supertrend sendiri tidak cukup untuk mengikuti kekuatan, dapat dipertimbangkan untuk digabungkan dengan indikator momentum untuk melacak tren pada fase percepatan tren.
Strategi ini tidak memiliki set stop loss, yang dapat dikombinasikan dengan ukuran indikator ATR set trails stop loss.
Adaptasi parameter supertrend dan CCI sesuai dengan karakteristik pasar yang berbeda untuk meningkatkan stabilitas strategi.
Kombinasi dengan indikator momentum seperti MACD, KDJ, dan lain-lain, untuk melacak tren pada fase percepatan tren, dapat menghasilkan keuntungan yang lebih tinggi.
Optimalisasi parameter strategi dan aturan perdagangan menggunakan pembelajaran mesin dan integrasi pembelajaran.
Strategi ini berhasil menggabungkan supertrend dan indikator CCI, sehingga memungkinkan penilaian tren dalam kerangka waktu yang lebih banyak. Strategi ini sederhana dan mudah dimengerti, parameternya dapat disesuaikan, dan potensi pengembalian yang besar. Strategi ini dapat dioptimalkan lebih lanjut dengan cara seperti modulasi, stop loss, dan pembelajaran terintegrasi, sehingga menjadi strategi perdagangan yang andal, stabil, dan efisien.
/*backtest
start: 2024-01-10 00:00:00
end: 2024-01-17 00:00:00
period: 10m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=4
//@author=Daveatt
StrategyName = "Best Supertrend CCI Strategy"
ShortStrategyName = "Best Supertrend CCI Strategy"
strategy(title=StrategyName, shorttitle=ShortStrategyName, overlay=true )
//////////////////////////
//* COLOR CONSTANTS *//
//////////////////////////
AQUA = #00FFFFFF
BLUE = #0000FFFF
RED = #FF0000FF
LIME = #00FF00FF
GRAY = #808080FF
DARKRED = #8B0000FF
DARKGREEN = #006400FF
GOLD = #FFD700
WHITE = color.white
// Plots
GREEN_LIGHT = color.new(color.green, 40)
RED_LIGHT = color.new(color.red, 40)
BLUE_LIGHT = color.new(color.aqua, 40)
PURPLE_LIGHT = color.new(color.purple, 40)
source = input(close)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////////////////// CCI /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
//UL = input(80, "Upper level")
//LL = input(20, "Lower Level")
ML = input(0, "CCI Mid Line pivot")
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////// SUPERTREND /////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
Factor=input(3,title="[ST] Factor", minval=1,maxval = 100, type=input.float)
Pd=input(3, title="[ST] PD", minval=1,maxval = 100)
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/////////////////////// SUPERTREND DETECTION //////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
f_supertrend(Factor, Pd) =>
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
TrendUp = 0.0
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown = 0.0
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Trend = 0.0
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Tsl = Trend==1? TrendUp: TrendDown
[Trend, Tsl]
[st_trend, st_tsl] = f_supertrend(Factor, Pd)
// Plot the ST
linecolor = close >= st_tsl ? color.green : color.red
plot(st_tsl, color = linecolor , linewidth = 3,title = "SuperTrend", transp=0)
isLong = st_trend == 1
isShort = st_trend == -1
longClose = isLong[1] and isShort
shortClose = isShort[1] and isLong
strategy.entry("Long", 1, when=isLong)
strategy.close("Long", when=longClose )
strategy.entry("Short", 0, when=isShort)
strategy.close("Short", when=shortClose )