Esta estratégia calcula os preços mais altos e mais baixos das barras N recentes para definir condições de dupla ruptura combinadas com a linha média móvel para implementar uma estratégia de negociação de baixa compra e alta venda.
A estratégia baseia-se principalmente nos seguintes princípios:
Ao calcular os extremos das barras N recentes, ele julga se o mercado está extremamente sobrevendido ou sobrecomprado.
A estratégia apresenta as seguintes vantagens:
Através da confirmação dupla, a qualidade do sinal da estratégia é relativamente alta e o espaço para otimização de parâmetros é grande, o que é adequado para diferentes ambientes de mercado.
A estratégia apresenta também alguns riscos:
Estes riscos podem ser reduzidos ajustando os ciclos de computação, otimizando as combinações de parâmetros e outros métodos.
A estratégia pode ser essencialmente otimizada nas seguintes direcções:
Através da otimização de parâmetros, otimização de indicadores, otimização de controlo de riscos e outros meios, o fator de lucro da estratégia pode ser muito melhorado.
Em geral, esta é uma estratégia de breakout muito prática. Calculando extremos de linhas K para determinar o estado de sobrevenda e sobrecompra, usando linha média móvel para determinar a direção da tendência, definindo condições de filtragem dupla para filtrar falsos sinais, implementa estratégias de baixa compra e alta venda de alta qualidade. Ao otimizar ciclos de computação, adicionando outros indicadores e outros meios, o efeito da estratégia pode ser ainda melhorado. A estratégia é adequada para os iniciantes aprenderem e os comerciantes profissionais otimizarem e usarem.
/*backtest start: 2023-02-22 00:00:00 end: 2024-02-28 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 strategy("Larry Connors por RON", overlay=true, default_qty_type=strategy.percent_of_equity, default_qty_value=100) value1 = input(7, title="Quantity of day low") value2 = input(7, title="Quantity of day high") entry = lowest(close[1], value1) exit = highest(close[1], value2) lengthMMA = input(200, title="Length of SMA", minval=1) mma = sma(close, lengthMMA) // Calcular el mínimo de los precios bajos de las últimas 'value1' velas minLow = lowest(low, value1) // Calcular el máximo de los precios altos de las últimas 'value2' velas maxHigh = highest(high, value2) // Test Period testStartYear = input(2009, "Backtest Start Year") testStartMonth = input(1, "Backtest Start Month") testStartDay = input(2, "Backtest Start Day") testPeriodStart = timestamp(testStartYear, testStartMonth, testStartDay, 0, 0) testStopYear = input(2020, "Backtest Stop Year") testStopMonth = input(12, "Backtest Stop Month") testStopDay = input(30, "Backtest Stop Day") testPeriodStop = timestamp(testStopYear, testStopMonth, testStopDay, 0, 0) testPeriod() => true if testPeriod() // Condiciones de entrada conditionMet = (close > mma) and (close < entry) and (low == minLow) strategy.entry("Buy", strategy.long, when=conditionMet) if conditionMet label.new(bar_index, entry, text="↑", style=label.style_arrowup, color=color.green, size=size.small, yloc=yloc.belowbar) // Condiciones de salida conditionExit = close > exit or close > maxHigh strategy.close("Buy", when=conditionExit)