A ideia principal desta estratégia é detectar se o preço quebra o preço mais baixo em um período especificado e vai longo, esperando que o preço volte para a média.
A estratégia obtém o preço mais baixo em um período especificado lowestLow usando o método ta.lowest do Pine Script
Se o preço mais baixo do último período
A estratégia permite escolher a condição de desencadeamento, ou seja, o preço mais baixo precisa romper 1, 2, 3 ou 4 preços mais baixos anteriores consecutivamente, para controlar a frequência de negociação.
Também traça a linha de preço mais baixa mais baixa e a linha de preço mais alta mais alta no gráfico para exibir visualmente a mudança de tendência.
A estratégia capta a tendência de reversão depois de quebrar novos mínimos com uma taxa de vitória relativamente alta.
Permite escolher o número de preços mais baixos quebrados para controlar a frequência de negociação.
Desenhar as linhas ajuda a determinar visualmente os pontos de mudança de tendência.
Uma lógica estratégica simples e clara, fácil de compreender e implementar.
Pode ser configurado e otimizado em diferentes estoques e períodos de tempo.
A quebra do fundo falso não pode determinar pontos de inversão da tendência, pode levar a perdas.
Precisa de testar diferentes combinações de parâmetros para otimizar as configurações, caso contrário a frequência de negociação pode ser muito alta ou muito baixa.
Os parâmetros devem ser ajustados para diferentes unidades populacionais e não devem ser aplicados de forma mecânica.
O período de ensaio posterior insuficiente pode causar sobreajuste.
O preço pode atingir novos mínimos após a ruptura, necessidade de definir stop loss para controlar os riscos.
Adicione mecanismos de stop loss como stop loss em movimento, stop loss de trail, para limitar a perda por comércio.
Otimizar o número de breakouts para equilibrar a frequência de negociação e a qualidade do sinal.
Parâmetros de ensaio em diferentes unidades populacionais e períodos de tempo.
Adicionar filtros para evitar negociações frequentes em mercados variados.
Considere a adição de indicadores de tendência para evitar a negociação contra tendência.
Teste diferentes sinais de saída.
A estratégia capta oportunidades de reversão monitorando breakouts de preços mais baixos, uma típica estratégia de reversão de breakout de média. As vantagens são simplicidade, frequência controlável e aplicabilidade a várias ações. Mas também tem alguns riscos de falha de breakout. Adicionar filtros e otimização é necessário, bem como controlar riscos. Com testes e otimização abrangentes, pode se tornar um sistema de negociação estável e confiável.
/*backtest start: 2023-10-02 00:00:00 end: 2023-11-01 00:00:00 period: 1h 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/ // © merovinh //@version=5 strategy(title="Merovinh - Mean Reversion Lowest low", overlay = true, default_qty_type = strategy.percent_of_equity, initial_capital = 10000, default_qty_value = 10, commission_type = strategy.commission.percent, slippage = 1, commission_value = 0.04) GR_TIME = 'Time Period' bars = input(9, title = "Minimum number of bars", tooltip = "The minimum number of bars before updating lowest low / highest high") numberOfLows = input.string(defval='One', title='Number of broken lows', options=['One', 'Two', 'Three', 'Four']) //Period var prevLow = .0 var prevHigh = .0 var prevLow2 = .0 var prevLow3 = .0 var prevLow4 = .0 truetime = true highestHigh = ta.highest(high, bars) lowestLow = ta.lowest(low, bars) if numberOfLows == 'One' if truetime and prevLow > 0 and lowestLow < prevLow strategy.entry('long', strategy.long) if numberOfLows == 'Two' if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 strategy.entry('long', strategy.long) if numberOfLows == 'Three' if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 strategy.entry('long', strategy.long) if numberOfLows == 'Four' if truetime and prevLow > 0 and lowestLow < prevLow and prevLow < prevLow2 and prevLow2 < prevLow3 and prevLow3 < prevLow4 strategy.entry('long', strategy.long) if truetime and prevHigh > 0 and highestHigh > prevHigh strategy.close('long') if prevLow != lowestLow prevLow4 := prevLow3 prevLow3 := prevLow2 prevLow2 := prevLow prevLow := lowestLow prevHigh := highestHigh plot(lowestLow, color=color.green, linewidth=1, title="Lowest Low Line") plot(highestHigh, color=color.green, linewidth=1, title="Highest High Line")