
Bei dieser Strategie handelt es sich um ein intelligentes Handelssystem, das auf gleitenden Durchschnittskreuzungssignalen basiert und mit einem dynamischen Stop-Profit- und Stop-Loss-Verwaltungsmechanismus kombiniert ist. Der Kern der Strategie nutzt die Kreuzung zweier einfacher gleitender Durchschnitte (SMA) von 7 Perioden und 40 Perioden, um Handelssignale zu generieren, und integriert gleichzeitig ein prozentuales Stop-Profit- und Stop-Loss-Kontrollsystem, um ein genaues Management zu erreichen von Handelsrisiken.
Die Strategie basiert auf den folgenden Kernmechanismen:
Diese Strategie erfasst Markttrends durch gleitende Durchschnittskreuzungen und erreicht ein Risikomanagement durch dynamische Stop-Profit- und Stop-Loss-Werte und ist äußerst praxistauglich. Obwohl ein gewisses Verzögerungsrisiko besteht, können die Stabilität und Rentabilität der Strategie durch die empfohlenen Optimierungsrichtungen weiter verbessert werden. Die Strategie ist in hohem Maße konfigurierbar und eignet sich für weitere Verbesserungen und individuelle Anpassungen.
/*backtest
start: 2024-12-10 00:00:00
end: 2025-01-08 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT","balance":49999}]
*/
//@version=5
strategy("Cruzamento de Médias Móveis (Configuração Interativa)", overlay=true)
// Permite que o usuário defina os períodos das médias móveis na interface
periodo_ma7 = input.int(7, title="Período da Média Móvel 7", minval=1)
periodo_ma40 = input.int(40, title="Período da Média Móvel 40", minval=1)
// Definindo as médias móveis com os períodos configuráveis
ma7 = ta.sma(close, periodo_ma7)
ma40 = ta.sma(close, periodo_ma40)
// Parâmetros de stop loss e take profit
stop_loss_pct = input.float(1, title="Stop Loss (%)", minval=0.1) / 100
take_profit_pct = input.float(2, title="Take Profit (%)", minval=0.1) / 100
// Condições para compra e venda
compra = ta.crossover(ma7, ma40)
venda = ta.crossunder(ma7, ma40)
// Impede novas entradas enquanto já houver uma posição aberta
if (compra and strategy.position_size == 0)
strategy.entry("Compra", strategy.long)
// Cálculo do preço de stop loss e take profit
stop_loss_price = strategy.position_avg_price * (1 - stop_loss_pct)
take_profit_price = strategy.position_avg_price * (1 + take_profit_pct)
// Estratégia de saída com stop loss e take profit
strategy.exit("Saída", from_entry="Compra", stop=stop_loss_price, limit=take_profit_price)
// Sinal de venda (fechamento da posição)
if (venda)
strategy.close("Compra")
// Plotando as médias móveis no gráfico
plot(ma7, color=color.blue, title="Média Móvel 7")
plot(ma40, color=color.red, title="Média Móvel 40")
// Plotando o Stop Loss e Take Profit no gráfico
plot(stop_loss_price, color=color.red, style=plot.style_line, linewidth=2, title="Stop Loss")
plot(take_profit_price, color=color.green, style=plot.style_line, linewidth=2, title="Take Profit")