Diese Strategie ist eine einfache gleitende Durchschnitts- (SMA) Crossover-Strategie, die für Kryptowährungsmärkte geeignet ist. Sie verwendet schnelle, mittlere und langsame SMAs, um potenzielle Ein- und Ausstiegssignale zu identifizieren. Wenn die schnelle SMA über die mittlere SMA überschreitet, wird ein Kaufsignal generiert. Wenn die schnelle SMA unter die mittlere SMA überschreitet, wird ein Verkaufssignal generiert.
Die Strategie ermöglicht es den Händlern, folgende Schlüsselparameter festzulegen:
Die schnelle SMA, die mittlere SMA und die langsame SMA werden auf der Grundlage der vom Benutzer festgelegten SMA-Längen berechnet.
Wenn die schnelle SMA über die mittlere SMA überschreitet, wird ein Kaufsignal generiert.
Die Strategie berechnet den nominalen Kapitalbetrag pro Handel auf der Grundlage von Kontomitteln und einem akzeptablen Risikoprozentsatz pro Handel.
Kann durch Verkürzung der SMA-Perioden, Hinzufügen anderer Indikatoren usw. optimiert werden.
Diese Strategie integriert SMA-Crossover-Regeln, Risikomanagement und Positionsgrößen für ein robustes Trend-Folge-System, das für Krypto-Märkte geeignet ist.
/*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")