Diese Strategie ist ein trendfolgende Handelssystem, das auf der Preisfraktaltheorie basiert, die Marktfraktalstrukturen identifiziert und feststehende Triggerbedingungen mit Take-Profit-Einstellungen für den automatisierten Handel kombiniert.
Die Kernlogik umfasst folgende Schlüsselschritte: 1. Fraktalidentifikation: Identifiziert oberste und unterste Fraktale, indem drei aufeinanderfolgende Kerzen verglichen werden. Ein unteres Fraktal entsteht, wenn das niedrigste Niveau der mittleren Kerze niedriger ist als das der benachbarten; ein oberes Fraktal entsteht, wenn das höchste Niveau der mittleren Kerze höher ist als das der benachbarten. 2. Einstiegsbedingungen: Sätze kaufen Triggerpreis 107 Pips über den identifizierten unteren Fraktalen; Sätze verkaufen Triggerpreis 107 Pips unter den identifizierten oberen Fraktalen. 3. Take-Profit-Setup: Platziert Take-Profit-Levels von 107 Pips vom Einstiegspreis. 4. Positionsmanagement: Verfolgt kontinuierlich die neuesten Fraktalpositionen und aktualisiert entsprechend die Einstiegspreise.
Diese Strategie kombiniert Fraktaltheorie mit Momentum-Breakout-Konzepten, um ein komplettes Handelssystem aufzubauen. Ihre Stärken liegen in Objektivität und hoher Automatisierung, obwohl sie einige Herausforderungen bei der Marktanpassungsfähigkeit hat. Durch Optimierungsmaßnahmen wie dynamische Parameteranpassung und Anerkennung des Marktumfeldes können die Stabilität und Rentabilität der Strategie weiter verbessert werden. Im Live-Handel sollten Anleger die Parameter basierend auf ihrer Risikotoleranz und Kapitalgröße anpassen.
/*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)