강화된 이동평균 크로스오버 사쿠라스 거래 전략

저자:차오장, 날짜: 2024-02-21 15:14:19
태그:

img

전반적인 설명

이 거래 전략은 시장 진입점과 출구점을 식별하기 위해 이동 평균 컨버전스 디버전스 (MACD), 상대 강도 지수 (RSI), 간단한 이동 평균 (SMA), 스토카스틱 오시레이터 및 볼링거 대역을 결합합니다. 지표가 상승 신호를 표시 할 때 길고 하락 신호가 나타날 때 짧습니다. 위험은 스톱 로스로 제어되며 이익을 취합니다.

전략 논리

MACD DIF 라인이 DEA 라인을 넘어서 상승구역으로 넘어갈 때, 또는 RSI가 30 이하로 떨어지고 과판된 영역으로 갈 때, 또는 스토카스틱 %K 및 %D 라인이 20 이하로 떨어지면 과판된 상태를 나타냅니다.

반대로, MACD DIF 라인이 DEA 라인 아래를 넘어 하향 구역으로 넘어갈 때, 또는 RSI가 70을 넘어서서 과잉 매입 영역으로 올라갈 때, 또는 스토카스틱 %K 및 %D 라인이 80을 넘어서서 과잉 매입 상태를 나타낼 때 단축됩니다.

스톱 로스는 ATR 곱하기 계수로 설정됩니다. 수익은 위험/이익 비율로 결정됩니다.

이점 분석

이 전략은 시장 상태를 판단하기 위해 여러 지표를 결합하여 단일 메트릭에 의한 오류를 피하고 정확성을 향상시킵니다. 또한 매매에 대한 위험을 통제하기 위해 손해를 멈추고 이익을 취하는 것이 합리적입니다.

위험 분석

기술 지표는 역사적 데이터에서 계산되며 미래의 가격을 예측할 수 없으며, 특정 지연으로 이어집니다. 여러 지표를 결합하면 일부 잘못된 신호가 나타날 수 있습니다. 또한, 잘못된 스톱 로스 설정으로 인해 더 큰 손실이 발생할 수 있습니다.

지표 지연 문제를 해결하기 위해 매개 변수를 조정하여 컴퓨팅 주기를 단축 할 수 있습니다. 잘못된 신호에 대해서는 확인을 위해 추가 보조 지표를 추가 할 수 있습니다. 또한 스톱 손실은 더 넓고 합리적으로 설정해야합니다.

최적화 방향

이 전략은 다음과 같은 측면에서 향상될 수 있습니다.

  1. 진입에 대한 경향 및 상관 분석에 기초한 통계 모델 지표를 포함합니다.
  2. 표시 신호의 신뢰성을 판단하기 위해 기계 학습 모델을 추가합니다.
  3. 더 자동화되고 지능적인 스톱 로스를 위해 돈 관리를 최적화하고 수익을 취하십시오.

요약

이 전략은 정확성을 향상시키기 위해 여러 기술적 지표를 결합하고 스톱 로스 및 리프트를 통해 위험을 제어하여 신뢰할 수있는 트렌드 다음 시스템으로 만듭니다. 통계 및 기계 학습 기술을 도입함으로써 성능이 앞으로 더욱 향상 될 것으로 예상됩니다.


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

//@version=5
strategy("Enhanced Moving Average Crossover sakkoulas with ATR and SAR", overlay=true)

// Παράμετροι MACD
fastLength = input.int(16, title="Fast Length")
slowLength = input.int(6, title="Slow Length")
signalSmoothing = input.int(5, title="Signal Smoothing")

// Παράμετροι RSI
rsiLength = input.int(6, title="RSI Length")
upperBound = input.int(70, title="Upper Bound")
lowerBound = input.int(30, title="Lower Bound")

// Παράμετροι SMA
smaPeriod = input.int(10, title="SMA Period")

// Παράμετροι Stochastic
stoLength = input.int(5, title="Stochastic Length")
stoSmoothK = input.int(3, title="Stochastic %K Smoothing")
stoSmoothD = input.int(10, title="Stochastic %D Smoothing")

// Παράμετροι Bollinger Bands
bbLength = input.int(20, title="Bollinger Bands Length")
bbStdDev = input.float(1, title="Bollinger Bands StdDev")

// Παράμετροι ATR
atrLength = input.int(14, title="ATR Length")
atrMultiplier = input.float(1.5, title="ATR Multiplier for Stop Loss")

// Παράμετροι Parabolic SAR
sarAcceleration = input.float(0.02, title="SAR Acceleration")
sarMaximum = input.float(0.2, title="SAR Maximum")

// Διαχείριση κινδύνου
riskRewardRatio = input.float(2.0, title="Risk/Reward Ratio")

// Υπολογισμοί δεικτών
[macdLine, signalLine, _] = ta.macd(close, fastLength, slowLength, signalSmoothing)
rsi = ta.rsi(close, rsiLength)
sma = ta.sma(close, smaPeriod)
atr = ta.atr(atrLength)

// Παράμετροι και κλήση του Parabolic SAR
sar = ta.sar(sarAcceleration, sarMaximum, 15) // Διορθωμένη κ
// Υπολογισμός Stop Loss με βάση το ATR
longStopLoss = close - atrMultiplier * atr 
shortStopLoss = close + atrMultiplier * atr

// Συνθήκες για είσοδο και έξοδο
longCondition = ta.crossover(macdLine, signalLine) and close > sar
shortCondition = ta.crossunder(macdLine, signalLine) and close < sar

// Εκτέλεση εντολών συναλλαγής με διαχείριση κινδύνου
if (longCondition)
    strategy.entry("Long Position", strategy.long)
    strategy.exit("Exit Long", "Long Position", stop=longStopLoss)
    
if (shortCondition)
    strategy.entry("Short Position", strategy.short)
    strategy.exit("Exit Short", "Short Position", stop=shortStopLoss)

// Συνθήκες για είσοδο και έξοδο
 
// Εμφάνιση βελών για σημεία εισόδου
plotshape(series=longCondition, location=location.belowbar, color=color.green, style=shape.triangleup, size=size.small, title="Long Entry")
plotshape(series=shortCondition, location=location.abovebar, color=color.red, style=shape.triangledown, size=size.small, title="Short Entry")


// Εμφάνιση δεικτών
plot(macdLine, color=color.blue, title="MACD Line")
plot(signalLine, color=color.red, title="Signal Line")
plot(sma, color=color.orange, title="SMA")
plot(series=sar, color=color.fuchsia, style=plot.style_circles, title="Parabolic SAR")
hline(upperBound, "Upper Bound", color=color.red)
hline(lowerBound, "Lower Bound", color=color.green)

더 많은