Esta estratégia calcula a média móvel e o canal de desvio padrão do preço para formar trilhos dinâmicos superior e inferior, e combina o valor médio dos preços mais altos e mais baixos para formar o trilho médio, a fim de julgar a direção da tendência atual. Quando o preço atravessa o trilho superior, significa longo. Quando o preço atravessa o trilho inferior, significa curto. Isso implementa uma estratégia que negocia com base nas mudanças de tendência.
A ideia geral desta estratégia é clara e fácil de entender. Ao capturar dinamicamente as tendências através do Canal e gerar sinais de negociação com vários projetos de trilho médio, ele pode efetivamente rastrear as direções da tendência para a negociação e obter bons retornos. Na aplicação real, deve ser dada atenção às estratégias de stop loss, gestão de capital, otimização de parâmetros, etc., a fim de obter retornos estáveis no longo prazo.
/*backtest start: 2023-09-10 00:00:00 end: 2023-10-10 00:00:00 period: 4h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ // This source code is subject to the terms of the Mozilla Public License 2.0 at https://mozilla.org/MPL/2.0/ // © ErdemDemir //@version=4 strategy("Lawyers Trend Pro Strategy", shorttitle="Lawyers Trend Pro Strategy", overlay=true) src = close mult = 2.0 basis = sma(src, 20) dev = mult * stdev(src, 20) upper = basis + dev lower = basis - dev offset = 0 lower2 = lowest(20) upper2 = highest(20) basis2 = avg(upper2, lower2) MB= (basis+basis2)/2 col1=close>MB col3=MB>close colorE = col1 ? color.blue : col3 ? color.red : color.yellow p3=plot(MB, color=colorE, linewidth=3) // Deternine if we are currently LONG isLong = false isLong := nz(isLong[1], false) // Determine if we are currently SHORT isShort = false isShort := nz(isShort[1], false) // Buy only if the buy signal is triggered and we are not already long buySignal = not isLong and crossover(close,MB) // Sell only if the sell signal is triggered and we are not already short sellSignal= not isShort and crossover(MB,close) if (buySignal) isLong := true isShort := false if (sellSignal) isLong := false isShort := true /// LONG strategy.entry("long", true , when = buySignal, comment="Open Long") strategy.close("long", when=sellSignal, comment = "Close Long") /// SHORT strategy.entry("short", false, when = sellSignal, comment="Open Short") strategy.close("short", when=buySignal, comment = "Close Short")