추세 추종 이동 평균 기반 전략


생성 날짜: 2024-02-29 14:00:35 마지막으로 수정됨: 2024-02-29 14:00:35
복사: 0 클릭수: 599
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

추세 추종 이동 평균 기반 전략

개요

이 전략은 통로 평균선을 계산하여 가격이 통로 평균선을 돌파할 때 다단 또는 공단 포지션을 설정하고, 주식 가격 추세를 추적하는 전략에 속한다.

전략 원칙

이 전략은 먼저 20일 고점의 평균값을 통로 상향 궤도로, 20일 저점의 평균값을 통로 하향 궤도로 계산하고, 통로 중선을 계산한다. 통로 중선은 최근의 가격 평균 경향을 나타낸다. 가격이 위쪽에서 통로 중선을 통과하면 다단위 포지션을 설정하고, 가격이 아래쪽에서 통로 중선을 통과하면 공백 포지션을 설정한다. 가격 추세를 추적하여 가격이 통로 간 반향으로 다시 내려가기 전까지 평점 포지션을 설정한다.

우위 분석

  • 채널을 이용해서 가격 동향을 추적하고, 횡단 시장에 갇히지 않도록 한다.
  • 이 사이트는 온라인 상에서 거래할 수 있는 모든 상품과 상품을 제공하고 있습니다.
  • 이 채널의 범위는 일부 소음을 필터링하여 수익률을 높여줍니다.
  • 통로 매개 변수를 구성하여 전략의 민감도를 조정할 수 있습니다.

위험 분석

  • 큰 돌파 통로 중선을 통과한 후 재조정 테스트 중선이 발생할 수 있는 상황, 이 때 고정됩니다.
  • 이 전략에는 주식의 충격형이 적합하지 않으며, 주식 거래의 빈도가 높기 때문에 주식 거래의 빈도가 높습니다.
  • 잘못된 변수 설정은 정책의 효과에 영향을 줄 수 있습니다.

최적화 방향

  • 채널 사이클 변수를 최적화하고, 다른 변수들이 전략 효과에 미치는 영향을 테스트합니다.
  • 단편적 손실과 전체적 손실을 통제하기 위한 스톱 스톱 손실 전략을 강화합니다.
  • 다른 지표와 함께 판단을 도와서 잘못된 신호를 피하십시오.
  • 단계적으로 창고를 건설하여 재조정 테스트 중선을 뚫고 넘어가는 확률을 낮출 수 있습니다.

요약하다

이 전략은 전반적으로 단순하고 직접적이며, 기본 가격 통로를 통해 주식 가격 동향을 판단하며, 트렌드 추적 유형 전략에 속한다. 장점은 조작이 쉽고, 가격 동향으로 인한 투자 기회를 최대한 활용하고, 자금이 잠금되는 것을 피한다. 단점은 파라미터 설정을 잘못하면 효과에 영향을 미칠 수 있으며, 일정 조정 테스트의 위험이 있다. 합리적인 최적화를 통해 전략의 안정성을 높이고 실적 실적을 향상시킬 수 있다.

전략 소스 코드
/*backtest
start: 2024-01-01 00:00:00
end: 2024-01-31 23:59:59
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
//future strategy
//strategy(title = "stub", default_qty_type = strategy.fixed, default_qty_value = 1,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=2)
//stock strategy
strategy(title = "dc", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.cash_per_contract,commission_value=.005)
//forex strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true)
//crypto strategy
//strategy(title = "stub", default_qty_type = strategy.percent_of_equity, default_qty_value = 20,  overlay = true, commission_type=strategy.commission.percent,commission_value=.25,default_qty_value=20)


testStartYear = input(2000, "Backtest Start Year")
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay,0,0)

testEndYear = input(2019, "Backtest Start Year")
testEndMonth = input(3)
testEndDay = input(31, "Backtest Start Day")
testPeriodEnd = timestamp(testStartYear,testStartMonth,testStartDay,0,0)


testPeriod() =>
    true
    //time >= testPeriodStart  ? true : false

dcPeriod = 20

dcUpper = highest(close, dcPeriod)[1]
dcLower = lowest(close, dcPeriod)[1]
dcAverage = (dcUpper + dcLower) / 2

plot(dcLower, style=line, linewidth=3, color=red, offset=1)
plot(dcUpper, style=line, linewidth=3, color=aqua, offset=1)

plot(dcAverage, color=black, style=line, linewidth=3, title="Mid-Line Average")

strategy.entry("simpleBuy", strategy.long, when=close > dcAverage)
strategy.close("simpleBuy",when=close < dcLower)
    
strategy.entry("simpleSell", strategy.short,when=close < dcAverage)
strategy.close("simpleSell",when=close > dcAverage)