클래식 듀얼 이동 평균 크로스오버 전략

저자:차오장, 날짜: 2023-10-27 16:47:30
태그:

img

전반적인 설명

이중 이동 평균 크로스오버 전략은 매우 고전적이고 일반적으로 사용되는 기술 분석 전략이다. 이 전략은 더 빠른 이동 평균과 더 느린 이동 평균의 크로스오버를 구매 및 판매의 거래 신호로 사용합니다. 더 빠른 이동 평균이 아래에서 느린 이동 평균을 넘을 때 구매 신호가 생성됩니다. 더 빠른 이동 평균이 위에서 느린 이동 평균을 넘을 때 판매 신호가 생성됩니다.

전략 논리

전략 코드의 핵심 부분은 다음과 같습니다.

  1. 빠른 이동 평균과 느린 이동 평균의 길이와 유형을 정의하십시오. 빠른 MA는 5의 기간을 가지고 있으며 느린 MA는 21의 기간을 가지고 있습니다. 둘 다 간단한 이동 평균을 사용합니다.

  2. 빠른 MAs와 느린 MAs를 계산합니다: 5주기 및 21주기 간단한 이동 평균을 계산하기 위해 sma 함수를 사용합니다.

  3. 그래프를 그려라: 빠른 MAs와 느린 MAs의 트렌드 라인을 그려라.

  4. 출입 및 출입 규칙을 정의하십시오: 빠른 MA가 느린 MA를 넘을 때 구매하고 빠른 MA가 느린 MA를 넘을 때 판매하십시오.

  5. 거래 실행: 조건이 충족되면 자동으로 거래를 실행하기 위해 전략의 긴 기능과 짧은 기능을 사용합니다.

이 전략의 핵심은 빠른 MA와 느린 MA를 형성하기 위해 서로 다른 기간의 이동 평균을 사용하고, 그들의 크로스오버를 거래 신호로 사용하는 것입니다. 빠른 MA는 가격 변화를 더 빨리 캡처하고 느린 MA는 장기 트렌드를 더 잘 반영합니다. 느린 MA 위에 있는 빠른 MA의 크로스오버는 구매 신호인 상승 브레이크오프를 나타냅니다. 그리고 아래의 크로스오버는 판매 신호입니다. 이 전략의 논리는 간단하고 구현하기 쉽습니다.

이점 분석

이중 이동 평균 크로스오버 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 간단한 원리, 이해하기 쉬운, 초보자에게 적합합니다.

  2. 가격 트렌드를 따라가자, 작은 인기를 끌고.

  3. 적당한 거래 빈도, 과도한 거래를 피합니다.

  4. 조정 가능한 매개 변수, 시장 변화에 적응할 수 있는 유연성

  5. 최적화하고 적합한 개인 매개 변수 집합을 쉽게 찾을 수 있습니다.

  6. 위험 조절을 위해 스톱 로스를 설정할 수 있습니다.

  7. 다양한 시장에서 사용할 수 있습니다. 높은 적용 가능성.

  8. 성능을 향상시키기 위해 다른 지표와 결합 할 수 있습니다.

위험 분석

이 전략에는 몇 가지 위험도 있습니다.

  1. 트렌드가 강할 때 지연된 반응은 가장 좋은 출입 시기를 놓칠 수 있습니다. 감수성을 향상시키기 위해 MA 기간을 단축할 수 있습니다.

  2. 범위를 제한하는 시장에서 더 많은 잘못된 신호가 있습니다. 잘못된 거래를 피하기 위해 필터를 추가할 수 있습니다.

  3. 너무 많은 트레이드가 수익성에 영향을 줄 수 있습니다.

  4. 트렌드를 결정하기 어렵고, 트렌드 상거래의 위험도 증가할 수 있습니다.

  5. 매개 변수 최적화는 충분한 역사 데이터를 필요로 합니다. 새로운 제품과 과도하게 적합할 위험이 있습니다. 매개 변수 안정성을 테스트해야 합니다.

  6. 외부 요인에 민감한 단일 지표, 성능이 불안정할 수 있습니다. 확인을 위해 다른 지표와 결합 할 수 있습니다.

최적화 방향

이중 MA 전략을 더 이상 최적화 할 수있는 몇 가지 방법이 있습니다.

  1. 특정 거래 상품에 최적의 매개 변수를 찾기 위해 다른 빠른 및 느린 MA 길이를 테스트합니다.

  2. 거래량, ATR 스톱 로스 등의 필터를 추가하여 열등한 기회를 줄입니다.

  3. 동력 지표를 결합하여 거래 신호를 확인하고 거짓 브레이크를 피합니다.

  4. 조기 또는 늦은 출출을 피하기 위해 손해를 막는 전략을 최적화하십시오.

  5. 트렌드 추적 및 트렌드 반대 거래를 가능하게하는 트렌드 및 파동 지표를 포함합니다.

  6. 일정한 기간이 아닌 시장 조건에 기반한 매개 변수를 조정하기 위해 적응형 MA를 사용합니다.

  7. 다른 시장 세션 및 특성에 대한 매개 변수 조합을 사용하십시오.

  8. 기계 학습 알고리즘을 통해 실시간 최적화를 수행하여 매개 변수를 지속적으로 개선합니다.

요약

이중 이동 평균 크로스오버 전략은 간단한 논리와 구현 용이성으로 가장 필수적이고 널리 사용되는 기술 분석 전략 중 하나가되었습니다. 제어 된 인회 및 수용 가능한 위험에 따라 가격 추세를 따르고 있습니다. 그러나 매개 변수 조정, 다른 지표 및 자동화 알고리즘을 통합하여 최적화 할 수있는 엄청난 잠재력도 있으며 적용 가능성과 성능을 더욱 향상시킬 수 있습니다. 전반적으로 이중 MA 크로스오버 전략은 투자자로부터 큰 관심과 장기적인 응용을받을 자격이 있습니다.


/*backtest
start: 2023-09-26 00:00:00
end: 2023-10-26 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=3
// strategy("Stochastic Strategy of BiznesFilosof", shorttitle="SS of BiznesFilosof", overlay=false, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=20, commission_type=strategy.commission.percent, commission_value=0.15, pyramiding=0)

//Period
startY = input(title="Start Year", defval = 2011)
startM = input(title="Start Month", defval = 1, minval = 1, maxval = 12)
startD = input(title="Start Day", defval = 1, minval = 1, maxval = 31)
finishY = input(title="Finish Year", defval = 2050)
finishM = input(title="Finish Month", defval = 12, minval = 1, maxval = 12)
finishD = input(title="Finish Day", defval = 31, minval = 1, maxval = 31)
//finish = input(2019, 02, 28, 00, 00)
timestart = timestamp(startY, startM, startD, 00, 00)
timefinish = timestamp(finishY, finishM, finishD, 23, 59)
window = true // Lenghth strategy

length1 = input(21, minval=1), smoothK1 = input(3, minval=1), smoothD1 = input(3, minval=1)
//length2 = input(5, minval=1), smoothK2 = input(1, minval=1), smoothD2 = input(1, minval=1)
inh0 = input(title="Bottom Line", defval = 14, minval=0), inh1 = input(title="Upper Line", defval = 86, minval=0)

k1 = sma(stoch(close, high, low, length1), smoothK1)
d1 = sma(k1, smoothD1)
plot(k1, color=blue)
plot(d1, color=red)
//k2 = sma(stoch(close, high, low, length2), smoothK2)
//d2 = sma(k2, smoothD2)
//plot(k2, color=orange)

h1 = hline(inh1)
h0 = hline(inh0)
fill(h0, h1, color = aqua, transp=90)

//open
strategy.entry("LongEntryID", strategy.long, comment="LONG", when = crossover(k1, d1) and crossover(k1, inh0) and window)
strategy.entry("ShortEntryID", strategy.short, comment="SHORT", when = crossunder(k1, d1) and crossunder(k1, inh1) and window)

if crossunder(k1, d1) and crossunder(k1, inh1) and strategy.position_size > 0
    strategy.close_all()
if crossover(k1, d1) and crossover(k1, inh0) and strategy.position_size < 0
    strategy.close_all()
  
    


더 많은