가장 좋은 슈퍼트렌드 CCI 멀티 타임프레임 거래 전략

저자:차오장, 날짜: 2024-01-18 15:09:33
태그:

img

전반적인 설명

이 전략은 슈퍼트렌드 지표와 상품 채널 지표 (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선 위에/아래를 넘어서서 Supertrend의 상부/하부 대역을 업데이트하는지 확인합니다.

중장기 트렌드의 슈퍼트렌드

슈퍼트렌드 지표는 중장기 트렌드를 결정하기 위해 ATR과 가격을 결합합니다. 상단 판의 상향 침투는 상승 추세를 알리고 하향 추세는 하락 추세를 알립니다.

슈퍼트렌드는 다음과 같이 계산됩니다.

Up=hl2-(Factor*atr(Pd))
Dn=hl2+(Factor*atr(Pd)) 

여기서 인수와 Pd는 조절 가능한 매개 변수입니다.

트렌드 변수는 현재 슈퍼트렌드 방향을 결정합니다.

Trend := cci > ML ? 1: cci < ML ? -1: nz(Trend[1],1)  

CCI와 Supertrend을 통합

CCI와 Supertrend을 통합함으로써 이 전략은 다중 시간 프레임 트렌드 판단을 실현합니다. CCI는 단기 변동을 포착하고 Supertrend는 더 큰 움직임에 초점을 맞추고 있습니다.

방향이 일치하면 더 신뢰할 수 있는 거래 신호가 생성됩니다.

isLong = st_trend == 1 
isShort = st_trend == -1

단기와 중장기 순서를 맞추고 방향이 일치하지 않을 때 출입합니다

장점

여러 시간 프레임 판단

더 신뢰할 수 있는 신호를 위해 단기 및 중기 지표를 통합합니다.

사용자 정의 가능한 매개 변수

슈퍼트렌드 요인과 CCI 기간은 시장 조건에 따라 조정할 수 있습니다.

단순 하고 명확 한 것

단순하고 이해하기 쉬운 논리, 초보자에게 좋습니다.

광범위한 적용 가능성

주식, 외환, 암호화폐에 적용됩니다.

위험 과 해결책

프라이스 위프사

가격 변동이 심한 경우 많은 잘못된 신호가 발생할 수 있습니다.

강한 움직임 을 늦추는 것

슈퍼트렌드는 약간의 차질을 가지고 있습니다. 가속화 추세를 추적하기 위해 모멘텀 지표를 결합합니다.

손해를 멈추지 않는 것

ATR에 기반한 스톱 로스를 추가하여 위험 조절을 위해

최적화 방향

시장 상관관계

다른 시장에 대한 매개 변수를 조정합니다.

추진력 조합

MACD, KDJ 등과 결합하여 강력한 추진력을 잡습니다.

기계 학습

AI와 앙상블 방법을 활용하여 매개 변수와 규칙을 최적화합니다.

결론

이 전략은 멀티 타임프레임 트렌드 추적을 위해 슈퍼트렌드와 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 )


더 많은