Cette stratégie est un système de négociation basé sur la théorie des fractals de prix, qui identifie les structures fractales du marché et combine des conditions de déclenchement à point fixe avec des paramètres de prise de profit pour le trading automatisé.
La logique de base comprend les étapes clés suivantes: Identification fractale: Identifie les fractales supérieurs et inférieurs en comparant trois chandeliers consécutifs. Un fractale inférieur se forme lorsque le bas du chandelier du milieu est inférieur à ceux adjacents; un fractale supérieur se forme lorsque le haut du chandelier du milieu est supérieur à ceux adjacents. Conditions d'entrée: les ensembles achètent un prix déclencheur de 107 points au-dessus des fractales inférieurs identifiés; les ensembles vendent un prix déclencheur de 107 points au-dessous des fractales supérieurs identifiés. 3. Configuration des bénéfices: place les niveaux de bénéfices de 107 points par rapport au prix d'entrée. 4. Gestion des positions: suit en permanence les dernières positions fractales et met à jour les prix de déclenchement d'entrée en conséquence.
Cette stratégie combine la théorie fractale avec les concepts de rupture de momentum pour construire un système de trading complet. Ses atouts résident dans l'objectivité et une grande automatisation, bien qu'elle soit confrontée à certains défis d'adaptabilité du marché.
/*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)