이동평균 골든크로스 전략
개요
평평선 골드 크로스 전략은 비교적 흔한 양적 거래 전략이다. 이 전략은 두 가지 다른 변수의 지수 이동 평균을 이용한다. 단기 EMA 상에서 장기 EMA를 통과할 때, 더 많이 한다. 단기 EMA 아래에서 장기 EMA를 통과할 때, 평소한다. 이 전략은 단기 EMA가 가격 변화에 더 빨리 반응하고, 장기 EMA가 트렌드를 더 잘 반영할 수 있는 특징을 이용한다.
전략 원칙
이 전략은 먼저 두 개의 EMA 평균선을 정의하고, EMA1의 길이는 10이고, EMA2의 길이는 21이다. 그리고 두 개의 평균선의 값을 산출한다. EMA1에서 EMA2를 통과하면, 가격이 상향으로 돌파되기 시작한다는 것을 나타냅니다.
가짜 돌파를 필터링하기 위해, 코드는 또한 한계값을 정의하고, 계산 공식은 다음과 같다:
pine
threshold = ((ema1 - ema2)*100) / ((ema1 + ema2)/2)
이 <unk>값은 두 평균선 간격이 평균선 평균값에 차지하는 비율을 나타낸다. threshold이 0.15%보다 크면 더 많은 신호를, -0.006보다 작으면 평점 신호를 한다.
전체적으로, 이 전략의 거래 신호는 다음과 같습니다.
- 다중 신호: eMA1에 eMA2를 끼고 threshold >= 0.15%
- 평지 신호: EMA1 아래 EMA2를 통과하고 threshold <= -0.006%
우위 분석
이 전략은 다음과 같은 장점을 가지고 있습니다.
-
EMA 평균선을 사용하여 가격 데이터를 평형화하여 거래 신호를 생성하는 데 도움이됩니다.
-
이중 EMA는 반응 속도와 안정성에서 균형을 잡을 수 있는 다른 매개 변수를 설정한다.
-
임계값을 높여서 가짜 침입을 필터링하고, 불필요한 거래를 방지할 수 있다.
-
전략은 간단하고 명확하며, 이해하기 쉬운 구현이며, 양자 거래 초보자에게 적합합니다.
-
전략 효과를 최적화하기 위해 EMA 변수와 임계값을 유연하게 조정할 수 있다.
위험 분석
이 전략에는 몇 가지 위험도 있습니다.
-
EMA 평균선은 가격에 뒤쳐져 있고, 단선 거래 기회를 놓칠 수 있다.
-
"이런 상황이라면, 우리는 더 큰 손실을 입을 수 있다".
-
threshold <unk>값을 잘못 설정하면 유효한 신호를 필터링하거나 잘못된 신호를 발산할 수 있다.
-
EMA 매개 변수는 적절하지 않으며, 단기 및 장기 EMA는 명백한 특징 차이가 없으며, 잘못된 신호를 발생시킨다.
-
대장 변동은 스톱 손실로 이어질 수 있으며, 이를 뚫을 경우 합리적인 스톱 손실을 설정해야 한다.
최적화 방향
이 전략은 다음과 같은 부분에서 최적화될 수 있습니다.
-
EMA 매개 변수를 최적화하고, 다른 주기 매개 변수가 전략 효과에 미치는 영향을 테스트한다.
-
임계 <unk>값을 최적화하여, 가짜 신호를 필터링하고 유효 신호를 유지합니다.
-
MACD, KDJ 등과 같은 다른 기술 지표 판단을 추가하여 거래 신호를 종합적으로 판단한다.
-
손해 제도에 가입할 수 있으며, 이동적 손해 또는 상장적 손해 제도를 통해 단편적 손해를 통제할 수 있다.
-
단일 입점의 위험을 줄이기 위해, 분량 창고 구축 방법을 추가하는 것을 고려할 수 있습니다.
-
다른 포지션 기간을 테스트하여 더 적합한 포지션 기간을 찾습니다.
요약하다
평행선 황금십자 전략 전체적인 아이디어는 명확하고 이해하기 쉽고, EMA 평행선의 특성을 이용하여 거래 신호를 판단한다. 이 전략에는 어느 정도의 장점이 있지만, 또한 몇 가지 잠재적인 위험을 주의해야 한다. 변수 최적화, 손해 방지 설정, 신호 필터링 등의 방법을 통해 더 나은 전략 효과를 얻을 수 있다. 이 전략은 협동량 거래의 입문 전략으로 학습하고 연습하기에 적합하다.
/*backtest
start: 2023-08-18 00:00:00
end: 2023-09-17 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
if high > ta.highest(high[1], 5)
strategy.entry("Enter Long", strategy.long)
else if low < ta.lowest(low[1], 5)
strategy.entry("Enter Short", strategy.short)//@version=3- 1
