
Strategi ini menggabungkan indikator supertrend dan indikator Commodity Channel Index (CCI) untuk mewujudkan trend pengesanan dan penjanaan isyarat dagangan pada pelbagai jangka masa. Gagasan utama strategi ini adalah untuk menggunakan indikator CCI untuk menentukan arah trend jangka pendek, sementara digabungkan dengan indikator supertrend untuk menentukan arah trend jangka panjang.
Indikator CCI dapat menilai fenomena overbought dan oversold. Apabila indikator CCI melintasi 0 dari bawah ke atas, ia adalah isyarat multihead, sebaliknya isyarat kosong. Strategi ini menggunakan ciri ini untuk menentukan arah trend jangka pendek.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
Kod di atas mentakrifkan kitaran dan kedudukan sumbu tengah untuk penunjuk CCI.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
Bahagian kod ini menentukan sama ada CICI berada di atas atau di bawah garis 0 dan, jika ya, ia akan mengemas kini tren super di atas dan di bawah.
Indikator Supertrend dapat menentukan arah trend jangka panjang dan menengah dengan menggabungkan indikator ATR dengan harga. Apabila harga menembusi Supertrend, ia adalah isyarat multihead dan isyarat kosong.
Formula untuk mengira indikator super trend dalam strategi ini adalah seperti berikut:
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
Factor dan Pd sebagai parameter yang boleh disesuaikan.
Trend Variable menilai arah semasa Super Trend:
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
Dengan menggabungkan penunjuk CCI dan penunjuk super trend, strategi ini mencapai penilaian trend dalam pelbagai bingkai masa. Penunjuk CCI menangkap trend jangka pendek, penunjuk super trend menilai trend jangka panjang.
Apabila kedua-dua arah bersesuaian, ia menghasilkan isyarat dagangan yang lebih dipercayai.
isLong = st_trend == 1
isShort = st_trend == -1
Masa masuk adalah jangka pendek dan jangka panjang, dan masa keluar adalah jangka pendek dan jangka panjang.
Strategi ini menggabungkan indikator penilaian trend jangka pendek dan jangka menengah untuk menjadikan isyarat perdagangan lebih dipercayai.
Factor parameter dalam indikator trend super dan cc_period dalam indikator CCI boleh disesuaikan mengikut pasaran, menjadikan strategi lebih fleksibel.
Struktur strategi yang ringkas dan jelas, mudah difahami dan dilaksanakan, sangat sesuai untuk pemula dalam perdagangan kuantitatif.
Ia boleh digunakan untuk pasaran seperti saham, forex, cryptocurrency, dan lain-lain, dan boleh disesuaikan mengikut parameter untuk pelbagai jenis.
Terdapat banyak isyarat palsu yang muncul apabila harga bergelombang dengan kuat. Dengan cara yang sesuai, parameter faktor untuk trend super boleh diperbesar, mengurangkan kekerapan perdagangan strategi.
Supertrend sendiri tidak cukup untuk mengikuti kekuatan, ia boleh dipertimbangkan untuk digabungkan dengan indikator momentum untuk mengesan trend pada tahap peningkatan trend.
Strategi ini tidak mempunyai seting stop loss, yang boleh digabungkan dengan ukuran indikator ATR seting trails stop loss.
Mengubah parameter supertrend dan CCI mengikut ciri-ciri pasaran yang berbeza untuk meningkatkan kestabilan strategi.
Gabungan dengan penunjuk momentum seperti MACD, KDJ, dan lain-lain, untuk menjejaki trend pada tahap peningkatan trend, dapat memperoleh keuntungan yang lebih tinggi.
Menggunakan kaedah pembelajaran mesin dan pembelajaran bersepadu untuk mengoptimumkan parameter strategi dan peraturan perdagangan.
Strategi ini berjaya menggabungkan super trend dan indikator CCI, mewujudkan penilaian trend dalam bingkai masa yang banyak. Strategi ini mudah difahami, parameter boleh disesuaikan, potensi keuntungan yang besar.
/*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 )