
이 전략은 4개의 서로 다른 주기의 EMA 평균선을 비교하여 트렌드 추적 거래를 구현한다. 빠른 EMA 라인을 가로질러 중속 EMA 라인을, 중속 EMA 라인을 가로질러 느린 EMA 라인을, 느린 EMA 라인을 가로질러 가장 느린 EMA 라인을 통과할 때, 더 많이 한다. 빠른 EMA 라인을 가로질러 중속 EMA 라인을, 중속 EMA 라인을 가로질러 느린 EMA 라인을, 느린 EMA 라인을 가로질러 가장 느린 EMA 라인을 통과할 때, 공백한다. 이 전략은 동시에 날짜 오프닝 조건을 결합하고, 지정된 날짜 간격 내에서만 거래한다.
이 전략의 핵심 논리는 4 개의 EMA 평균 선의 비교를 기반으로 한다. EMA 평균 선은 가격 데이터를 효과적으로 평형화하여 시장 소음을 제거하고 주요 트렌드를 강조한다. 빠른 EMA 선은 가격 변화를 가장 빨리 반영하고, 중간 EMA가 약간 뒤쳐지고, 느린 EMA 선은 조금 뒤쳐지고, 가장 느린 EMA 선의 뒤떨어진 효과가 가장 크다. 빠른 EMA 선이 중간 고속선을 통과하면, 중간 EMA 선이 느린 선을 통과하면, 느린 EMA 선이 가장 느린 선을 통과하면, 현재 강한 상승 추세에 있음을 나타냅니다. 이 때 전략은 더 많은 포지션을 열고, 반대로 빠른 EMA 선이 중간선을 통과하면, 중간 EMA 선이 느리게 통과하면, 느린 EMA 선이 가장 느린 선을 통과하면, 현재 강한 하향 추세에 있음을 나타냅니다.
이 전략은 또한 날짜 조건 필터를 결합하여 지정된 날짜 범위 내에서만 거래하여 특정 기간의 비정상적인 변동이 전략에 영향을 미치지 않도록합니다.
구체적으로, 전략의 네 개의 EMA 평균선 주기는 각각 8 일, 13 일, 21 일 및 34 일입니다. 이 네 개의 평균선의 주기는 비교적 짧으며, 주로 단기 및 중기 트렌드를 포착하기 위해 사용됩니다. 전략이 지정한 날짜 범위는 2018년 6월 1일부터 2019년 12월 31일까지입니다.
4개의 EMA 트렌드 전략은 다음과 같은 장점이 있습니다.
이 전략에는 몇 가지 위험도 있습니다.
위와 같은 위험을 줄이기 위해 우리는 다음과 같은 몇 가지 측면에서 최적화 할 수 있습니다.
이 전략은 다음의 몇 가지 측면에서 최적화될 수 있습니다.
변수 최적화: EMA 평균선의 길이 변수를 조정하여 다른 주기 및 다른 품종에 적응하여 전략의 추세 판단을 더 정확하게 할 수 있습니다.
손해 방지 장치ATR 스톱 또는 트렌드 스톱과 같은 합리적인 스톱 포인트를 설정하여 단위 및 전체 위험을 제어하십시오.
필터 조건: 다른 보조 지표를 추가하여 트렌드가 명확하지 않은 경우 잘못된 신호를 발산하는 것을 피하십시오. 예를 들어 RSI, MACD와 같은 지표를 필터링 신호로 결합하십시오.
정지 철수: 합리적인 정지 위치 또는 전략을 설정하고, tren이 수익을 보장한 후에 시장에서 탈퇴한다. 이것은 수익을 잠금화하여 수익의 회귀를 방지할 수 있다.
알고리즘 거래: 전략을 파라미타화하고, 알고리즘 거래 시스템에 접속하여, 자동화 거래, expand 전략의 적용 범위를 구현한다.
이 전략은 4 개의 EMA 평균선 사이의 비교 관계 판단 트렌드 방향에 기초하고 있으며, 간단한 실용형 트렌드 추적 전략에 속한다. 그것은 신속하게 반응하고, 단기 및 중기 트렌드를 효과적으로 추적할 수 있으며, 재측량 효과가 좋다. 우리는 매개 변수를 조정하고, 보조 필터 조건을 추가하고, 스톱 로스 스톱을 설정하여 위험을 줄이고 효율성을 높일 수 있다. 또한, 매개 변수화 및 알고리즘화는 전략의 중요한 최적화 방향이기도 하며, 전략의 적용 면을 크게 향상시킬 수 있다.
/*backtest
start: 2022-12-19 00:00:00
end: 2023-12-25 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=3
strategy("4 EMA TREND Strategy ", overlay=true)
length1 = input(8, minval=1)
outFAST = ema(close,length1)
plot(outFAST, color=green ,linewidth=3)
length2 = input(13, minval=1)
outM = ema(close, length2)
plot(outM, color=yellow,linewidth=3)
length3 = input(21, minval=1)
outSLOW = ema(close, length3)
plot(outSLOW, color=red,linewidth=3)
length4 = input(34, minval=1)
outSLOWEST = ema(close, length4)
plot(outSLOWEST, color=black,linewidth=3)
price = close
yearfrom = input(2018)
yearuntil =input(2019)
monthfrom =input(6)
monthuntil =input(12)
dayfrom=input(1)
dayuntil=input(31)
if ( (outFAST>outM) and (outM > outSLOW) and(outSLOW>outSLOWEST))
strategy.entry("BUY", strategy.long, stop=close, oca_name="TREND", comment="BUY")
else
strategy.cancel(id="BUY")
if ( (outFAST<outM) and (outM<outSLOW) and (outSLOW <outSLOWEST))
strategy.entry("SELL", strategy.short,stop=close, oca_name="TREND", comment="SELL")
else
strategy.cancel(id="SELL")