Esta é uma estratégia de negociação adaptativa baseada em sinais duplos de cruzamento de média móvel. A estratégia utiliza 14 períodos e 28 períodos de médias móveis simples (SMA) para gerar sinais de negociação, combinados com mecanismos ajustáveis de stop-loss e take-profit para alcançar uma gestão equilibrada de risco-recompensa. A estratégia emprega gestão de dinheiro fixo com um capital inicial de 2000 e 200 por negociação.
A lógica central baseia-se na relação cruzada entre duas SMAs de períodos diferentes. Um sinal longo é gerado quando o MA de curto prazo (14 períodos) cruza acima do MA de longo prazo (28-período), e um sinal curto é gerado quando o MA de curto prazo cruza abaixo do MA de longo prazo. A estratégia incorpora mecanismos de stop-loss e take-profit baseados em porcentagem definidos em 2% e 4% respectivamente, permitindo o ajuste automático dos pontos de saída com base nos preços de mercado.
Esta é uma estratégia de negociação bem estruturada e logicamente sólida. Captura oportunidades de negociação através de cruzamento de médias móveis duplas, controlando os riscos com mecanismos adaptativos de stop-loss e take-profit. Embora haja espaço para otimização, o projeto geral adere aos princípios quantitativos fundamentais de negociação. Através das direções de otimização sugeridas, a estabilidade e o potencial de lucratividade da estratégia podem ser melhorados.
/*backtest start: 2024-10-01 00:00:00 end: 2024-10-31 23:59:59 period: 1h basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy('My Custom Strategy', overlay = true) // Parámetros de las SMAs (Medias Móviles Simples) sma14 = ta.sma(close, 14) sma28 = ta.sma(close, 28) // Stop Loss y Take Profit configurables stop_loss_percent = input.float(2, title="Stop Loss %", minval=0.1, step=0.1) take_profit_percent = input.float(4, title="Take Profit %", minval=0.1, step=0.1) // Cálculo de stop loss y take profit stop_loss = close * (1 - stop_loss_percent / 100) take_profit = close * (1 + take_profit_percent / 100) // Condiciones de entrada para compra (long) longCondition = ta.crossover(sma14, sma28) if (longCondition) strategy.entry('Long', strategy.long, stop=stop_loss, limit=take_profit) plotshape(series=longCondition, color=color.new(color.blue, 0), style=shape.labelup, location=location.belowbar, text="BUY") // Condiciones de entrada para venta (short) shortCondition = ta.crossunder(sma14, sma28) if (shortCondition) strategy.entry('Short', strategy.short, stop=stop_loss, limit=take_profit) plotshape(series=shortCondition, color=color.new(color.red, 0), style=shape.labeldown, location=location.abovebar, text="SELL") // Visualización de las SMAs en el gráfico plot(sma14, color=color.blue, title="SMA 14") plot(sma28, color=color.red, title="SMA 28")