この取引戦略は,移動平均収束分散 (MACD),相対強度指数 (RSI),単純な移動平均 (SMA),ストカスティックオシレーター,ボリンジャー帯を組み合わせて市場エントリーと出口点を識別する.指標が上昇信号を示したときに長行し,下落信号が現れたときに短行する.リスクはストップ・ロストとテイク・プロフィートによって制御される.
MACD DIF 線が DEA 線を超えてバリーズゾーンに突入する時,または RSI が過売れ領域に 30 未満に下がる時,またはストカスティック %K と %D 線が過売れ状態を示す 20 未満に下がる時,ロングになります.
それどころか,MACD DIF線がDEA線以下を下回りゾーンに突破したとき,またはRSIが70を超えて過買い領域に上昇したとき,またはストカスティック%Kと%D線が80を超えると過買い状態を示します.
ストップ・ロスは ATR を係数で掛け算し リスク・リターン比で得益を決定します
この戦略は,市場状態を判断するための複数の指標を組み合わせ,単一のメトリックによるエラーを回避し,正確性を向上させます.また,ストップ・ロストとテイク・プロフィートは,各取引のリスクを合理的に制御するために設定されています.
技術指標は,過去のデータから計算され,将来の価格を予測できないため,一定の遅延を引き起こす.複数の指標を組み合わせると,いくつかの誤った信号も提示される.また,不適切なストップ損失設定により,より大きな損失が生じる可能性があります.
インディケーター遅延問題に対処するために,パラメータは計算サイクルを短縮するために調整することができます. 偽信号については,確認のために追加の補助指標を追加することができます. また,ストップロスはより広く,より合理的に設定する必要があります.
戦略は以下の側面で強化できる:
この戦略は,精度を向上させるための複数の技術指標を組み合わせ,ストップ・ロストとテイク・プロフィットを通じてリスクを制御し,信頼性の高いトレンドフォローシステムとなっています.今後,統計学と機械学習技術を導入することで,そのパフォーマンスがさらに向上すると予想されています.
/*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)