이중 이동 평균 역전 전략

저자:차오장, 날짜: 2023-10-17 14:38:55
태그:

img

이중 이동 평균 역전 전략은 추세를 따르는 전략이다. 가격 추세가 역전되는지 결정하기 위해 다른 기간의 이동 평균을 계산하여 전환점을 파악하고 낮은 구매와 높은 판매를 달성합니다.

이 전략은 먼저 서로 다른 기간의 두 개의 이동 평균 세트를 계산합니다. 한 세트는 전체 트렌드를 결정하는 데 사용되는 장기 이동 평균 세트입니다. 다른 세트는 지역 트렌드를 결정하는 데 사용되는 단기 이동 평균 세트입니다. 두 개의 이동 평균 세트의 관계를 비교함으로써 전략은 전체 트렌드가 역전되었는지 판단합니다.

특히, 전략은 먼저 60일 간 간단한 이동 평균과 60일 가중화 이동 평균인 두 개의 장기간 (예를 들어 60일) 이동 평균을 계산합니다. 이 이동 평균 세트는 전체 트렌드를 결정하는 데 사용됩니다. 또한, 전략은 5일 간 간단한 이동 평균과 5일 가중화 이동 평균인 두 개의 단기 (예를 들어 5일) 이동 평균을 계산합니다. 이 이동 평균 세트는 지역 트렌드를 결정하는 데 사용됩니다.

단기 이동 평균이 장기 이동 평균을 넘으면 가격이 하향 경향에서 상승 경향으로 역전되었다는 것을 나타냅니다. 전략은 긴 포지션을 열 것입니다. 단기 이동 평균이 장기 이동 평균을 넘으면 가격이 상승 경향에서 하향 경향으로 역전되었다는 것을 나타냅니다. 전략은 짧은 포지션을 열 것입니다.

구체적인 단계는 다음과 같습니다.

  1. 60일 간 간단한 이동 평균 nma와 60일 가중 이동 평균 n2ma를 계산합니다.

  2. 5일 간 간단한 이동 평균 nma1과 5일 가중화 이동 평균 n2ma1을 계산합니다.

  3. n2ma1과 nma1을 비교하십시오: n2ma1이 nma1보다 높으면 긴 포지션을 열고, n2ma1이 nma1보다 낮으면 짧은 포지션을 열

  4. n2ma와 nma를 비교하십시오. n2ma가 nma를 넘어서고 긴 지위가 열리면 긴 지점을 계속 유지하십시오. n2ma가 nma를 넘어서고 짧은 지점이 열리면 짧은 지점을 계속 유지하십시오.

  5. 가격이 스톱 로스를 초과하거나 수익을 얻는 경우 포지션을 닫습니다.

  6. 트렌드 반전을 포착하고 낮은 구매 및 높은 판매를 달성하기 위해 위의 과정을 반복

이 전략의 장점은 이중 이동 평균 조합이 가격 트렌드의 반전을 민감하게 포착 할 수 있다는 것입니다. 이중 이동 평균 크로스오버는 고전적인 기술 지표 신호입니다. 또한, 다른 기간 이동 평균 조합은 전체 및 지역 트렌드를 판단하여 트렌드를 따라 할 수 있습니다.

이 전략의 위험은 이중 이동 평균 크로스오버가 잘못된 신호를 가질 수 있으며, 입점 또는 출점 시기를 잘못하여 거래 위험을 증가시킬 수 있다는 것입니다. 또한, 이동 평균 시스템은 범위 제한 시장에서 잘못된 신호에 취약합니다. 마지막으로, 이중 이동 평균 시스템은 매개 변수 설정의 안정성을 확인하기 위해 비교적 긴 백테스팅 기간을 필요로합니다.

이 전략은 다음과 같은 측면에서 최적화 될 수 있습니다.

  1. 가장 좋은 매개 변수 조합을 찾기 위해 이동 평균 기간을 최적화

  2. 가짜 브레이크를 피하기 위해 다른 기술 지표 필터를 추가합니다.

  3. 단일 거래 위험을 제어하기 위해 스톱 로스를 추가하고 수익을 취하십시오.

  4. 트렌드 거래 타이밍과 결합하여 측면 시장에서 잘못된 거래를 피합니다.

  5. 변화하는 시장 변동성에 적응하기 위해 포지션 크기를 동적으로 조정합니다.

결론적으로, 이중 이동 평균 역전 전략은 다른 기간 이동 평균을 비교하여 가격 트렌드 전환점을 캡처하여 낮은 구매와 높은 판매를 달성합니다. 매개 변수 설정을 최적화하고 필터를 추가하고 위험을 제어하는 것이 전략을 개선하는 방향입니다. 올바르게 사용하면 트렌드 역전을 수치적으로 캡처하는 효과적인 도구가 될 수 있습니다.


/*backtest
start: 2022-10-10 00:00:00
end: 2023-06-08 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=2
//                   //////////////// Attempt to Reduced ReDraw version /////////////////////
//
//                         Microcana.com strategy by pilotgsms - version 4.20b <<<< Edited by Seaside420 >>>> special thanks to 55cosmicpineapple
//                            Hull_MA_cross added to script
strategy("M&H_v420b", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100, calc_on_order_fills= true, calc_on_every_tick=true, pyramiding=0)
dt = input(defval=0.0010, title="Decision Threshold", type=float, step=0.0001)
dd = input(defval=1, title="Post Signal Bar Delay", type=float, step=1)
df = input(defval=5, title="Close Position Bar Delay", type=float, step=1)
keh=input(title="Double HullMA Cross",defval=7, minval=1)
confidence=(request.security(syminfo.tickerid, 'D', close)-request.security(syminfo.tickerid, 'D', close[1]))/request.security(syminfo.tickerid, 'D', close[1])
prediction = confidence > dt ? true : confidence < -dt ? false : prediction[1]
n2ma=2*wma(close,round(keh/2))
nma=wma(close,keh)
diff=n2ma-nma,sqn=round(sqrt(keh))
n2ma1=2*wma(close[2],round(keh/2))
nma1=wma(close[2],keh)
diff1=n2ma1-nma1,sqn1=round(sqrt(keh))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
openlong=prediction[dd] and n1>n2 and strategy.opentrades<1
if (openlong)
    strategy.entry("Long", strategy.long)
openshort=not prediction[dd] and n2>n1 and strategy.opentrades<1
if (openshort)
    strategy.entry("Short", strategy.short)
closeshort=prediction and close<low[df]
if (closeshort)
    strategy.close("Short")
closelong=not prediction and close>high[df]  
if (closelong)
    strategy.close("Long")

더 많은