이동 평균 스태킹 전략


생성 날짜: 2024-01-22 12:21:47 마지막으로 수정됨: 2024-01-22 12:21:47
복사: 2 클릭수: 906
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

이동 평균 스태킹 전략

개요

이동 평균 겹쳐서 전략은 서로 다른 기간의 이동 평균을 계산하고 그들의 교차 상황에 따라 거래 신호를 생성한다. 이 전략은 8개의 서로 다른 기간의 지수 이동 평균을 사용하여 이동 평균 겹쳐서 구축하여 가장 짧은 기간과 가장 긴 기간의 이동 평균 교차 상황에 따라 시장 추세를 판단하고 거래 신호를 생성한다.

전략 원칙

이 전략은 주로 8개의 이동 평균을 기반으로 한다: 20번째, 25번째, 30번째, 35번째, 40번째, 45번째, 50번째, 55번째 라인. 이 8개의 이동 평균은 아래에서 위로 이동 평균의 중첩으로 구성된다. 단기 이동 평균이 아래에서 장기 이동 평균을 돌파할 때 구매 신호를 생성한다. 단기 이동 평균이 위로부터 아래로 넘어서는 경우 판매 신호를 생성한다.

예를 들어, 20일선이 아래에서 55일선을 돌파할 때, 구매 신호를 생성한다. 20일선이 위에서 아래로 55일선을 돌파할 때, 판매 신호를 생성한다. 이동 평균은 시장의 흐름을 잘 나타냅니다. 이 전략은 여러 이동 평균의 교차 상황을 사용하여 시장의 주요 흐름을 판단하고 거래 신호를 생성한다.

우위 분석

이동 평균 겹쳐진 전략은 다음과 같은 장점이 있습니다.

  1. 여러 개의 다른 주기 이동 평균을 사용하여 시장 추세 변화를 더 정확하게 판단 할 수 있습니다.

  2. 여러 이동 평균은 거래 신호를 더 명확하게 만들기 위해 겹쳐서 만들어집니다.

  3. 장기 및 단기 이동 평균과 결합하여 시장의 장기 추세와 단기 조정도 고려합니다.

  4. 전략 변수 최적화 공간은 넓고, 이동 평균의 주기 등을 조정하여 전략을 최적화 할 수 있다.

  5. 전략적 논리는 간단하고 명확하며, 이해하기 쉽고 구현하기 쉽습니다.

위험 분석

이동 평균 겹쳐서 묶는 전략에는 몇 가지 위험도 있습니다.

  1. 대장 전체에서 트렌드를 결정할 수 없을 때, 잘못된 신호가 발생할 수 있다. 다른 지표와 결합하여 확인할 수 있다.

  2. 거래 빈도가 너무 높아서 거래 비용과 슬라이드 비용을 증가시킬 수 있다. 이동 평균 주기를 적절히 조정하여 거래 빈도를 줄일 수 있다.

  3. 잘못된 매개 변수 설정으로 인해 너무 민감하거나 너무 늦어질 수 있습니다. 최적화 매개 변수를 반복적으로 테스트해야합니다.

  4. 급격한 비행으로 인한 갑작스러운 사건으로 인해 전략이 무효화 될 수 있습니다. Stop Loss 전략 제어 위험을 설정할 수 있습니다.

최적화 방향

이동 평균 겹띠 전략은 다음과 같은 측면에서 최적화될 수 있다:

  1. 이동 평균의 주기 변수를 조정하여 최적의 변수 조합을 찾습니다.

  2. 신호 필터링 및 확인을 위해 다른 기술 지표를 추가하여 신호 정확도를 향상시킵니다.

  3. 변동성 지표와 결합하여 낮은 변동성 환경에서 거래 빈도를 낮추는 것.

  4. 단독 손실을 통제하기 위해 손실을 막는 전략을 세웁니다.

  5. 자금 관리 전략을 최적화하고 수익 요소를 향상시킵니다.

  6. 다양한 품종의 계약의 파라미터 강도를 테스트한다. 최적의 품종을 찾는다.

요약하다

이동 평균 겹쳐서 전략 전체적인 아이디어는 명확하고, 여러 이동 평균 겹쳐서 시장 추세를 판단하고, 거래 신호를 생성한다. 전략 최적화 공간은 넓고, 변수를 조정할 수 있으며, 신호 필터링을 추가하는 방법과 같은 방법을 최적화한다. 전반적으로, 이 전략은 간단하고 실용적이며, 수량 거래 입문 학습에 적합하다. 그러나 여전히 거래 빈도와 위험을 제어하는 데 주의를 기울여야 한다.

전략 소스 코드
/*backtest
start: 2024-01-14 00:00:00
end: 2024-01-21 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy(title="EMA Ribbon [Krypt] with Buy/Sell Signals", shorttitle="EMA Ribbon", overlay=true)

dropn(src, n) =>
    na(src[n]) ? na : src

length1 = input(20, title="MA-1 period", minval=1)
length2 = input(25, title="MA-2 period", minval=1)
length3 = input(30, title="MA-3 period", minval=1)
length4 = input(35, title="MA-4 period", minval=1)
length5 = input(40, title="MA-5 period", minval=1)
length6 = input(45, title="MA-6 period", minval=1)
length7 = input(50, title="MA-7 period", minval=1)
length8 = input(55, title="MA-8 period", minval=1)
source_input = input(close, title="Source")

price = dropn(source_input, 1)

ema1 = ema(price, length1)
ema2 = ema(price, length2)
ema3 = ema(price, length3)
ema4 = ema(price, length4)
ema5 = ema(price, length5)
ema6 = ema(price, length6)
ema7 = ema(price, length7)
ema8 = ema(price, length8)

plot(ema1, title="MA-1", color=#f5eb5d, transp=0, linewidth=2)
plot(ema2, title="MA-2", color=#f5b771, transp=0, linewidth=2)
plot(ema3, title="MA-3", color=#f5b056, transp=0, linewidth=2)
plot(ema4, title="MA-4", color=#f57b4e, transp=0, linewidth=2)
plot(ema5, title="MA-5", color=#f56d58, transp=0, linewidth=2)
plot(ema6, title="MA-6", color=#f57d51, transp=0, linewidth=2)
plot(ema7, title="MA-7", color=#f55151, transp=0, linewidth=2)
plot(ema8, title="MA-8", color=#aa2707, transp=0, linewidth=2)

// Buy and sell signals based on crossover and crossunder
buySignal = crossover(ema1, ema8)
sellSignal = crossunder(ema1, ema8)

plotshape(series=buySignal, title="Buy Signal", color=color.green, style=shape.triangleup, size=size.small)
plotshape(series=sellSignal, title="Sell Signal", color=color.red, style=shape.triangledown, size=size.small)

if buySignal
    strategy.entry("Enter Long", strategy.long)
else if sellSignal
    strategy.entry("Enter Short", strategy.short)