이동 평균 추종 전략


생성 날짜: 2023-10-20 17:02:52 마지막으로 수정됨: 2023-10-20 17:03:32
복사: 2 클릭수: 404
1
집중하다
1176
수행원

이동 평균 추종 전략

개요

이동 평균 추적 전략은 간단한 이동 평균을 기반으로 한 트렌드 추적 전략이다. 이 전략은 200일 길이의 간단한 이동 평균을 사용하여 가격 트렌드 방향을 판단하고, 가격이 이동 평균을 넘어서면 더 많이 하고, 가격이 이동 평균을 넘어서면 공백을 만들고, 트렌드를 추적한다.

전략 원칙

이 전략은 다음과 같은 몇 가지 원칙에 기초하고 있습니다.

  1. 200일 길이의 간단한 이동 평균 (slowMA) 을 사용하여 가격 경향 방향을 판단한다.
  2. 마이너스 마이너스 (SlowMA) 를 마감에 따라 마이너스가 상승하기 시작한다고 생각해서 더 많이 한다.
  3. 마이너스 마이너스 (slowMA) 를 통과한 후, 마이너스가 하락하기 시작한다고 생각하여 공백을 뚫고 마이너스 마이너스를 통과합니다.
  4. last_long 및 last_short 변수를 통해 마지막으로 추가된 시간과 공백을 기록한다.
  5. last_long과 last_short의 교차를 판단하는 크로스오버 함수를 사용하여 거래 신호를 생성한다.
  6. 회수 시간 동안, long_signal를 받으면 더하고, short_signal을 받으면 더했다.

이 전략은 주로 이동 평균을 통해 트렌드 방향을 판단하고, 평행선이 변할 때 적시에 역으로 동작하여 트렌드를 추적하여 수익을 창출한다.

우위 분석

이 전략은 다음과 같은 장점을 가지고 있습니다.

  1. 전략적 아이디어는 간단하고 명확하며, 이해하기 쉽고 실행이 가능합니다.
  2. 장기 주기 이동 평균을 사용하여, 소음을 효과적으로 필터링하여 주요 트렌드를 잠금할 수 있습니다.
  3. 트렌드 전환점에서 큰 가격 변동을 잡을 수 있는 적시적인 역전작업이다.
  4. 이동 평균의 단 하나의 지표가 필요하며, 여러 지표의 조합의 복잡성을 제거한다.
  5. 출입 및 출입 규칙이 명확하고, 많은 사람의 개입이 필요하지 않습니다.

위험 분석

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

  1. 긴 주기 평균선은 단기 조정에 민감하지 않아 짧은 선의 기회를 놓칠 수 있다.
  2. 대주기 트렌드 꼭대기 및 바닥을 식별하는 능력이 약하여 반전 손실이 발생할 수 있습니다.
  3. 하지만, 그 후로, 그들은 더 많은 철수를 할 수 있습니다.
  4. 매개 변수는 고정되어 있고, 다른 품종과 시장 환경에 대한 적응력이 약하다.
  5. 역사적인 데이터에 기초한 전략 테스트만 하면 과대응의 위험이 있을 수 있습니다.

위험과 관련하여, 다음과 같은 부분에서 최적화 및 개선이 가능합니다.

  1. 단기 평균선과 결합하여 장기 단기 경향을 고려한다.
  2. 포트폴리오 조건의 양을 높여서 가짜 돌파구를 피하십시오.
  3. 트렌드 지표 필터링을 추가하여 트렌드 전환을 식별하는 능력을 향상시킵니다.
  4. 동적 손실 제도를 추가하여 단독 손실을 제어합니다.
  5. 매개 변수 최적화 방법을 사용하여 매개 변수의 적응성을 높인다.
  6. 다양한 시장 환경에서 복제 테스트를 수행하여 전략의 안정성을 검사합니다.

최적화 방향

이 전략은 다음의 몇 가지 측면에서 더 개선될 수 있습니다.

  1. 이동 평균의 주기 변수를 최적화하여 최적의 변수 조합을 찾는다. Walk Forward Analysis 등의 변수 최적화 방법을 사용할 수 있다.

  2. 단기 이동 평균을 추가하여 다중 평균선 전략을 수립하고, 동시에 장기 단기 경향을 추적한다.

  3. MACD와 같은 트렌드 지표와 결합하여 트렌드 전환을 식별하는 능력을 향상시킵니다.

  4. 단편적 손실을 통제하기 위해, 손실을 추적하는, 손실을 중지하는 등 손실을 막는 장치에 가입하십시오.

  5. 복제 테스트를 실시하고, 다른 품종과 다른 시간대에 전략을 테스트하고, 안정성을 향상시킨다.

  6. 기계 학습과 같은 방법을 사용하여 전략의 변수 적응 및 전략 최적화를 구현하십시오.

요약하다

이동 평균 추적 전략은 간단하고 실용적인 트렌드 추적 전략으로, 아이디어는 명확하고, 실행하기 쉬운 추세 기회를 잡을 수 있습니다. 그러나 이 전략에는 단기 조정에 민감하지 않고, 위험 제어 능력이 약한 것과 같은 몇 가지 문제가 있습니다. 우리는 여러면에서 최적화하여 전략을 더 안정적으로, 변수를 더 최적화하고, 위험을 더 완벽하게 제어 할 수 있습니다.

전략 소스 코드
/*backtest
start: 2023-09-19 00:00:00
end: 2023-10-19 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("MA X 200 BF", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100, commission_type=strategy.commission.percent, commission_value=0.0)

/////////////// Time Frame ///////////////
testStartYear = input(2012, "Backtest Start Year") 
testStartMonth = input(1, "Backtest Start Month")
testStartDay = input(1, "Backtest Start Day")
testPeriodStart = timestamp(testStartYear,testStartMonth,testStartDay, 0, 0)

testStopYear = input(2019, "Backtest Stop Year")
testStopMonth = input(12, "Backtest Stop Month")
testStopDay = input(31, "Backtest Stop Day")
testPeriodStop = timestamp(testStopYear,testStopMonth,testStopDay, 0, 0)

testPeriod() => true

///////////// MA 200 /////////////
slowMA = sma(close, input(200))

/////////////// Strategy ///////////////
long = close > slowMA
short = close < slowMA

last_long = 0.0
last_short = 0.0
last_long := long ? time : nz(last_long[1])
last_short := short ? time : nz(last_short[1])

long_signal = crossover(last_long, last_short)
short_signal = crossover(last_short, last_long)

/////////////// Execution /////////////// 
if testPeriod()
    strategy.entry("Long Entry",  strategy.long, when=long_signal)
    strategy.entry("Short Entry", strategy.short, when=short_signal)
    strategy.exit("Long Ex", "Long Entry")
    strategy.exit("Short Ex", "Short Entry")

/////////////// Plotting /////////////// 
plot(slowMA, color = long ? color.lime : color.red, linewidth=2)
bgcolor(strategy.position_size > 0 ? color.lime : strategy.position_size < 0 ? color.red : color.white, transp=80)
bgcolor(long_signal ? color.lime : short_signal ? color.red : na, transp=30)