머신러닝을 기반으로 한 이동평균교차 양적거래 전략

MA SMA ML
생성 날짜: 2024-06-21 17:59:06 마지막으로 수정됨: 2024-06-21 17:59:06
복사: 0 클릭수: 870
avatar of ChaoZhang ChaoZhang
1
집중하다
1617
수행원

머신러닝을 기반으로 한 이동평균교차 양적거래 전략

개요

이 글은 기계 학습을 기반으로 한 이동 평균 교차량 거래 전략을 소개한다. 이 전략은 단기 및 장기 간 간단한 이동 평균 (SMA) 의 교차를 사용하여 기계 학습의 거래 의사 결정 과정을 모의한다. 단기 및 장기 이동 평균의 교차를 분석함으로써 전략은 구매 및 판매 신호를 생성하고 거래 플랫폼에서 해당 거래 작업을 수행한다. 이 방법은 전통적인 기술 분석과 현대 기계 학습 개념을 결합하여 거래자에게 간단하고 효과적인 양적 거래 도구를 제공합니다.

전략 원칙

이 전략의 핵심 원리는 두 개의 이동 평균의 교차에 기초하고 있습니다.

  1. 단기 이동 평균 ((Short MA): 기본으로 9주기의 간단한 이동 평균을 사용합니다.
  2. 장기 이동 평균 ((Long MA): 기본으로 21주기의 간단한 이동 평균을 사용합니다.

거래 신호 생성 논리는 다음과 같습니다.

  • 구매 신호: 단기 이동 평균이 아래에서 장기 이동 평균을 통과할 때 발동된다.
  • 팔기 신호: 단기 이동 평균이 상단에서 장기 이동 평균을 가로지르면 발동된다.

전략은 트레이딩뷰 플랫폼에 구현되어 있으며, 파인 스크립트 언어를 사용한다. 주요 기능은 다음과 같다:

  1. 단기 및 장기 이동 평균을 계산하고 그리기.
  2. 이동 평균에 따라 구매 및 판매 신호를 생성합니다.
  3. 차트에서 구매와 판매 지점을 표시하고, 초록색 상향 화살표는 구매를 나타내고, 빨간색 하향 화살표는 판매를 나타냅니다.
  4. 트레이드 알림을 설정하여 구매 또는 판매 신호가 발생했을 때 사용자에게 알립니다.

전략적 이점

  1. 간단하고 이해하기 쉬운: 이동 평균 크로스 전략은 기술 분석의 고전적인 방법이며, 이해하기 쉽고 실행하기 쉽습니다.

  2. 트렌드 추적: 이 전략은 시장의 트렌드를 효과적으로 포착하고, 트렌드가 명확한 시장에서 잘 작동한다.

  3. 자동화 실행: 전략은 TradingView 플랫폼에서 자동으로 실행될 수 있으며, 인적 개입과 감정 거래의 영향을 줄입니다.

  4. 시각적 피드백: 거래자는 차트에 매매점과 이동 평균을 표시하여 전략의 작동을 직관적으로 이해할 수 있습니다.

  5. 유연성: 사용자는 개인 취향과 시장 특성에 따라 단기 및 장기 이동 평균의 주기를 조정할 수 있습니다.

  6. 실시간 경고: 트레이드 상기 기능이 설정되어 있어 거래자가 시장 기회를 신속하게 파악할 수 있도록 도와줍니다.

  7. 모의 기계 학습: 간단한 전략이지만, 기계 학습의 의사 결정 과정을 모의하여 더 복잡한 알고리즘 거래의 토대를 마련합니다.

  8. 광범위한 적용: 이 전략은 다양한 금융 도구와 시간 프레임에 적용될 수 있으며, 광범위한 적용이 가능합니다.

전략적 위험

  1. 지연성: 이동 평균은 본질적으로 지연된 지표이며, 시장 전환점 근처에서 가짜 신호를 유발할 수 있다.

  2. 위축 시장의 부실성: 위축 시장에서 이 전략은 종종 잘못된 신호를 발생시켜 과도한 거래와 손실을 초래할 수 있다.

  3. 중단 메커니즘: 전략에는 중단 설정이 포함되어 있지 않으며, 시장이 급격하게 변동할 때 큰 손실을 입을 수 있습니다.

  4. 과도한 역사적 데이터 의존: 전략은 역사적 패턴이 미래에 반복될 것이라고 가정하지만, 시장 조건은 변할 수 있다.

  5. 변수 감수성: 전략 성능은 이동 평균 주기 선택에 민감하며, 다른 변수는 현저하게 다른 결과를 초래할 수 있다.

  6. 기본 요소를 무시하는 것: 순수 기술 분석 방법은 중요한 기본 요소와 거시 경제 요소를 무시할 수 있다.

  7. 거래 비용: 거래의 빈도는 전략의 전체 수익에 영향을 미치는 높은 거래 비용을 초래할 수 있습니다.

  8. 과도한 적합성 위험: 최적화 매개 변수에서 과도한 적합성이 발생할 수 있으며, 이는 실제 디스크 거래에서 전략이 좋지 않은 결과를 초래합니다.

전략 최적화 방향

  1. 스톱로스 및 스톱을 도입: 위험을 통제하고 수익을 잠금하기 위해 합리적인 스톱로스 및 스톱로스 수준을 설정합니다.

  2. 필터를 추가: 다른 기술 지표 (RSI, MACD 등) 와 결합하여 필터로 사용하여 잘못된 신호를 줄여줍니다.

  3. 동적 변수 조정: 시장의 변동성에 따라 이동 평균 주기를 조정하여 다른 시장 환경에 적응합니다.

  4. 변동률 지표를 추가: ATR과 같은 변동률 지표를 사용하여 포지션 크기 및 스톱 손실 수준을 조정하십시오.

  5. 다중 시간 프레임 분석: 더 긴 시간 프레임 분석과 결합하여 거래 의사 결정의 정확성을 향상시킵니다.

  6. 기본적 분석: 경제 데이터 발표, 회사 회계 보고 등과 같은 기본적 요소와 결합하여 거래 결정을 최적화합니다.

  7. 기계 학습 최적화: 실제 기계 학습 알고리즘을 사용하여 매개 변수 선택과 신호 생성을 최적화한다.

  8. 회수 및 최적화: 광범위한 역사적 데이터 회수를 수행하고, 몬테카로 시뮬레이션과 같은 방법을 사용하여 전략의 강도를 평가한다.

  9. 자금 관리: 더 복잡한 자금 관리 전략, 예를 들어 케일리 공식이나 고정 비율 위험 모델.

  10. 감정 분석: 소셜 미디어 감정 분석과 같은 시장 감정 데이터를 통합하여 거래 결정을 강화합니다.

요약하다

기계 학습 기반의 이동 평균 크로스 양적 거래 전략은 거래자에게 간단하고 효과적인 자동화 거래 방법을 제공합니다. 이 전략은 기계 학습의 의사 결정 과정을 모의하여 시장 추세를 포착하고 거래를 자동으로 수행 할 수 있습니다.

미래의 최적화 방향은 전략의 적응성과 융통성을 향상시키는 데 초점을 맞추어야 합니다. 여기에는 더 많은 기술 지표, 동적 파라미터 조정, 다중 시간 프레임 분석 및 실제 기계 학습 알고리즘을 도입하는 것이 포함됩니다. 또한, 기본 분석과 시장 감정 요소를 추가하면 전략이 시장 상황을 더 포괄적으로 평가하는 데 도움이 될 수 있습니다.

전반적으로, 기계 학습 개념에 기반한 양적 거래 전략은 거래자에게 더 똑똑하고 효율적인 거래 시스템에 도달하기 위해 지속적으로 개선하고 발전 할 수있는 좋은 출발점을 제공합니다.

전략 소스 코드
/*backtest
start: 2023-06-15 00:00:00
end: 2024-06-20 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © yashumani
//@version=5
strategy("ML Based Trading Strategy", overlay=true)

// Define input parameters
shortPeriod = input.int(9, title="Short MA Period")
longPeriod = input.int(21, title="Long MA Period")

// Calculate moving averages
shortMA = ta.sma(close, shortPeriod)
longMA = ta.sma(close, longPeriod)

// Simulated "machine learning" decision based on moving averages crossover
longCondition = ta.crossover(shortMA, longMA)
shortCondition = ta.crossunder(shortMA, longMA)

// Plot moving averages
plot(shortMA, color=color.blue, title="Short MA")
plot(longMA, color=color.red, title="Long MA")

// Buy signal
if (longCondition)
    strategy.entry("Buy", strategy.long)

// Sell signal
if (shortCondition)
    strategy.entry("Sell", strategy.short)

// Plot buy/sell indicators on chart
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.labelup, text="Buy")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.labeldown, text="Sell")

// Define and plot order indicators
plotarrow(series=longCondition ? 1 : shortCondition ? -1 : na, colorup=color.green, colordown=color.red, offset=-1)

// Alerts
if (longCondition)
    alert("Buy signal triggered", alert.freq_once_per_bar)

if (shortCondition)
    alert("Sell signal triggered", alert.freq_once_per_bar)