
이중 이동 평균 골든 크로스 양적 전략 (Dual Moving Average Golden Cross Quantitative Strategy) 은 기술적 지표 양적 거래 전략이다. 그것은 두 개의 다른 주기간의 평균을 계산하여, 시장의 흐름을 판단하여, 낮은 위험 거래를 실현한다. 짧은 주기간의 평균선 상에서 더 긴 주기간의 평균선 을 통과할 때, 황금 크로스 신호를 생성하고, 더 많이 한다. 짧은 주기간의 평균선 아래에서 더 긴 주기간의 평균선 을 통과할 때, 사망 크로스 신호를 생성하고, 공백을 한다. 이 전략은 동시에 가격 통로 지표를 결합하여, 가짜 돌파를 피한다.
쌍평균선 금십자량화 전략은 평평선 이론을 기반으로 한다. 평평선은 효과적으로 시장 소음을 스프링하여 장기 트렌드 방향을 나타낸다. 단기평균선에서 더 긴 주기평균선을 통과할 때, 아래에서 위쪽으로 역전되는 것을 뜻하며, 구매 신호에 속한다. 단기평균선 아래에서 긴 평균선을 통과할 때, 상향에서 아래로 역전되는 것을 뜻하며, 판매 신호에 속한다. 이 전략은 두 개의 평균선을 설정한다.
이 전략의 핵심 코드 논리는 다음과 같습니다.
그 원칙은 다음과 같습니다.
쌍평평선 교차를 통해 단기 트렌드 반전점을 판단하고, 파라미터 필터를 설정하여 잘못된 거래를 피한다. 이 전략은 단기 조정 후의 트렌드 반전 기회를 효과적으로 포착할 수 있으며, 수익 인자는 높다.
이중평등선 금십자량화 전략은 다음과 같은 장점이 있다:
이중 평행 선의 골드 크로스 수량화 전략에는 다음과 같은 위험도 있습니다.
위험은 다음과 같은 방법으로 줄일 수 있습니다.
이중평평선 금십자량화 전략은 다음과 같은 측면에서 최적화될 수 있다:
변수 최적화: 평균선 변수와 통로 지표 변수를 조정하고, 최적의 변수 조합을 선택한다. 유전 알고리즘과 같은 도구를 사용하여 보조 최적화를 할 수 있다.
선택에 있어서: 다양한 품종의 특성에 따라 가장 잘 맞는 평균선 변수를 선택하십시오. 예를 들어 관심있는 품종은 더 짧은 주기 평균선을 설정합니다.
손해 방지 전략의 최적화: float 동적 정지, 정지 추적 등의 정지 방법을 설정하고, 회귀 정지 를 피한다.
동방향 운영 최적화: 트렌드 지표와 결합하여 동방향으로 거래하고 역대 거래를 피하십시오.
기계학습과 결합된: 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)