
A estratégia é um sistema de negociação automatizado baseado em uma média móvel simples (SMA) de cruzamento e filtragem de volume de transação. Utiliza cruzamento de SMAs rápidas e lentas para gerar sinais de entrada, ao mesmo tempo em que combina indicadores de volume de transação para confirmar a força da tendência. A estratégia também inclui mecanismos de stop loss e stop loss dinâmicos e condições de saída baseadas em tempo, com o objetivo de otimizar o gerenciamento de risco e aumentar a lucratividade.
A estratégia baseia-se nos seguintes componentes:
Sinais de cruzamento SMA:
Filtração de transações:
A perda de dinâmica e a parada:
Base temporal de saída:
Configuração durante a detecção:
A combinação de acompanhamento de tendências e dinâmica: A combinação de filtragem de massa e cruzamento de SMA permite que a estratégia capte uma tendência forte, evitando a negociação frequente em mercados fracos.
Gestão de risco flexível: Os mecanismos de stop loss e de stop-loss dinâmicos permitem que a estratégia ajuste automaticamente a exposição ao risco de acordo com a volatilidade do mercado, ajudando a proteger os lucros e a limitar as perdas potenciais.
Prevenção de posse excessiva: O limite máximo de tempo de posse ajuda a evitar que a estratégia mantenha posições perdedoras por um longo período em condições de mercado desfavoráveis e promove o uso efetivo dos fundos.
Forte customização: Vários parâmetros ajustáveis (como o ciclo SMA, a porcentagem de parada de perda, o tempo máximo de posse, etc.) permitem que a estratégia seja otimizada para diferentes mercados e estilos de negociação.
Apoio visual: A estratégia traça as linhas SMA e os sinais de negociação nos gráficos para facilitar a compreensão e análise do desempenho da estratégia.
Atraso: Os indicadores SMA são, por natureza, atrasados, o que pode levar a atrasos de entrada ou a oportunidades perdidas em mercados de retorno rápido.
Risco de Falso Breakout: Nos mercados de mercado, os cruzamentos SMA podem gerar frequentes falsos sinais de ruptura, resultando em sobre-negociação e aumento dos custos de transação.
O volume de transações depende de: A dependência excessiva de indicadores de volume de transação pode induzir estratégias erradas em certas condições de mercado, especialmente durante períodos de baixa liquidez ou volume de transação anormal.
Percentagem fixa de stop loss/stop loss: O uso de stop loss e stop-loss de porcentagem fixa pode não ser adequado para todas as condições de mercado, especialmente em períodos de grande volatilidade.
A restrição de saída por base temporal: O tempo máximo de manutenção de posição fixo pode levar a liquidação prematura de posições quando a tendência favorável ainda não terminou, afetando os resultados potenciais.
Ajustes de parâmetros dinâmicos: Permite o ajuste dinâmico dos ciclos SMA, dos percentual de stop loss e do tempo máximo de detenção de posições para adaptar-se a diferentes ciclos e volatilidades do mercado.
incorporar filtros adicionais: A introdução de outros indicadores técnicos (como RSI, MACD, etc.) como condições de filtragem adicionais para melhorar a precisão do sinal de negociação.
A redução do volume de transações: Desenvolver mecanismos de depreciação do volume de transação adaptados dinamicamente para melhor adaptar-se às características do volume de transação em diferentes fases do mercado.
Melhorias no mecanismo de saída: Explorar mecanismos de saída inteligentes baseados na estrutura do mercado ou em indicadores de dinâmica, substituindo saídas de tempo fixo e aumentando a adaptabilidade das estratégias.
Ajuste de volatilidade: Realizar o ajustamento dos níveis de stop loss e stop loss dinâmicos com base na volatilidade do mercado para melhor gerenciar o risco e capturar os lucros.
Análise de vários quadros temporais: Integrar análise de dados em vários períodos de tempo, melhorando a capacidade da estratégia de identificar tendências e reversões de mercado.
Otimizar o aprendizado de máquina: Utilizando algoritmos de aprendizagem de máquina para otimizar dinamicamente os parâmetros da estratégia e melhorar o desempenho da estratégia em diferentes ambientes de mercado.
A “estratégia de parada de perda dinâmica adaptativa com filtragem de SMA cruz e transação” é um sistema de negociação integrado que combina rastreamento de tendências, análise de transação e gerenciamento de risco. Através da utilização de SMA cruz e filtragem de transação, a estratégia visa capturar tendências de mercado fortes, enquanto seu mecanismo de parada de perda dinâmica e a função de saída baseada em tempo oferecem controle de risco flexível.
/*backtest
start: 2024-06-30 00:00:00
end: 2024-07-30 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Simple_CrossOver_Bot_V1_EBO", overlay=true)
// INPUTS
dateStart_Year = input.int(2018, title="Start Year", minval=2000)
dateStart_Month = input.int(1, title="Start Month", minval=1, maxval=12)
dateStart_Day = input.int(1, title="Start Day", minval=1, maxval=31)
dateEnd_Year = input.int(2019, title="End Year", minval=2000)
dateEnd_Month = input.int(1, title="End Month", minval=1, maxval=12)
dateEnd_Day = input.int(1, title="End Day", minval=1, maxval=31)
fast_SMA_input = input.int(7, title="SMA Fast")
slow_SMA_input = input.int(25, title="SMA Slow")
volume_SMA_input = input.int(20, title="Volume SMA")
stop_loss_percent = input.float(1.0, title="Stop Loss (%)", step=0.1) / 100
take_profit_percent = input.float(2.0, title="Take Profit (%)", step=0.1) / 100
max_bars_in_trade = input.int(50, title="Max Bars in Trade", minval=1)
// INDICATORS
fast_SMA = ta.sma(close, fast_SMA_input)
slow_SMA = ta.sma(close, slow_SMA_input)
volume_SMA = ta.sma(volume, volume_SMA_input)
// STRATEGY
LONG = ta.crossover(fast_SMA, slow_SMA) and fast_SMA > slow_SMA and volume > volume_SMA
SHORT = ta.crossunder(fast_SMA, slow_SMA) and fast_SMA < slow_SMA and volume < volume_SMA
// TRIGGERS
testPeriodStart = timestamp(dateStart_Year, dateStart_Month, dateStart_Day)
testPeriodEnd = timestamp(dateEnd_Year, dateEnd_Month, dateEnd_Day)
timecondition = true
// Track bar index for entries
var int long_entry_bar_index = na
var int short_entry_bar_index = na
if timecondition
if LONG
strategy.entry(id="LONG", direction=strategy.long)
long_entry_bar_index := bar_index
if SHORT
strategy.entry(id="SHORT", direction=strategy.short)
short_entry_bar_index := bar_index
// Exit conditions for LONG
if not na(long_entry_bar_index) and bar_index - long_entry_bar_index >= max_bars_in_trade
strategy.close("LONG")
long_entry_bar_index := na
// Exit conditions for SHORT
if not na(short_entry_bar_index) and bar_index - short_entry_bar_index >= max_bars_in_trade
strategy.close("SHORT")
short_entry_bar_index := na
// Standard exits
if LONG
strategy.exit("Exit LONG", from_entry="LONG", stop=close * (1 - stop_loss_percent), limit=close * (1 + take_profit_percent))
if SHORT
strategy.exit("Exit SHORT", from_entry="SHORT", stop=close * (1 + stop_loss_percent), limit=close * (1 - take_profit_percent))
// PLOTS
plot(fast_SMA, color=color.green, linewidth=1, title="Fast SMA")
plot(slow_SMA, color=color.yellow, linewidth=1, title="Slow SMA")
plot(volume_SMA, color=color.blue, linewidth=1, title="Volume SMA")
plotshape(series=LONG, location=location.belowbar, color=color.green, style=shape.labelup, text="BUY", size=size.small)
plotshape(series=SHORT, location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL", size=size.small)
// Uncomment the following lines for alerts
// alertcondition(LONG, title="LONG")
// alertcondition(SHORT, title="SHORT")