
Die Strategie ist ein automatisiertes Handelssystem, das auf einfachen Moving Averages (SMA) basiert, kombiniert mit einem dynamischen Stop-Loss-Mechanismus. Es verwendet zwei unterschiedliche periodische SMAs, um über ihre Kreuzung ein Kauf- und Verkaufssignal zu erzeugen. Die Strategie setzt außerdem auf prozentuale Stop-Loss-Levels, um Risiken zu kontrollieren und Gewinne zu sichern.
Diese auf doppelte Linearisierung basierende Handelsstrategie bietet einen einfachen und effektiven Rahmen für Anfänger, die mit dem Automatisierten Handel beginnen. Sie kombiniert Elemente des Trend-Trackings und des Risikomanagements, um ihre Gelder durch die dynamische Einstellung von Stop-Losses zu schützen. Für bessere Effekte im realen Handel sind jedoch weitere Optimierungen und Verbesserungen erforderlich.
/*backtest
start: 2024-05-01 00:00:00
end: 2024-05-31 23:59:59
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
// This Pine Script™ code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/
// © Pubgentleman
//@version=5
//@version=5
strategy("TSLA 1-Hour SMA Crossover Strategy with Buy/Sell Signals", overlay=true)
// Parameters
shortSmaLength = input.int(50, title="Short SMA Length")
longSmaLength = input.int(100, title="Long SMA Length")
takeProfitPerc = input.float(5.0, title="Take Profit Percentage", step=0.1) // 5.0% take profit
stopLossPerc = input.float(3.0, title="Stop Loss Percentage", step=0.1) // 3.0% stop loss
// Calculate SMAs
shortSma = ta.sma(close, shortSmaLength)
longSma = ta.sma(close, longSmaLength)
// Plot SMAs
plot(shortSma, color=color.blue, title="Short SMA")
plot(longSma, color=color.red, title="Long SMA")
// Entry Conditions
longCondition = ta.crossover(shortSma, longSma)
shortCondition = ta.crossunder(shortSma, longSma)
// Trade Management
var float entryPrice = na
var float takeProfitLevel = na
var float stopLossLevel = na
if (longCondition)
entryPrice := close
takeProfitLevel := entryPrice * (1 + takeProfitPerc / 100)
stopLossLevel := entryPrice * (1 - stopLossPerc / 100)
strategy.entry("Long", strategy.long)
label.new(x=bar_index, y=low, text="Buy", style=label.style_label_up, color=color.green, textcolor=color.white)
if (shortCondition)
entryPrice := close
takeProfitLevel := entryPrice * (1 - takeProfitPerc / 100)
stopLossLevel := entryPrice * (1 + stopLossPerc / 100)
strategy.entry("Short", strategy.short)
label.new(x=bar_index, y=high, text="Sell", style=label.style_label_down, color=color.red, textcolor=color.white)
// Exit Conditions
if (strategy.position_size > 0)
if (close >= takeProfitLevel or close <= stopLossLevel)
strategy.close("Long")
if (strategy.position_size < 0)
if (close <= takeProfitLevel or close >= stopLossLevel)
strategy.close("Short")
// Plot Take Profit and Stop Loss Levels
plot(strategy.position_size > 0 ? takeProfitLevel : na, title="Take Profit Level", color=color.green, style=plot.style_stepline)
plot(strategy.position_size > 0 ? stopLossLevel : na, title="Stop Loss Level", color=color.red, style=plot.style_stepline)
plot(strategy.position_size < 0 ? takeProfitLevel : na, title="Take Profit Level (Short)", color=color.green, style=plot.style_stepline)
plot(strategy.position_size < 0 ? stopLossLevel : na, title="Stop Loss Level (Short)", color=color.red, style=plot.style_stepline)