더블 이동 평균 골든 크로스 양적 전략


생성 날짜: 2023-12-26 17:02:29 마지막으로 수정됨: 2023-12-26 17:02:29
복사: 2 클릭수: 810
avatar of ChaoZhang ChaoZhang
1
집중하다
1623
수행원

더블 이동 평균 골든 크로스 양적 전략

개요

이중 이동 평균 골든 크로스 양적 전략 (Dual Moving Average Golden Cross Quantitative Strategy) 은 기술적 지표 양적 거래 전략이다. 그것은 두 개의 다른 주기간의 평균을 계산하여, 시장의 흐름을 판단하여, 낮은 위험 거래를 실현한다. 짧은 주기간의 평균선 상에서 더 긴 주기간의 평균선 을 통과할 때, 황금 크로스 신호를 생성하고, 더 많이 한다. 짧은 주기간의 평균선 아래에서 더 긴 주기간의 평균선 을 통과할 때, 사망 크로스 신호를 생성하고, 공백을 한다. 이 전략은 동시에 가격 통로 지표를 결합하여, 가짜 돌파를 피한다.

전략 원칙

쌍평균선 금십자량화 전략은 평평선 이론을 기반으로 한다. 평평선은 효과적으로 시장 소음을 스프링하여 장기 트렌드 방향을 나타낸다. 단기평균선에서 더 긴 주기평균선을 통과할 때, 아래에서 위쪽으로 역전되는 것을 뜻하며, 구매 신호에 속한다. 단기평균선 아래에서 긴 평균선을 통과할 때, 상향에서 아래로 역전되는 것을 뜻하며, 판매 신호에 속한다. 이 전략은 두 개의 평균선을 설정한다.

이 전략의 핵심 코드 논리는 다음과 같습니다.

  1. 2일 평균선, 3일 평균선, 420일 평균선
  2. 2일 평균선과 3일 평균선의 황금 포크 사각형을 판단
  3. 420 일 평균 선 필터링 신호를 사용하여 가짜 돌파구를 피하십시오.
  4. 구매 및 판매 신호를 생성

그 원칙은 다음과 같습니다.

  1. 마지막 3 일간의 종결 가격을 계산하기 2 일간 간소 이동 평균 n2ma 및 3 일간 간소 이동 평균 nma
  2. 지난 420일 동안의 종전 가격의 중도 이동 평균 rvwma를 계산합니다.
  3. n2ma 상에 nma를 착용할 때 구매 신호가 발생
  4. n2ma 아래 nma를 통과할 때 판매 신호를 생성한다
  5. rvwma 필터링 신호를 사용하여, rvwma 아래에 있는 n2ma만이 구매 신호를 생성하고, rvwma 위에 있는 n2ma만이 판매 신호를 생성합니다.

쌍평평선 교차를 통해 단기 트렌드 반전점을 판단하고, 파라미터 필터를 설정하여 잘못된 거래를 피한다. 이 전략은 단기 조정 후의 트렌드 반전 기회를 효과적으로 포착할 수 있으며, 수익 인자는 높다.

우위 분석

이중평등선 금십자량화 전략은 다음과 같은 장점이 있다:

  1. 간단하고 믿을 수 있습니다.: 쌍평평선 교차 이론을 사용하여, 단기 가격 변화의 경향을 판단하고, 신호를 단순하고 명확하게 생성한다.
  2. 매우 민감합니다.2일 및 3일 평균선 파라미터 설정은 상대적으로 민감하며, 단기 가격 변화를 빠르게 포착할 수 있다.
  3. 노이즈 필터가격 통로 지표를 도입하여 잡음을 효과적으로 필터링하여 잘못된 거래를 방지합니다.
  4. 매우 적응력이 좋다: 쌍평선 교차 이론은 다른 품종과 다른 주기에는 적용되며, 쉽게 구현된다.
  5. 최적화하기 쉽다: 평균선 변수 조합을 변경, 필터 변수를 조정, 전략 최적화 공간이 넓다.
  6. 실체 검증: 이 같은 쌍평선 교차 전략은 실전에서 검증되어 효과가 안정적이다.

위험 분석

이중 평행 선의 골드 크로스 수량화 전략에는 다음과 같은 위험도 있습니다.

  1. 회귀 위험“이번 거래는 금전적 손실을 유발할 수 있다”.
  2. 추세 반전 위험이 사건으로 인해 시장의 장기적인 추세는 손실로 돌아갔다.
  3. 매개변수 최적화 위험: 잘못된 매개 변수는 정책 효과를 저하시킬 수 있다.
  4. 과대 최적화 위험: 매개 변수를 지나치게 최적화하면 너무 잘 어울릴 수 있다.
  5. 실盘偏差 위험: 실디와 재측정에서 오차가 있을 경우 결과가 달라질 수 있다.

위험은 다음과 같은 방법으로 줄일 수 있습니다.

  1. 합리적인 스톱로스 레벨을 설정하고 단편적 손실을 통제하십시오.
  2. 기본적 분석과 함께 역시장 거래를 피하십시오.
  3. 적절한 품종과 적절한 주기 최적화를 선택하십시오.
  4. 매개 변수 감수성 테스트를 해보세요.
  5. 실체 검증 링크를 추가하십시오.

최적화 방향

이중평평선 금십자량화 전략은 다음과 같은 측면에서 최적화될 수 있다:

  1. 변수 최적화: 평균선 변수와 통로 지표 변수를 조정하고, 최적의 변수 조합을 선택한다. 유전 알고리즘과 같은 도구를 사용하여 보조 최적화를 할 수 있다.

  2. 선택에 있어서: 다양한 품종의 특성에 따라 가장 잘 맞는 평균선 변수를 선택하십시오. 예를 들어 관심있는 품종은 더 짧은 주기 평균선을 설정합니다.

  3. 손해 방지 전략의 최적화: float 동적 정지, 정지 추적 등의 정지 방법을 설정하고, 회귀 정지 를 피한다.

  4. 동방향 운영 최적화: 트렌드 지표와 결합하여 동방향으로 거래하고 역대 거래를 피하십시오.

  5. 기계학습과 결합된: LSTM, RNN 등과 같은 딥러닝 모델을 사용하여 신호 품질을 판단하고 입학 시기를 결정한다.

요약하다

쌍평선 황금십자량화 전략은 간단한 평선십자원칙을 통해 가격 단기 경향을 판단한다. 통로 지표를 설정하면 오류 신호를 효과적으로 필터링한다. 전략 논리는 간단하게 구현하기 쉽고, 매개 변수를 조정하는 것은 유연하며, 실제 검증 효과는 좋습니다. 이는 매개 변수 최적화, 손해 방지 최적화, 기계 학습 등의 수단으로 업그레이드 할 수 있으며, 효과는 더 좋아서 디지털 통화, 주식 등의 종류의 알고리즘 거래에 적합하다.

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

//@version=4
//                                                Indicator420 by SeaSide420
strategy("Indicator420 strategy", overlay=true)
q=input(title="HullMA",defval=420)
z=input(title="HullMA cross",defval=3)
a=input(title="VWMA",defval=14)
rvwma=vwma(close,round(a))
rvwma2=vwma(close,round(a*2))
rvwma3=vwma(close,round(a*3))
n2ma=2*wma(close,round(z/2))
nma=wma(close,z)
diff=n2ma-nma
sqn=round(sqrt(z))
n2ma1=2*wma(close[1],round(z/2))
nma1=wma(close[1],z)
diff1=n2ma1-nma1
sqn1=round(sqrt(z))
n2ma2=2*wma(close[2],round(q/2))
nma2=wma(close[2],q)
diff2=n2ma2-nma2
sqn2=round(sqrt(q))
n1=wma(diff,sqn)
n2=wma(diff1,sqn)
n3=wma(diff2,sqn)
b=n1>n2?red:lime
c=n1>n2?green:red
d=n3>rvwma3?red:green
e=rvwma2>rvwma3?green:red
f=n1>n2?red:green
//plot(rvwma3, color=e, linewidth=1)
plot(cross(rvwma, rvwma2) ? rvwma : na, style = line,color=e, linewidth = 1)
plot(cross(n1, n2) ? n1 : na, style = line,color=b, linewidth = 3)
plot(cross(n1, n2) ? n1 : na, style = circles,color=c, linewidth = 4)
closelong = n1<n2
if (closelong)
    strategy.close("Long")
closeshort = n1>n2
if (closeshort)
    strategy.close("Short") 
longCondition = n1>n2 and strategy.opentrades<1 and n1<rvwma3
if (longCondition)
    strategy.entry("Long",strategy.long)
shortCondition = n1<n2 and strategy.opentrades<1 and n1>rvwma3
if (shortCondition)
    strategy.entry("Short",strategy.short)