이 전략은 이동 평균, 상대 강도 지수 및 상품 채널 지수의 세 가지 지표를 결합하여 보다 완전한 트렌드 추적 및 지표 조합 전략을 형성한다. 그것의 기본 아이디어는 트렌드 지수가 트렌드가 형성 된 후 트렌드를 확인 한 후 역전 신호 지표를 사용하여 더 정확한 입장을 달성한다.
xl2를 이용해서 평균값을 계산해 보세요.
14주기의 CCI 지수를 계산하여 대수준의 트렌드를 판단한다. CCI가 0보다 크면 상승하고, 0보다 작으면 하락한다.
14주기 RSI 지표의 패스트라인과 50주기 RSI 지표의 패스트라인 계산한다. 패스트라인 상의 패스트라인에서 구매 신호가 발생하고, 패스트라인 아래의 패스트라인에서 판매 신호가 발생한다.
실제 거래 신호는 CCI 지표가 동시에 RSI 지표의 신호 방향과 일치하는 경우에만 생성됩니다. 즉, CCI가 0보다 크고 RSI 단선에서 느린 선을 통과 할 때만 구매하고 CCI가 0보다 작고 RSI 단선 아래의 느린 선을 통과 할 때만 판매합니다.
14주기 hl2의 이동 평균보다 높거나 낮다는 것을 계산하여 세부적인 움직임을 판단하는 데 도움을 주며, 거짓된 돌파구를 피한다. 구매 신호는 14주기 hl2의 평균선과 RSI 지표보다 높은 가격의 14주기 평균선과 RSI 지표 아래의 가격의 14주기 평균선과 RSI 지표의 낮은 가격의 판매 신호가 발생하는 경우에만 발생한다.
이 전략은 트렌드 판단과 역전 신호를 결합하여 트렌드 시작 후 적시에 진입하고 역전 신호 지표를 통해 탈퇴 지점을 판단하여 더 나은 성과를 얻을 수 있습니다.
상품 채널 지수는 대규모의 트렌드를 정확하게 판단하여 잘못된 거래 방향을 선택하지 않습니다.
상대 강도 지수의 빠른 느린 선 교차는 계몽 신호로 안정적이고 신뢰할 수 있으며, 이동 평균의 지연 문제를 피하여 가격의 회전을 적시에 포착 할 수 있습니다.
가격과 중도선의 크기를 비교하면 가짜 돌파구로 인한 잘못된 신호를 더 잘 필터링 할 수 있습니다.
전체적으로 이 전략은 안정성이 좋으며, 강세를 보인 경향에서 두드러지게 나타난다.
이 전략은 거래 품종에 민감하며 특정 품종에 대한 최적화 매개 변수가 필요합니다. 맹목적으로 모든 품종에 적용되면 불안정한 성과를 초래할 수 있습니다.
14주기 평균선과 50주기 평균선과 같은 전략 변수 설정은 다른 시장에 따라 조정할 필요가 있다. 변수가 잘못 설정되면 성능 저하로 이어질 수 있다.
CCI의 판단에 의존하는 것만으로도 큰 차원의 트렌드 방향은 아직 완벽하지 않으며, 약간의 지연이 있을 것이다.
반전 신호 지표의 조합이 많으며, 어느 정도의 오버 최적화가 있을 수 있다. 이것은 또한 엄격한 피드백 검사를 통해 검증되어야 한다.
DMI, ADX 등과 같은 더 많은 큰 수준의 추세를 판단하는 지표를 추가하는 것을 고려할 수 있습니다.
스톱 로직을 증가시키십시오. 예를 들어, 반전 신호가 나타난 후, 가격이 다시 한 번 어느 정도 회수되면, 스톱 탈퇴를 고려하여 손실을 줄일 수 있습니다.
특정 거래 품종에 더 적합하도록 매개 변수를 최적화한다. 예를 들어, 느린 라인 주기 매개 변수를 확대하거나, 중도 가격 계산 방법을 조정한다.
다양한 품종에 대해 최적의 변수를 선택하여 변수 최적화 포트폴리오를 구성하여 전략의 적용성을 크게 향상시킬 수 있습니다.
양전력 지표가 추가되어 양전력이 부족할 때 잘못된 신호가 발생하지 않도록 한다.
이 전략은 전체적인 프레임워크가 온전하고, 트렌드 판단과 반전 지표가 결합되어 이론적으로 우수한 성과를 얻을 수 있다. 그러나 실제 응용에서는 여전히 거래 품종에 대한 파라미터와 모델 최적화가 필요하며, 과 적합의 위험을 줄인다. 엄격한 통계 검사를 거친다면, 추천할만한 안정적인 전략이 될 전망이다.
/*backtest
start: 2022-12-06 00:00:00
end: 2023-12-12 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © SuchitRaju
//@version=4
strategy("MA RSI CCI")
price_up = if(close > open and close > sma(hl2,14))
1
else
0
price_down = if(open > close and close < sma(hl2,14))
1
else
0
//
cci_indicator = cci(hl2, 14)
// plot(cci_indicator, color=color.blue)
rsi_slow = sma(rsi(close, 14), 50)
// plot(rsi_slow, color=color.red)
rsi_fast = rsi(close, 14)
// plot(rsi_fast, color=color.green)
isCrossover = if(rsi_fast > rsi_slow and cci_indicator > 0)
1
else
0
// plotshape(isCrossover, style = shape.arrowup, color = color.green, size = size.huge)
isCrossunder = if(rsi_fast < rsi_slow and cci_indicator < 0)
1
else
0
// plotshape(isCrossunder, style = shape.arrowup, color = color.red, size = size.huge)
// start = timestamp("GMT-5", 2016,9,1,0,0)
// end = timestamp("GMT-5", 2017,9,1,0,0)
// strategy.entry("Long", strategy.long, 1, when = isCrossover and price_up)
// strategy.entry("Short", strategy.short, 1, when = isCrossunder and price_down)
// strategy.close("Long", when = isCrossunder and price_down)
// strategy.close("Short", when = isCrossover and price_up)
strategy.entry("Long", strategy.long, 1, when = isCrossover)
strategy.entry("Short", strategy.short, 1, when = isCrossunder)
strategy.close("Long", when = isCrossunder)
strategy.close("Short", when = isCrossover)