동적 평형 트렌드 교차 전략

저자:차오장, 날짜: 2024-02-05 12:14:12
태그:

动态均线交叉趋势策略

개요

이 전략은 암호화폐 시장에 적용되는 간단한 이동 평균 (SMA) 교차 전략이다. 빠른, 중속, 느린 세 개의 SMA를 사용하여 잠재적인 입상 및 출구 신호를 식별한다. 빠른 SMA가 중속 SMA를 통과할 때 구매 신호를 생성하고 빠른 SMA가 중속 SMA를 통과할 때 판매 신호를 생성한다.

전략적 원칙

매개 변수 설정

이 전략은 거래자가 다음과 같은 중요한 매개 변수를 설정하도록 허용합니다.

  • 가격 데이터 소스: 종료 가격 또는 다른 가격
  • K 라인이 완전하지 않은 것을 고려할 것인가
  • SMA 예측 방법: 평행 예측 또는 선형 회귀 예측
  • 빠른 SMA 길이: 기본 7
  • 중간 속도 SMA 길이는 30입니다.
  • 느린 SMA 길이는 50입니다.
  • 계좌 자금
  • 거래당 위험 비율

SMA 계산

사용자가 설정한 SMA 길이에 따라 빠른 SMA, 중속 SMA 및 느린 SMA를 각각 계산합니다.

거래 신호

빠른 SMA가 중속 SMA를 통과할 때 구매 신호가 발생하고 빠른 SMA가 낮은 중속 SMA를 통과할 때 판매 신호가 발생한다.

리스크 및 포지션 관리

전략은 계좌 자금과 거래당 위험 비율을 결합하여 거래당 명목 자본을 계산한다. 그리고 ATR을 결합하여 Stop Loss 규모를 계산하여 최종적으로 거래별 특정 포지션을 결정한다.

장점 분석

  • 여러 개의 SMA를 사용하여 추세를 식별하고 판단력을 향상시킵니다.
  • SMA 예측 방법은 선택적이며 더 적응력이 있습니다.
  • 거래 신호는 간단하고 명확하고 실행하기 쉽습니다.
  • 리스크와 포지션 관리를 통합하고 과학적으로

위험 분석

  • 그 자체로 SMA는 가격 전환점을 놓칠 수 있습니다.
  • 기술적인 지표만 고려하고 기본은 고려하지 않습니다.
  • 비상사태의 영향을 고려하지 않고

적절한 SMA 주기를 단축하거나 다른 지표를 보조하는 등 다양한 방법으로 최적화 할 수 있습니다.

최적화 방향

  • 다른 지표와 함께 잘못된 신호를 필터링합니다.
  • 기본 판단에 참여합니다.
  • SMA 주기 매개 변수를 최적화
  • 위험 및 포지션 계산 매개 변수를 최적화

요약

이 전략은 SMA 크로스 판단, 위험 관리 및 포지션 최적화 기능을 통합하여 암호화 시장에 적합한 트렌드 추적 전략입니다. 거래자는 자신의 거래 스타일, 시장 환경 등 요소에 따라 매개 변수를 조정하고 최적화를 구현할 수 있습니다.


/*backtest
start: 2024-01-05 00:00:00
end: 2024-02-04 00:00:00
period: 3h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=4
strategy("Onchain Edge Trend SMA Strategy", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=10)

// Configuration Parameters
priceSource = input(close, title="Price Source")
includeIncompleteBars = input(true, title="Consider Incomplete Bars")
maForecastMethod = input(defval="flat", options=["flat", "linreg"], title="Moving Average Prediction Method")
linearRegressionLength = input(3, title="Linear Regression Length")
fastMALength = input(7, title="Fast Moving Average Length")
mediumMALength = input(30, title="Medium Moving Average Length")
slowMALength = input(50, title="Slow Moving Average Length")
tradingCapital = input(100000, title="Trading Capital")
tradeRisk = input(1, title="Trade Risk (%)")

// Calculation of Moving Averages
calculateMA(source, period) => sma(source, period)
predictMA(source, forecastLength, regressionLength) => 
    maForecastMethod == "flat" ? source : linreg(source, regressionLength, forecastLength)

offset = includeIncompleteBars ? 0 : 1
actualSource = priceSource[offset]

fastMA = calculateMA(actualSource, fastMALength)
mediumMA = calculateMA(actualSource, mediumMALength)
slowMA = calculateMA(actualSource, slowMALength)

// Trading Logic
enterLong = crossover(fastMA, mediumMA)
exitLong = crossunder(fastMA, mediumMA)

// Risk and Position Sizing
riskCapital = tradingCapital * tradeRisk / 100
lossThreshold = atr(14) * 2
tradeSize = riskCapital / lossThreshold

if (enterLong)
    strategy.entry("Enter Long", strategy.long, qty=tradeSize)

if (exitLong)
    strategy.close("Enter Long")

// Display Moving Averages
plot(fastMA, color=color.blue, linewidth=2, title="Fast Moving Average")
plot(mediumMA, color=color.purple, linewidth=2, title="Medium Moving Average")
plot(slowMA, color=color.red, linewidth=2, title="Slow Moving Average")


더 많은 내용