OBV 및 CCI 지표 기반 추세 추종 전략


생성 날짜: 2024-02-21 14:05:12 마지막으로 수정됨: 2024-02-21 14:05:12
복사: 2 클릭수: 958
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

OBV 및 CCI 지표 기반 추세 추종 전략

개요

이 전략은 OBV 및 CCI 지표에 기반한 트렌드 추적 전략이다. 그것은 OBV 지표를 통해 시장의 추세와 자금 흐름을 판단하고, CCI 지표를 사용하여 파동을 가하여 거래 신호를 생성한다. OBV 및 CCI 지표가 현재 상승 추세라고 확인 할 때, 더 많이하고, OBV 및 CCI 지표가 현재 하향 추세라고 확인 할 때, 공백한다.

전략 원칙

이 전략은 주로 OBV와 CCI 두 지표에 의존한다. OBV 지표는 시장의 자금 흐름을 반영할 수 있다. OBV가 녹색일 때, 현재 자금 유입 추세를 나타낸다. OBV가 빨간 경우, 현재 자금 유출 추세를 나타낸다. CCI 지표는 파동을 필터링하기 위해 사용된다.

진입 신호 판단에서, 만약 전주기 OBV 값이 녹색 (자금 유입) 이고 CCI가 절벽값 (다중자리 시장) 보다 높다면, 동시에 OBV 라인을 EMA 평균선을 통과하여 구매 신호를 생성한다.

평점 신호 판단에서, 만약 전주기 OBV 값이 빨간색 ((자금 유출) 이고 CCI가 경량보다 낮다면 ((空頭市場에 속하는), 동시에 OBV는 선 아래로 EMA 평균선을 뚫고, 판매 신호를 생성한다.

이렇게 OBV를 통해 큰 방향을 판단하고, CCI 지표는 필러브를 하고, 둘은 using EMA 평균선의 금叉死叉을 결합하여 구체적인 거래 신호를 생성하여 트렌드 추적을 구현한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. OBV를 사용하여 시장의 자금 흐름과 트렌드 방향을 판단하여 단기 시장 소음에 방해받지 않도록하십시오.

  2. CCI 지표의 필터링을 통해 거래 신호를 더욱 신뢰할 수 있게 한다.

  3. EMA 평선 금叉死叉을 사용하여 특정 거래 신호 포인트를 생성하고, 품질이 높습니다.

  4. 규칙은 명확하고 간단하며, 이해하기 쉽고 실행하기 쉽습니다.

위험 분석

이 전략에는 몇 가지 잠재적인 위험도 있습니다.

  1. OBV 및 CCI 지표가 잘못된 신호를 보내는 가능성;

  2. 거래 신호가 빈번하고 과도하게 거래되기 쉽다.

  3. 이 사건으로 인해,

  4. 잘못된 변수 설정으로 인해 정책이 제대로 작동하지 않습니다.

이러한 위험은 최적화 매개 변수, 거래 빈도 조정, 스톱로스 설정 및 필터 사용 등의 방법으로 제어 및 최적화 할 수 있습니다.

최적화 방향

이 전략은 다음과 같은 방향으로 최적화될 수 있습니다.

  1. 전략 효과에 대한 다양한 변수들의 영향을 평가하고, 최적의 변수 조합을 찾습니다.

  2. 거래 빈도 제한을 설정하여 과도한 거래를 방지합니다.

  3. 단독 손실을 통제하기 위해 손해 방지 장치를 늘립니다.

  4. 다른 지표 필터를 추가하여 신호 품질을 향상시킵니다.

  5. 거래 신호의 신뢰성을 높이기 위해 평화 상고 로직에 대한 최적화.

요약하다

이 전략은 전체적으로 가격 동향을 효과적으로 추적하고, 노이즈 방해를 방지할 수 있는 기초적인 전략이다. 그러나 또한 약간의 위험도 존재하며, 파라미터 최적화, 스톱로스 설정, 거래 주파수 제어 등의 방법으로 개선할 필요가 있다. 파라미터를 과학적으로 선택하면, 재측 효과는 눈에 띄게 개선될 수 있다. 이 전략은 더 높은 수준의 정량 거래자 학습과 연습에 적합하다.

전략 소스 코드
/*backtest
start: 2023-02-14 00:00:00
end: 2024-02-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//author: SudeepBisht
//@version=3
strategy("SB_CCI coded OBV Strategy", overlay=true)

src = close
length = input(20, minval=1, title="CCI Length")
threshold=input(0, title="CCI threshold for OBV coding")
lengthema=input(13, title="EMA length")
obv(src) => 
    cum(change(src) > 0 ? volume : change(src) < 0 ? -volume : 0*volume)
    
o=obv(src)
c=cci(src, length)
col=c>=threshold?green:red
chk=col==green?1:0
ema_line=ema(o,lengthema)

//plot(o, color=c>=threshold?green:red, title="OBV_CCI coded", linewidth=2)
//plot(ema(o,lengthema), color=orange, linewidth=2)


if (not na(ema_line))
    if (crossover(o, ema_line) and chk[1]==1)
        strategy.entry("RsiLE", strategy.long, comment="RsiLE")
    if (crossunder(o, ema_line) and chk[1]==0)
        strategy.entry("RsiSE", strategy.short, comment="RsiSE")