이중 이동 평균을 이용한 거래 전략


생성 날짜: 2024-01-26 14:45:55 마지막으로 수정됨: 2024-01-26 14:45:55
복사: 0 클릭수: 578
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이중 이동 평균을 이용한 거래 전략

개요

이중 이동 평균 거래 전략 (Dual Moving Average Trading Strategy) 은 두 개의 다른 주기 이동 평균을 사용하여 거래 신호를 구축하는 정량 거래 전략이다. 이 전략은 두 개의 이동 평균 사이의 관계를 계산하여 시장의 추세와 기회를 판단하여 추세적인 상황에서 좋은 추적 효과를 갖는다.

전략 원칙

이 전략은 주로 두 개의 이동 평균을 사용하여 기술 지표 분석을 수행한다. 전략은 짧은 기간의 5 일 이동 평균 ma0과 더 긴 기간의 21 일 이동 평균 ma1을 정의한다. 전략은 가격과 ma0의 차이는osc0과 ma0과 ma1의 차이는osc1의 양과 음을 비교하여 현재 트렌드 상태를 판단한다.

osc0>0과osc1>0일 때, 단기평균선이 장기평균선을 뚫고 올라간 것을 나타내고, 다면행동에 속한다.osc0과osc1일 때, 단기평균선이 장기평균선을 뚫고 내려간 것을 나타내고, 공백행동에 속한다. 전략은 다면행동을 판단할 때, 입점수입을 취하고, 공백행동을 판단할 때, 입점판매를 취한다.

포지션을 개시한 후, 전략은 osc0 및 osc1의 실시간 변화를 모니터링하여 포지션의 수익 공간을 판단합니다. 다수 상자가 포지션을 보유한 후 osc0 및 osc1 이 되면, 트렌드 반전이 나타납니다. 이 때 다수 상자의 포지션을 평면합니다.

우위 분석

이중 이동 평균 거래 전략은 다음과 같은 장점이 있습니다.

  1. 간단한 운영 방식, 이해하기 쉬운 구현, 양자 거래 초보자에게 적합합니다.

  2. “전시 거래, 트렌드 트렌드, 더 좋은 수익”

  3. 이동 평균의 주기적 매개 변수를 조정하여 시장의 특성에 맞게 조정할 수 있습니다.

  4. 다른 지표나 전략 조합과 함께 사용할 수 있습니다.

위험 분석

이중 이동 평균 거래 전략에는 몇 가지 위험도 있습니다.

  1. 동향이 역전될 때, 적당히 막지 못하면 큰 손실이 발생할 수 있습니다.

  2. “지진으로 인한 피해가 더 많고, 이를 달성하는 데 더 큰 어려움이 있습니다.

  3. 5일과 21일은 최적의 변수가 아닙니다.

  4. 거래 신호가 늦어지고, 입장이 늦어지는 것은 수익률에 영향을 미칠 수 있다.

최적화 방향

이중 이동 평균 거래 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 실제 트렌드의 시작을 VOL와 결합하여 가짜 돌파구를 피하십시오.

  2. 거래 신호의 신뢰성을 보장하기 위해 가격 돌파구, 거래량 증대 등의 추가 판단 조건을 추가합니다.

  3. 지분을 동적으로 상쇄하고 적자를 제시적으로 통제합니다.

  4. 이동 평균 차이의 변수 값을 최적화하여 오류율을 줄인다.

  5. 기계 학습 방법을 사용하여 이동 평균의 주기 변수를 자동으로 최적화하십시오.

요약하다

이중 이동 평균 거래 전략은 전체적으로 고전적이고 실용적인 트렌드 추적 전략이다. 이 전략은 작동이 간단하며, 수량 거래 초보자 연습에 적합하다. 우연히도, 추적 효과는 좋다. 확장성이 강하며, 다른 기술 지표 및 전략 조합과 쉽게 결합된다. 그러나 이 전략에는 또한 몇 가지 결함이 있으며, 이상 행동을 처리하고, 위험을 줄이고, 안정성을 높이기 위해 추가적인 최적화가 필요합니다.

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

//@version=2
strategy("[STRATEGY][RS]MA Strategy test V0", overlay=true)
length0 = input(5)
length1 = input(21)

isinsession = not na(time('1', '0400-1500'))
price = open

ma0 = ema(ema(price, length0), length0)
ma1 = ema(ema(price, length1), length1)
plot(ma0, color=navy)
plot(ma1, color=black)

osc0 = price-ma0
osc1 = ma0-ma1

isbull = osc0 > 0 and osc1 > 0
buy_condition = isinsession and isbull and not isbull[1]
buy_exit_condition = osc0 < 0 and osc1 < 0
strategy.entry("buy", strategy.long, comment="buy", when=buy_condition)
strategy.close(id='buy', when=buy_exit_condition)

isbear = osc0 < 0 and osc1 < 0
sell_condition = isinsession and isbear and not isbear[1]
sell_exit_condition = osc0 > 0 and osc1 > 0
strategy.entry("sell", strategy.short, comment="sell", when=sell_condition)
strategy.close(id='sell', when=sell_exit_condition)

//plot(strategy.equity, title="equity", color=red, linewidth=2, style=areabr)