
이 전략은 슈퍼 트렌드 지표와 상품 통로 지표 ((CCI) 지표를 결합하여 여러 시간 프레임의 트렌드 추적과 거래 신호 생성을 구현합니다. 이 전략의 주요 아이디어는 CCI 지표를 사용하여 단기 트렌드 방향을 판단하는 동시에 슈퍼 트렌드 지표와 결합하여 중기 장기 트렌드 방향을 판단하는 것입니다.
CCI 지표는 과매매 현상을 판단할 수 있으며, CCI 지표가 아래에서 위쪽으로 0축을 통과할 때 다목표 신호이며, 반대로 공수 신호이다. 이 전략은 이 특성을 활용하여 단기 트렌드 방향을 판단한다.
cci_period = input(28, "CCI Period")
cci = cci(source, cci_period)
ML = input(0, "CCI Mid Line pivot")
위의 코드는 CCI 지표의 주기 및 중축 위치를 정의한다.
TrendUp := cci[1] > ML ? max(Up,TrendUp[1]) : Up
TrendDown := cci[1]< ML ? min(Dn,TrendDown[1]) : Dn
이 부분의 코드는 cci가 0축을 는지 여부를 판단하고, 만약 그렇다면 슈퍼 트렌드의 상반도를 업데이트하고, 하반도를 다면 하반도를 업데이트한다.
슈퍼 트렌드 지표는 ATR 지표와 가격을 조합하여 중장기 트렌드의 방향을 판단할 수 있다. 가격이 슈퍼 트렌드를 돌파할 때 상반기 신호이며 하반기 신호이다.
이 전략의 슈퍼 트렌드 지표의 계산 공식은 다음과 같습니다.
Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd))
여기서 Factor와 Pd는 조정 가능한 변수이다.
트렌드 변수는 슈퍼 트렌드의 현재 방향을 판단합니다.
Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)
CCI 지수와 슈퍼 트렌드 지수를 통합하여 이 전략은 다중 시간 프레임의 트렌드 판단을 구현한다. CCI 지수는 단기 트렌드를 포착하고, 슈퍼 트렌드 지수는 중기 장기 트렌드를 판단한다.
두 방향이 일치할 때, 더 신뢰할 수 있는 거래 신호가 생성된다.
isLong = st_trend == 1
isShort = st_trend == -1
입시기는 단기 및 중기 동향, 출시기는 단기 및 중기 역향이다.
이 전략은 단기 및 중장기 트렌드 판단 지표를 통합하여 거래 신호를 더욱 신뢰할 수 있도록 합니다.
슈퍼 트렌드 지표의 Factor 파라미터와 CCI 지표의 cc_period는 시장에 따라 조정될 수 있어 전략이 더 유연하다.
전략 구조는 간단하고 명확하며, 이해하기 쉽고 구현하기 쉬우며, 양자 거래 초보자에게 적합하다.
주식, 외환, 암호화폐 등의 시장에 적용할 수 있으며, 파라미터 설정에 따라 다른 품종에 적용할 수 있다.
가격이 급격하게 변동할 때 많은 가짜 신호가 나타납니다. 슈퍼 트렌드의 팩터 변수를 적절히 확대하여 전략의 거래 빈도를 낮출 수 있습니다.
슈퍼 트렌드 자체로는 강세를 따라가는 것이 충분하지 않습니다. 동력 지표와 결합하여 트렌드 가속 단계의 트렌드를 추적하는 것이 고려 될 수 있습니다.
이 전략에는 정지 손실이 설정되어 있지 않으며, ATR 지표의 크기와 결합하여 trails 정지 손실을 설정할 수 있습니다.
다양한 시장의 특성에 따라 슈퍼 트렌드 및 CCI의 매개 변수를 조정하여 전략의 안정성을 높인다.
MACD, KDJ 등의 동력 지표와 결합하여, 트렌드 가속화 단계에서 트렌드를 추적하여 더 높은 수익을 얻을 수 있다.
기계 학습과 통합 학습 방법을 사용하여 전략 변수와 거래 규칙을 최적화하십시오.
이 전략은 슈퍼 트렌드와 CCI 지표를 성공적으로 결합하여 여러 시간 프레임의 트렌드 판단을 구현합니다. 전략은 간단하고 이해하기 쉽고, 매개 변수가 조정 가능하며, 수익 잠재력이 높습니다. 조정, 중지 및 통합 학습과 같은 방법을 통해 추가적으로 최적화 할 수 있으며, 신뢰할 수 있고 안정적이며 효율적인 거래 전략이됩니다.
/*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 )