Diese Strategie ist ein automatisiertes Handelssystem, das auf gleitenden Durchschnitts-Crossover-Signalen basiert und durch ein festes Risiko-Rendite-Verhältnis optimiert wird.
Die Kernlogik basiert auf Crossover-Signalen, die durch zwei gleitende Durchschnitte (10-Periode und 30-Periode) erzeugt werden. Das System erzeugt lange Signale, wenn der schnelle MA über den langsamen MA überschreitet, und kurze Signale, wenn der schnelle MA unterhalb des langsamen MA überschreitet. Nach jedem Eintrag berechnet das System automatisch Stop-Loss-Levels auf der Grundlage eines vorgegebenen 2% Verlustprozentsatzes und setzt Gewinnziele nach einem 2,5-Risiko-Rendite-Verhältnis. Dieser Ansatz stellt sicher, dass jeder Handel konsistente Risiko-Rendite-Eigenschaften hat.
Diese Strategie kombiniert klassische technische Analysemethoden mit modernen Risikomanagementkonzepten, um ein vollständiges Handelssystem aufzubauen. Obwohl sie bestimmte Einschränkungen aufweist, ermöglicht die kontinuierliche Optimierung und Verbesserung, dass die Strategie eine stabile Leistung unter verschiedenen Marktbedingungen aufrechterhält. Der Schlüssel liegt in der ständigen Anpassung der Parameter-Einstellungen basierend auf den tatsächlichen Handelsergebnissen, um die am besten geeignete Konfiguration für das aktuelle Marktumfeld zu finden.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-25 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("SOL 15m 2.5 R:R Strategy", overlay=true, margin_long=100, margin_short=100, initial_capital=10000, commission_type=strategy.commission.percent, commission_value=0.1) //--------------------------------------------------- // User Inputs //--------------------------------------------------- // sym = input.symbol("swap", "Symbol") timeframe = input.timeframe("15", "Timeframe") fastLength = input.int(10, "Fast MA Length") slowLength = input.int(30, "Slow MA Length") stopLossPerc = input.float(2.0, "Stop Loss %", step=0.1) // This is an example; adjust to achieve ~45% win rate RR = input.float(2.5, "Risk to Reward Ratio", step=0.1) //--------------------------------------------------- // Data Sources //--------------------------------------------------- price = request.security("swap", timeframe, close) // Compute moving averages fastMA = ta.sma(price, fastLength) slowMA = ta.sma(price, slowLength) // Entry Conditions longCondition = ta.crossover(fastMA, slowMA) shortCondition = ta.crossunder(fastMA, slowMA) //--------------------------------------------------- // Stop Loss and Take Profit Calculation //--------------------------------------------------- var entryPrice = 0.0 if (strategy.position_size == 0) // not in a position if longCondition // Long entry entryPrice := price strategy.entry("Long", strategy.long) if shortCondition // Short entry entryPrice := price strategy.entry("Short", strategy.short) if strategy.position_size > 0 // We are in a long position if strategy.position_avg_price > 0 and strategy.position_size > 0 longStop = strategy.position_avg_price * (1 - stopLossPerc/100) longTarget = strategy.position_avg_price * (1 + (stopLossPerc/100)*RR) strategy.exit("Long Exit", "Long", stop=longStop, limit=longTarget) if strategy.position_size < 0 // We are in a short position if strategy.position_avg_price > 0 and strategy.position_size < 0 shortStop = strategy.position_avg_price * (1 + stopLossPerc/100) shortTarget = strategy.position_avg_price * (1 - (stopLossPerc/100)*RR) strategy.exit("Short Exit", "Short", stop=shortStop, limit=shortTarget) //--------------------------------------------------- // Plotting //--------------------------------------------------- plot(fastMA, color=color.new(color.teal, 0), title="Fast MA") plot(slowMA, color=color.new(color.orange, 0), title="Slow MA")