Esta estratégia define níveis de preço de entrada longos e curtos e níveis de preço de stop loss com base no preço de fechamento do dia anterior e no indicador ATR para acompanhar a tendência.
Esta estratégia utiliza o preço de fechamento, o preço alto, o preço baixo e o indicador ATR do dia anterior para calcular os níveis de preço de entrada e os níveis de stop loss.
Nível de preço de entrada longo TPup = fechamento do dia anterior
Nível de preço de entrada curto TPdown = fechamento do dia anterior - ATR * 0,8
O nível de stop-loss longo despencou = fechamento do dia anterior + ATR * 0,2
Nível de stop loss curto sldown = fechamento do dia anterior - ATR * 0,2
Nível de lucro longo (long take profit levelup) = Baixo do dia anterior + ATR * 1,7
Nível de lucro de captação curta (Short Take Profit Level) Nível de lucro de captação curta (Profit Leveldown) = Alto do dia anterior - ATR * 1,7
Quando o preço atravessa o TPup, vá longo 10 lotes. Quando o preço atravessa o TPdown, vá curto 10 lotes. Em seguida, defina stop loss e take profit.
As principais vantagens desta estratégia são:
Utilização do indicador ATR para definir níveis dinâmicos de preços de entrada e níveis de stop loss com base na volatilidade do mercado, tornando as operações mais adaptáveis às condições do mercado.
Utilizando o fechamento dos dias anteriores para determinar a direção e combinando com o indicador ATR para identificar níveis específicos de negociação, evitando ser enganado pelo ruído excessivo dos preços em tempo real.
Configurar mecanismos de stop loss e take profit para controlar efetivamente o risco de cada negociação.
Os principais riscos desta estratégia são:
Os níveis de preço estabelecidos pelo ATR podem ser demasiado idealistas para refletir verdadeiramente as condições do mercado, levando a frequentes gatilhos de stop loss.
Os preços de venda dos mercados de capitais podem variar de acordo com as tendências de mercado, mas os preços de venda dos mercados de capitais podem variar de acordo com as tendências de mercado.
O stop loss e o take profit podem ser manipulados para desencadear, não conseguindo realmente parar a perda.
Esta estratégia pode ser otimizada nos seguintes aspectos:
Otimizar os parâmetros ATR para que os níveis de comércio se adequem melhor à volatilidade do mercado.
Adicionar mecanismos de avaliação da tendência para evitar reversões de negociação, por exemplo, combinando com indicadores de MA.
Ajustar a faixa de lucro, mantendo a lucratividade, reduzindo a probabilidade de desencadear lucro.
Defina o stop loss e a tomada de lucro para reduzir a probabilidade de ficar preso ou perder.
Adicionar um mecanismo de dimensionamento de posições para aumentar as posições nas fases de tendência.
Esta estratégia define níveis de negociação dinâmicos com base no fechamento do dia anterior e no ATR para rastrear efetivamente as tendências. Também usa stop loss e take profit para controlar os riscos de negociação única. As direções de otimização incluem ajuste de parâmetros, aprimoramento do mecanismo de julgamento, ajuste de lucro e dimensionamento de posição, etc. Em geral, esta estratégia alcança bons efeitos após a tendência.
/*backtest start: 2023-12-01 00:00:00 end: 2023-12-31 23:59:59 period: 1h basePeriod: 15m exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=3 strategy("PC with ATR Strategy (by Zhipengcfel)", shorttitle="PC_ATR", pyramiding=1, overlay=true) // Zhipengcfel's Previous day's close with ATR Strategy // // Version 1.0 // @copyright Idea by Zhipengcfel on June 29, 2017. //Previous day's close plus ATR strategy. //Buy (if breaking PC+ATR*0.8) or sell (if breaking PC-0.8*ATR). //This is just a demo vision and can not be used for real auto trading ///////////// ATR value ATRlength = input(14, minval=1, title="lookback length of ATR") //ATR = atr(ATRlength) ATR = request.security(syminfo.tickerid, 'D', atr(ATRlength)) ///////////// Entry levels and target levels entr = input(0.8, minval=0.1, step = 0.05, title="Entry level for ATR") tplevel = input(1.7, minval=0.1, step = 0.05, title="Exit level for ATR") yesterday = request.security(syminfo.tickerid, 'D', close[1]) dl = request.security(syminfo.tickerid, 'D', low[1]) dh = request.security(syminfo.tickerid, 'D', high[1]) TPup = yesterday+entr*ATR TPdown = yesterday-entr*ATR profitlevelup = dl+tplevel*ATR profitleveldown = dh-tplevel*ATR ///////////// Stop loss level sl = input( 0.2 ,minval=0.01, step = 0.05, title="Stop loss level for ATR") //82 for 2, 83 for 3 and more positions slup = yesterday+sl*ATR sldown = yesterday-sl*ATR ///////////// Starting year to backtest yer = input( 2014 , title="Backtest Starting year") ///////////// strategy: PC + ATR if (close > TPup) and (close < profitlevelup) strategy.entry("LONG", strategy.long, 10, comment="Buy", when = year > yer, oca_name="My oca") strategy.exit("Stopped", "LONG", stop = slup, limit= profitlevelup, oca_name="My oca") if (close < TPdown) and (close > profitleveldown) strategy.entry("SHORT", strategy.short, 10, comment="Sell", when = year > yer, oca_name="My oca") strategy.exit("Stopped", "SHORT", stop = sldown, limit= profitleveldown, oca_name="My oca")