Esta estratégia usa uma média móvel como sinais de negociação e combina-a com índices de stop loss e take profit definidos pelo usuário para implementar uma estratégia completa de stop loss e take profit orientada por indicadores.
A lógica central desta estratégia é a seguinte:
Utilize a SMA de 3 períodos como sinais de negociação, vá longo quando a SMA cruza acima de 0 e vá curto quando a SMA cruza abaixo de 0.
Após entrar em um comércio, os usuários podem personalizar o stop loss e tomar as taxas de lucro.
Com base no preço de entrada e na taxa de stop loss definida pelo utilizador, definir automaticamente a linha de stop loss.
Com base no preço de entrada e no rácio de lucro estabelecido pelo utilizador, a linha de lucro é automaticamente definida.
Quando o preço toca a linha de stop loss, pára automaticamente.
Após o fechamento das posições, cancele automaticamente as ordens de stop loss e tome lucro.
Especificamente, a estratégia calcula a SMA de 3 períodos utilizando a função sma e atribui-a à variável ma.
Em seguida, ele calcula o comprimento da linha de entrada longa, que é ma mais ma% de lo. lo é um parâmetro ajustável pelo usuário para o deslocamento de linha de entrada longa.
Quando ma cruza acima de 0, ele sinaliza uma entrada longa.
Ao mesmo tempo, os preços de stop loss e take profit são definidos. O preço de stop loss é o preço de entrada menos o preço de entrada% de sl. sl é o parâmetro de taxa de stop loss ajustável pelo usuário. O preço de take profit é o preço de entrada mais o preço de entrada% de tp. tp é o parâmetro de taxa de take profit ajustável pelo usuário.
A função Strategy.entry define as ordens stop loss e take profit separadamente. Quando o preço toca a linha stop loss, ele vai parar automaticamente. Quando o preço toca a linha take profit, ele vai tirar lucro automaticamente.
Após o encerramento das posições, as ordens de stop loss e take profit são canceladas automaticamente através da função strategy.cancel.
As vantagens desta estratégia:
Alto grau de automação, sem interferência manual necessária, adequado para negociação por algoritmos.
Indicadores de stop loss e take profit personalizáveis para controlar o risco.
Os sinais de negociação vêm do indicador, evitando falhas.
Visualização de stop loss e take profit, intuitivo.
Uma lógica estratégica simples e clara, fácil de compreender e implementar.
Há também alguns riscos com esta estratégia:
Risco de sinais falsos do indicador A solução é otimizar os parâmetros para garantir um indicador confiável.
A solução é ajustar as taxas para diferentes mercados.
A solução é filtrar os sinais de entrada com tendência, volume, etc.
A solução é reduzir o tamanho da posição ou usar o stop loss.
Algumas orientações para otimizar a estratégia:
Otimizar os parâmetros da média móvel para garantir a fiabilidade.
Otimizar as condições de entrada para evitar falhas, adicionar confirmação de volume, etc.
Otimizar o stop loss e tirar lucro, usar stop loss dinâmico ou de trail, etc.
Otimizar a gestão de riscos, ajustar o tamanho das posições, reduzir o risco de negociação única.
Otimizar o tempo de entrada, combinar com tendência, suporte/resistência, etc.
Adicione pirâmide para ganhos compostos.
Optimização de parâmetros para produtos específicos.
Esta estratégia fornece uma estrutura técnica simples e confiável para stop loss orientado por indicadores e take profit com vantagens como automação e controle de risco. É adequado para negociação algorítmica. Há também muitos aspectos que podem ser melhorados e otimizados, como parâmetros de indicadores, filtros de entrada, estratégias de stop loss / take profit, gerenciamento de riscos, etc. Com novas extensões e otimizações, pode se tornar uma estratégia de negociação ainda mais poderosa.
/*backtest start: 2023-01-01 00:00:00 end: 2023-11-09 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("example for panel signals", overlay = true, default_qty_type = strategy.percent_of_equity, default_qty_value = 100, pyramiding = 0) //https://www.tradingview.com/script/m2a04xmb-noro-s-shiftma-tp-sl-strategy/ //Settings lo = input(-5.0, title = "Long-line, %") tp = input(5.0, title = "Take-profit") sl = input(2.0, title = "Stop-loss") //SMA ma = sma(ohlc4, 3) long = ma + ((ma / 100) * lo) //Orders avg = strategy.position_avg_price if ma > 0 strategy.entry("Long", strategy.long, limit = long) strategy.entry("Take", strategy.short, 0, limit = avg + ((avg / 100) * tp)) strategy.entry("Stop", strategy.short, 0, stop = avg - ((avg / 100) * sl)) //Cancel order if strategy.position_size == 0 strategy.cancel("Take") strategy.cancel("Stop") //Lines plot(long, offset = 1, color = color.black, transp = 0) take = avg != 0 ? avg + ((avg / 100) * tp) : long + ((long / 100) * tp) stop = avg != 0 ? avg - ((avg / 100) * sl) : long - ((long / 100) * sl) takelinecolor = avg == avg[1] and avg != 0 ? color.lime : na stoplinecolor = avg == avg[1] and avg != 0 ? color.red : na plot(take, offset = 1, color = takelinecolor, linewidth = 3, transp = 0) plot(stop, offset = 1, color = stoplinecolor, linewidth = 3, transp = 0) // disp_panels = input(true, title="Display info panels?") h=high info_label_off = input(20, title="Info panel offset") info_label_size = input(size.large, options=[size.tiny, size.small, size.normal, size.large, size.huge], title="Info panel label size") info_panel_x = timenow + round(change(time)*info_label_off) info_panel_y = h info_title= "-=-=-=-=- Info Panel -=-=-=-=-" info_div = "\n\n------------------------------" a = "\n\ Long : " + tostring(long) b = "\n\ Stop loss : " + tostring(stop) c = "\n\ TP : " + tostring(take) // info_text = a+c+b // info_panel = disp_panels ? label.new(x=info_panel_x, y=info_panel_y, text=info_text, xloc=xloc.bar_time, yloc=yloc.price, color=color.yellow, style=label.style_labelup, textcolor=color.black, size=info_label_size) : na // label.delete(info_panel[1])