Esta estratégia é um sistema de negociação de tendência baseado na teoria do fractal de preços, que identifica estruturas de fractal de mercado e combina condições de gatilho de ponto fixo com configurações de take-profit para negociação automatizada.
A lógica básica inclui as seguintes etapas-chave: 1. Identificação de fractal: identifica os fractals superior e inferior comparando três velas consecutivas. Um fractal inferior se forma quando o baixo do velar do meio é menor que os adjacentes; um fractal superior se forma quando o alto do velar do meio é maior que os adjacentes. 2. Condições de entrada: Os conjuntos compram o preço de gatilho 107 pips acima dos fractals inferiores identificados; os conjuntos vendem o preço de gatilho 107 pips abaixo dos fractals superiores identificados. 3. Configuração de lucro: coloca níveis de lucro de 107 pips do preço de entrada. 4. Gestão de posição: rastreia continuamente as últimas posições fractais e atualiza os preços de entrada de acordo.
Esta estratégia combina teoria fractal com conceitos de ruptura de momento para construir um sistema de negociação completo. Seus pontos fortes estão na objetividade e alta automação, embora enfrente alguns desafios de adaptabilidade ao mercado. Através de medidas de otimização como ajuste de parâmetros dinâmicos e reconhecimento do ambiente de mercado, a estabilidade e lucratividade da estratégia podem ser ainda melhoradas.
/*backtest start: 2019-12-23 08:00:00 end: 2024-12-09 08:00:00 period: 1d basePeriod: 1d exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=5 strategy("Fractal Buy/Sell Strategy with 107 Pips Target", overlay=true) // 输入参数 trigger_pips = input.int(107, title="Entry Distance (Pips)") // 入场点距离底分型或顶分型的距离 take_profit_pips = input.int(107, title="Take Profit (Pips)") // 止盈点数 pip_value = syminfo.mintick * 10 // 点值(每点等于多少价格单位) // 计算分型 is_bottom_fractal = low[1] < low[2] and low[1] < low[0] // 判断是否为底分型 is_top_fractal = high[1] > high[2] and high[1] > high[0] // 判断是否为顶分型 // 存储分型位置 var float last_bottom_fractal = na var float last_top_fractal = na // 更新分型值 if is_bottom_fractal last_bottom_fractal := low[1] if is_top_fractal last_top_fractal := high[1] // 计算开盘价格 bottom_trigger_price = na(last_bottom_fractal) ? na : last_bottom_fractal + trigger_pips * pip_value top_trigger_price = na(last_top_fractal) ? na : last_top_fractal - trigger_pips * pip_value // 交易逻辑:底分型多单和顶分型空单 if not na(last_bottom_fractal) if close <= bottom_trigger_price strategy.entry("Buy", strategy.long) strategy.exit("Take Profit", from_entry="Buy", limit=bottom_trigger_price + take_profit_pips * pip_value) if not na(last_top_fractal) if close >= top_trigger_price strategy.entry("Sell", strategy.short) strategy.exit("Take Profit", from_entry="Sell", limit=top_trigger_price - take_profit_pips * pip_value) // 绘制分型和触发价格 plotshape(series=is_bottom_fractal, style=shape.triangleup, location=location.belowbar, color=color.green, title="Bottom Fractal") plotshape(series=is_top_fractal, style=shape.triangledown, location=location.abovebar, color=color.red, title="Top Fractal") plot(bottom_trigger_price, title="Buy Trigger", color=color.green, linewidth=1) plot(top_trigger_price, title="Sell Trigger", color=color.red, linewidth=1)