파동 채널과 자금 흐름 지표를 기반으로 한 추세 추종 전략


생성 날짜: 2023-11-16 16:38:03 마지막으로 수정됨: 2023-11-16 16:38:03
복사: 0 클릭수: 703
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

파동 채널과 자금 흐름 지표를 기반으로 한 추세 추종 전략

개요

이 전략은 파동 채널 지표와 자금 흐름 지표가 결합된 방식을 채택하여 트렌드 방향을 식별하고 트렌드 추적을 수행한다. 전략은 15 분 시간 주기에서 실행되며, 파동 채널을 통해 가격 트렌드 방향을 판단하고, 다시 자금 흐름 지표를 사용하여 트렌드 확인을 수행하여 초단선 트렌드 추적을 수행한다.

전략 원칙

파동 채널 지표 (WaveTrend) 는 가격의 추세 방향을 효과적으로 식별할 수 있다. 그것은 채널 평균선, 채널 평균 가격 및 채널 인덱스로 구성된다. 채널 평균선은 가격의 지수 이동 평균이며, 가격 추세를 반영한다. 채널 평균선은 채널 평균선의 이동 평균이며, 채널 평균선을 위치시키는데 사용된다. 채널 인덱스는 채널 평균선에서 가격이 얼마나 벗어났는지 반영하고, 과매 신호를 준다.

자금 흐름 지표 (CMF) 는 자금의 유입 흐름을 판단하여 트렌드를 확인한다. 이 지표는 거래량 조정 후 축적/배출 라인을 기반으로, 구매자와 판매자의 힘의 대립을 반영한다. 값은 0 근처에서 자금 유입 흐름을 나타냅니다. 균형; 0보다 낮은 것은 자금 유출을 나타내고, 0보다 높은 것은 자금 유입을 나타냅니다.

이 전략은 15분 주기적으로 실행되며, 파동 채널 지표에 의해 가격 트렌드 방향을 판단한 후, 자본 흐름 지표를 사용하여 확인하여 트렌드를 추적합니다. 구체적으로, 파동 채널 지표 채널 지표가 60보다 낮고 자본 흐름 지표가 -0.2보다 작으면 더 많이; 파동 채널 지표 채널 지표 지표가 60보다 높고 자본 흐름 지표가 0.2보다 크면 공평 포지션을 수행합니다.

전략적 이점

  1. 파도 통지 지표는 가격 동향을 효과적으로 판단할 수 있다.
  2. 자본 흐름 지표는 트렌드 방향을 확인하여 잘못된 거래를 방지합니다.
  3. 파동 채널과 자금 흐름 지표의 결합으로 초단선 트렌드 추적이 가능합니다.
  4. 15분 주기 운영, 짧은 라인 운영에 더 적합

전략적 위험

  1. 파도 통지 지표는 정렬 중에 잘못된 신호를 생성할 수 있습니다.
  2. 유동 지표가 추세 전환점을 놓칠 수 있다
  3. 단일 주기 운영 위험성이 높기 때문에 포지션 주기를 적절히 완화해야 합니다.
  4. 단편적 손실을 통제할 수 없는 막부 전략의 부재

위험 해결 방법:

  1. 다른 지표와 함께 확인하여 잘못된 신호를 피하십시오.
  2. 자금 흐름 지표의 매개 변수를 적절히 조정하여 민감성을 높여라
  3. 1주기 위험을 줄이기 위해 포지션 주기를 적절히 연장할 수 있습니다.
  4. 이동 중지, 전환 중지, 손실을 제어하는 전략을 추가하십시오.

전략 최적화 방향

  1. 트렌드를 추적할 수 있는 전략으로 포지션 최적화를 추가합니다.
  2. 단편적 손실을 통제하기 위한 전략
  3. stoch 다공간 지표 등과 결합하여 단일 지표로 인해 잘못된 신호가 발생하지 않도록
  4. 다양한 포지션 기간을 테스트하여 최적의 포지션 주기를 찾습니다.
  5. 자본 흐름 지표 파라미터를 최적화하여 최적의 조합을 찾습니다.

요약하다

이 전략은 파동 채널 지표를 사용하여 트렌드 방향을 판단하고, 자본 흐름 지표를 확인하여, 초단계 트렌드 추적 작업을 수행한다. 전략의 장점은 지표 포트폴리지가 합리적이고, 효과적으로 트렌드를 추적할 수 있으며, 15 분 주기 운영은 단계 작업에 더 적합하다. 그러나 지표 신호의 부정확성, 포지션 보유 시간 너무 짧음 등과 같은 위험도 존재한다. 장래에는 손해 방지 전략, 변수 최적화, 신호 필터링을 증가시키는 등의 방법으로 추가적으로 최적화하여 전략의 안정성과 수익률을 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2023-11-08 00:00:00
end: 2023-11-15 00:00:00
period: 1m
basePeriod: 1m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
strategy(title = "CMF - WaveTrend", shorttitle = "CMF - WaveTrend", overlay = true, pyramiding = 0, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, currency = currency.EUR)

//Chaikin Money Flow

len = input(20, minval=1, title="Length")
mas = input(title="Aggregation", defval="SUM", options=["SUM", "EMA", "WMA"])
e = input(10.0, title="Volume Exponent (0-10 reduces & 10+ increases volume effect)")
p = input(false, title="Show in Percentage")
mvs = input(false, "Factor in Price (Money Volume)")
src=input(hlc3, title="Source for price factor")

trl = min(low,close[1]), trh = max(high,close[1]) // 'true range' fixes issues caused by gaps in price
wv = pow(volume,e/10.0)*(mvs ? src : 1)
ad = (trh==trl ? 0 : (2*close-(trh+trl))/tr(true))*wv
cmf = mas=="SUM" ? sum(ad, len)/sum(wv, len) : mas=="EMA" ? ema(ad, len)/ema(wv, len) : mas=="WMA" ? wma(ad, len)/wma(wv, len) : na
cmf_p  = if p
    50*cmf+50
else
    cmf
b = p ? 50 : 0


//WaveTrend
n1 = input(10, "Channel Length")
n2 = input(21, "Average Length")
obLevel1 = input(60, "Over Bought Level 1")
obLevel2 = input(53, "Over Bought Level 2")
osLevel1 = input(-60, "Over Sold Level 1")
osLevel2 = input(-53, "Over Sold Level 2")
 
ap = hlc3 
esa = ema(ap, n1)
d = ema(abs(ap - esa), n1)
ci = (ap - esa) / (0.015 * d)
tci = ema(ci, n2)
 
wt1 = tci
wt2 = sma(wt1,4)
// 


longCondition = wt1 < -60 and cmf < - 0.20
if (longCondition)
 
    strategy.entry("My Long Entry Id", strategy.long)
    
 
shortCondition = wt1 > 60 and cmf > 0.20
if (shortCondition)
 
    strategy.entry("My Short Entry Id", strategy.short)
    
closeLongCondition = cmf_p > 0.18 ? true : false
closeShortCondition = cmf_p < -0.18 ? true : false
    
    
strategy.close("My Long Entry Id", when=(closeLongCondition == true))
strategy.close("My Short Entry Id", when=(closeShortCondition == true))