
Trata-se de um sistema de negociação inteligente baseado em sinais de cruzamento de dupla equilíbrio, combinado com funções de gerenciamento de risco. O sistema gera sinais de negociação usando médias móveis simples de curto e longo prazo (SMA) e integra funções de stop loss e stop loss para controlar o risco. A estratégia usa uma abordagem de gerenciamento de risco percentual, ajustando o tamanho da posição de acordo com a dinâmica dos fundos da conta, automatizando e inteligenciando o processo de negociação.
A estratégia baseia-se nos seguintes princípios:
Trata-se de um sistema de negociação inteligente que combina métodos clássicos de análise técnica com modernos conceitos de gerenciamento de risco. Através da captura de tendências em duplo equilíbrio, o gerenciamento dinâmico de riscos permite o controle de riscos e a execução automatizada de transações. Embora o sistema ainda tenha algumas áreas que precisam de otimização, a concepção geral é avançada e tem um bom valor prático.
/*backtest
start: 2024-06-09 00:00:00
end: 2025-02-19 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Binance","currency":"ETH_USDT"}]
*/
//@version=6
strategy("AI Trade Bot with Risk Management", overlay=true)
// Input parameters
shortSMA = input.int(9, title="Short SMA")
longSMA = input.int(21, title="Long SMA")
riskPercent = input.float(1.0, title="Risk Percentage", step=0.1)
// Calculate SMAs
shortSMAValue = ta.sma(close, shortSMA)
longSMAValue = ta.sma(close, longSMA)
// Bullish and Bearish Signals
bullishSignal = ta.crossover(shortSMAValue, longSMAValue)
bearishSignal = ta.crossunder(shortSMAValue, longSMAValue)
// Risk Management
stopLossPercent = riskPercent / 100
takeProfitPercent = stopLossPercent * 2
// Calculate position size based on risk management
riskAmount = strategy.equity * riskPercent / 100
var float buyStopLossPrice = na
var float buyTakeProfitPrice = na
var float sellStopLossPrice = na
var float sellTakeProfitPrice = na
if (bullishSignal)
buyStopLossPrice := close * (1 - stopLossPercent)
buyTakeProfitPrice := close * (1 + takeProfitPercent)
strategy.entry("Buy", strategy.long)
strategy.exit("Take Profit/Stop Loss", from_entry="Buy", limit=buyTakeProfitPrice, stop=buyStopLossPrice)
if (bearishSignal)
sellStopLossPrice := close * (1 + stopLossPercent)
sellTakeProfitPrice := close * (1 - takeProfitPercent)
strategy.entry("Sell", strategy.short)
strategy.exit("Take Profit/Stop Loss", from_entry="Sell", limit=sellTakeProfitPrice, stop=sellStopLossPrice)
// Plot SMAs on the chart
plot(shortSMAValue, color=color.blue, title="Short SMA")
plot(longSMAValue, color=color.red, title="Long SMA")
// Plot Buy/Sell signals on the chart
plotshape(series=bullishSignal, location=location.belowbar, color=color.green, style=shape.labelup, title="Buy Signal", text="BUY")
plotshape(series=bearishSignal, location=location.abovebar, color=color.red, style=shape.labeldown, title="Sell Signal", text="SELL")
// Plot Buy Stop Loss and Take Profit levels
plot(buyStopLossPrice, color=color.red, style=plot.style_linebr, linewidth=2, title="Buy Stop Loss")
plot(buyTakeProfitPrice, color=color.green, style=plot.style_linebr, linewidth=2, title="Buy Take Profit")
// Plot Sell Stop Loss and Take Profit levels
plot(sellStopLossPrice, color=color.red, style=plot.style_linebr, linewidth=2, title="Sell Stop Loss")
plot(sellTakeProfitPrice, color=color.green, style=plot.style_linebr, linewidth=2, title="Sell Take Profit")