
Trata-se de uma estratégia de negociação auto-adaptativa baseada em sinais de cruzamento de duas equações. A estratégia utiliza uma média móvel simples (SMA) de 14 e 28 ciclos para gerar sinais de negociação, e combina um mecanismo de parada e parada ajustável para gerenciar o equilíbrio entre o risco e o ganho. A estratégia usa o método de gerenciamento de fundos fixos, com capital inicial de 2000 e investimentos de 200 por transação.
A lógica central da estratégia baseia-se na relação cruzada entre duas médias móveis simples de diferentes períodos. Quando a média curta (de 14 períodos) atravessa a média longa (de 28 períodos) para cima, gera-se um sinal de multiplicação; Quando a média curta atravessa a média longa para baixo, gera-se um sinal de ruptura. Ao mesmo tempo, a estratégia introduz um mecanismo de parada e parada baseado em porcentagem, configurado em 2% e 4%, o qual é projetado para ajustar automaticamente a posição de parada e parada de acordo com o preço de mercado.
Trata-se de uma estratégia de negociação estruturada com clareza e rigor lógico. Fornece sinais de negociação por meio de cruzamentos de dupla equilíbrio, acompanhado por um mecanismo de parada de perda adaptado, que permite a captura de oportunidades de negociação e o controle de riscos. Embora haja algum espaço para otimização da estratégia, o design geral está em conformidade com os princípios básicos da negociação quantitativa.
/*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")