양적 거래 역전 트렌드 컴보 T3-CCI 전략

저자:차오장, 날짜: 2023-12-29 10:44:31
태그:

img

전반적인 설명

이 전략은 시장 전환 시점에 거래 신호를 생성하기 위해 역전 트렌드 전략과 T3-CCI 지표의 사용을 결합합니다. 그것은 단기 정량 거래 전략에 속합니다.

전략 원칙

  1. 역전 트렌드 전략 부분: 가격 역전 신호를 판단하기 위해 2 일간의 폐쇄 가격 비교를 사용하여, 과잉 구매 및 과잉 판매 영역을 결정하기 위해 9 일 느린 K 라인 지표와 결합하여 길고 짧은 신호를 생성합니다.

  2. T3-CCI 부분: T3 이동 평균을 사용하여 잘못된 신호를 줄이고 과반 구매 및 과반 판매 영역을 결정하기 위해 CCI 지표를 다시 평평화합니다. 이 트렌드 역전 전략과 함께 입력 시기를 필터링합니다.

최종 거래 방향은 양쪽의 통합 신호에 의해 결정됩니다.

이점 분석

  1. 두 가지 유형의 지표와 가격 비교를 사용하면 잠재적 인 전환점을 효과적으로 식별 할 수 있습니다.

  2. T3 이동 평균을 적용하면 CCI 신호의 품질이 향상되고 잘못된 신호가 감소합니다.

  3. 다양한 유형의 전략의 결합 사용은 전략의 전반적인 안정성을 향상시킬 것으로 예상할 수 있습니다.

위험 분석

  1. 역전 실패의 경우 잘못된 신호와 손실을 발생시킬 것입니다. 위험을 제어하기 위해 적절한 시간 중지 손실이 필요합니다.

  2. 부적절한 매개 변수 설정 또한 전략 성과에 영향을 미칩니다. 매개 변수는 다른 시장에 따라 조정해야합니다.

  3. 반전 신호는 시속성이 떨어지고 시간에 대한 빠른 반전을 포착할 수 없습니다.

최적화 방향

  1. 역전 실패로 인한 손실을 피하기 위해 트렌드 필터링을 높여야 합니다.

  2. 자동으로 매개 변수를 최적화하는 기계 학습 방법을 시도해보세요.

  3. 스톱 손실 메커니즘을 높여

  4. 역전 시기를 판단하기 위해 더 효율적인 지표를 탐색하십시오.

요약

이 전략은 잠재적 인 반전 지점을 판단하기 위해 여러 기술적 지표를 결합합니다. 그것은 효과적으로 시장 반전 기회를 활용할 수 있으며 단기 운영에 적합합니다. 매개 변수 조정, 스톱 손실 보호, 트렌드 판단 및 기타 최적화 방법과의 조합과 같은 조치를 통해 전략의 안정성을 더욱 향상시킬 수 있습니다.


/*backtest
start: 2023-11-28 00:00:00
end: 2023-12-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
////////////////////////////////////////////////////////////
//  Copyright by HPotter v1.0 23/10/2020
// This is combo strategies for get a cumulative signal. 
//
// First strategy
// This System was created from the Book "How I Tripled My Money In The 
// Futures Market" by Ulf Jensen, Page 183. This is reverse type of strategies.
// The strategy buys at market, if close price is higher than the previous close 
// during 2 days and the meaning of 9-days Stochastic Slow Oscillator is lower than 50. 
// The strategy sells at market, if close price is lower than the previous close price 
// during 2 days and the meaning of 9-days Stochastic Fast Oscillator is higher than 50.
//
// Second strategy
// This simple indicator gives you a lot of useful information - when to enter, when to exit
// and how to reduce risks by entering a trade on a double confirmed signal.
// You can use in the xPrice any series: Open, High, Low, Close, HL2, HLC3, OHLC4 and ect...
//
// WARNING:
// - For purpose educate only
// - This script to change bars colors.
////////////////////////////////////////////////////////////
Reversal123(Length, KSmoothing, DLength, Level) =>
    vFast = sma(stoch(close, high, low, Length), KSmoothing) 
    vSlow = sma(vFast, DLength)
    pos = 0.0
    pos := iff(close[2] < close[1] and close > close[1] and vFast < vSlow and vFast > Level, 1,
	         iff(close[2] > close[1] and close < close[1] and vFast > vSlow and vFast < Level, -1, nz(pos[1], 0))) 
	pos

    
T3_CCI(CCI_Period,T3_Period,b) =>
    pos = 0.0
    e1 = 0.0
    e2 = 0.0
    e3 = 0.0
    e4 = 0.0
    e5 = 0.0
    e6 = 0.0
    xPrice = close
    b2 = b*b
    b3 = b2*b
    c1 = -b3
    c2 = (3*(b2 + b3))
    c3 = -3*(2*b2 + b + b3)
    c4 = (1 + 3*b + b3 + 3*b2)
    nn = iff(T3_Period < 1, 1, T3_Period)
    nr = 1 + 0.5*(nn - 1)
    w1 = 2 / (nr + 1)
    w2 = 1 - w1    
    xcci = cci(xPrice, CCI_Period)
    e1 := w1*xcci + w2*nz(e1[1])
    e2 := w1*e1 + w2*nz(e2[1])
    e3 := w1*e2 + w2*nz(e3[1])
    e4 := w1*e3 + w2*nz(e4[1])
    e5 := w1*e4 + w2*nz(e5[1])
    e6 := w1*e5 + w2*nz(e6[1])
    xccir = c1*e6 + c2*e5 + c3*e4 + c4*e3  
    pos:= iff(xccir > 0, 1,
           iff(xccir < 0, -1, nz(pos[1], 0))) 
    pos

strategy(title="Combo Backtest 123 Reversal & FX Sniper:  T3-CCI", shorttitle="Combo", overlay = true)
Length = input(14, minval=1)
KSmoothing = input(1, minval=1)
DLength = input(3, minval=1)
Level = input(50, minval=1)
//-------------------------
CCI_Period = input(14, minval=1)
T3_Period = input(5, minval=1)
b = input(0.618)
reverse = input(false, title="Trade reverse")
posReversal123 = Reversal123(Length, KSmoothing, DLength, Level)
posT3_CCI = T3_CCI(CCI_Period,T3_Period,b)
pos = iff(posReversal123 == 1 and posT3_CCI == 1 , 1,
	   iff(posReversal123 == -1 and posT3_CCI == -1, -1, 0)) 
possig = iff(reverse and pos == 1, -1,
          iff(reverse and pos == -1 , 1, pos))	   
if (possig == 1) 
    strategy.entry("Long", strategy.long)
if (possig == -1)
    strategy.entry("Short", strategy.short)	 
if (possig == 0) 
    strategy.close_all()
barcolor(possig == -1 ? #b50404: possig == 1 ? #079605 : #0536b3 )

더 많은