Esta estratégia é chamada de
Calcular o SMA9, o SMA50, o SMA180 do preço de fechamento e o EMA20.
Determine os sinais de compra e venda com base na relação entre preço de fechamento e suporte sup e resistência res.
Quando comprar gatilhos de sinal, execute a estratégia de posição longa; quando vender gatilhos de sinal, feche a posição longa.
Quando vender sinais de disparo, execute a estratégia de posição curta; quando comprar sinais de disparo, feche a posição curta.
A combinação de várias médias móveis para formar sinais de negociação melhora a precisão e a estabilidade.
Calcular o suporte dinâmico e a resistência torna os sinais de negociação mais confiáveis.
A adopção de médias móveis de alta, média e baixa volatilidade considera tanto a tendência a longo prazo como os avanços a curto prazo, melhorando a rentabilidade da estratégia.
O apoio às posições longas e curtas pode obter lucros nos mercados de tendência e lateral.
A SMA tem um efeito de atraso, o que pode atrasar os sinais de compra e venda e afetar o desempenho da estratégia.
Sem mecanismo de stop loss, as perdas podem aumentar.
Dados insuficientes de backtesting, os parâmetros devem ser ajustados em função do mercado.
Confiando em indicadores técnicos, incapazes de lidar com eventos de cisne negro.
Soluções:
Para controlar a perda única, adicionar um stop loss baseado na volatilidade.
Adicionar modelos de aprendizado de máquina para ajudar no julgamento de tendências e geração de sinais.
Adicionar análise de preços-chave para melhorar a precisão de suporte e resistência.
Teste diferentes combinações de parâmetros para encontrar parâmetros melhores.
Esta estratégia combina os indicadores técnicos de SMA e EMA para construir sinais de negociação, e calcula suporte dinâmico e resistência para formar uma lógica completa de compra e venda. As vantagens são parâmetros flexíveis, negociação bidirecional, adaptável a diferentes mercados, mas também enfrenta problemas como atraso e stop loss inadequado. As otimizações futuras podem ser feitas em aspectos como stop loss, tendência de julgamento, análise de preços-chave para melhorar a estabilidade e lucratividade.
]
/*backtest start: 2023-12-10 00:00:00 end: 2023-12-11 00:00:00 period: 3m basePeriod: 1m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy(title="StrategySMA 9/50/180 | EMA 20 | BUY/SELL", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=100) //SMA and EMA code smaInput1 = input(9, title="SMA1") smaInput2 = input(50, title="SMA2") smaInput3 = input(180, title="SMA3") emaInput1 = input(20, title="EMA1") sma1 = sma(close, smaInput1) sma2 = sma(close, smaInput2) sma3 = sma(close, smaInput3) EMA1 = ema(close, emaInput1) plot(sma1, color= color.red , title="SMA1") plot(sma2, color = color.blue, title="SMA2") plot(sma3, color= color.white, title="SMA3") plot(EMA1, color = color.yellow, title="EMA1") no=input(3,title="BUY/SELL Swing") Barcolor=input(false,title="BUY/SELL Bar Color") Bgcolor=input(false,title="BUY/SELL Background Color") res=highest(high,no) sup=lowest(low,no) avd=iff(close>res[1],1,iff(close<sup[1],-1,0)) avn=valuewhen(avd!=0,avd,0) tsl=iff(avn==1,sup,res) // Buy/sell signals BuySignal = crossover(close, tsl) SellSignal = crossunder(close, tsl) // Enter long position strategy.entry("Buy", strategy.long, when=BuySignal) // Exit long position strategy.exit("Sell", "Buy", when=SellSignal) // Enter short position strategy.entry("Sell", strategy.short, when=SellSignal) // Exit short position strategy.exit("Buy", "Sell", when=BuySignal) colr = close>=tsl ? color.green : close<=tsl ? color.red : na plot(tsl, color=colr)