
A estratégia é um sistema de negociação quantitativa baseado na análise de indicadores técnicos multidimensionais, que cria um sistema de decisão de negociação totalmente automatizado por meio da integração de indicadores técnicos como o indicador de força relativa (RSI), o indicador de dispersão de convergência de médias móveis (MACD) e o indicador de média móvel do índice (EMA). A estratégia adota um design modular, suporta parâmetros de configuração de negociação flexíveis e integra mecanismos de parada de perda dinâmicos e funções de parada de perda de rastreamento para obter ganhos estáveis e saudáveis sob o controle do risco.
A lógica central da estratégia baseia-se na análise conjunta de três indicadores técnicos:
A estratégia pode acionar a negociação quando qualquer indicador produz um sinal, além de integrar o mecanismo de controle de risco triplo de percentual de stop loss, stop loss fixo e tracking stop loss. Quando o preço atinge o objetivo de lucro predefinido, a função de stop loss de tracking é ativada automaticamente, garantindo que os lucros obtidos não sejam drasticamente retirados.
A estratégia constrói um quadro de decisão de negociação sistematizado por meio da análise colaborativa de indicadores técnicos multidimensionais e permite o gerenciamento preciso de todo o processo de negociação por meio de um mecanismo de controle de risco perfeito. Embora possa enfrentar desafios específicos em certos cenários de mercado, a estratégia espera manter um desempenho estável em diferentes ciclos de mercado por meio de otimização e melhoria contínuas.
/*backtest
start: 2024-11-21 00:00:00
end: 2024-11-28 00:00:00
period: 4h
basePeriod: 4h
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/
// © rfssocal
//@version=5
strategy("Quantico Bot MILLIONARIO", overlay=true)
// Configuração inicial de parâmetros
capital_inicial = input.float(100, "Capital Inicial ($)", minval=10)
risco_por_trade = input.float(1, "Risco por Trade (%)", minval=0.1, maxval=100)
take_profit_percent = input.float(2, "Take Profit (%)", minval=0.1)
stop_loss_percent = input.float(1, "Stop Loss (%)", minval=0.1)
trailing_stop_percent = input.float(5, "Trailing Stop Gatilho (%)", minval=0.1)
// Configuração de indicadores
usar_rsi = input.bool(true, "Usar RSI como Indicador")
usar_macd = input.bool(true, "Usar MACD como Indicador")
usar_ema = input.bool(true, "Usar EMA como Indicador")
// Indicadores
rsi_value = ta.rsi(close, 14)
[macd_line, signal_line, _] = ta.macd(close, 12, 26, 9)
ema_20 = ta.ema(close, 20)
ema_50 = ta.ema(close, 50)
// Condições de compra
compra_rsi = usar_rsi and rsi_value < 30
compra_macd = usar_macd and macd_line > signal_line
compra_ema = usar_ema and ema_20 > ema_50
compra = compra_rsi or compra_macd or compra_ema
// Condições de venda
venda_rsi = usar_rsi and rsi_value > 70
venda_macd = usar_macd and macd_line < signal_line
venda_ema = usar_ema and ema_20 < ema_50
venda = venda_rsi or venda_macd or venda_ema
// Calcular stop loss e take profit
stop_loss_price = strategy.position_avg_price * (1 - stop_loss_percent / 100)
take_profit_price = strategy.position_avg_price * (1 + take_profit_percent / 100)
// Adiciona trailing stop automático
if (strategy.position_size > 0 and close >= strategy.position_avg_price * (1 + trailing_stop_percent / 100))
strategy.exit("Trailing Stop", from_entry="Compra", stop=close * 0.99)
// Executa as ordens automáticas
if (compra)
strategy.entry("Compra", strategy.long)
if (venda)
strategy.entry("Venda", strategy.short)
// Variável para calcular o lucro total
var float total_profit = 0.0
total_profit := strategy.netprofit
// Exibição de dados no gráfico
label.new(bar_index, na, "Take Profit: " + str.tostring(take_profit_price) + "\nStop Loss: " + str.tostring(stop_loss_price),
style=label.style_label_down, color=color.green, textcolor=color.white)
// Exibe o balanço
label.new(bar_index, na, "Balanço Atual\nDiário: " + str.tostring(total_profit), style=label.style_label_down, color=color.blue, textcolor=color.white)