0bps

Strategy vault / Trend following

Advanced Dynamic Fibonacci Retracement Trend Quantitative Trading Strategy

This strategy is an advanced trend-following system based on Fibonacci retracement principles. It identifies potential support and resistance zones by dynamically calculating key Fibonacci retracement levels (23.6%…

Author
ChaoZhang
Complexity
Starter · 56 lines
Parameters
0
Backtest bar
1h · intraday
Tested on
BTC/USDT · futures

IMG

Overview

This strategy is an advanced trend-following system based on Fibonacci retracement principles. It identifies potential support and resistance zones by dynamically calculating key Fibonacci retracement levels (23.6%, 38.2%, 50%, 61.8%, 78.6%). The system uses a 100-period lookback window to determine the highest and lowest points, which serve as the basis for calculating retracement levels. The strategy incorporates precise entry signals and risk management mechanisms, triggering trading signals at key Fibonacci level breakouts.

Strategy Principles

The core logic is built on the theory that prices tend to reverse near key Fibonacci retracement levels during major trends. Specifically:

  1. The system continuously calculates highs and lows through a rolling window, ensuring dynamic updates of retracement levels
  2. Long signals are triggered when price breaks above the 61.8% retracement level, indicating trend continuation
  3. Bearish signals are identified when price breaks below the 38.2% retracement level
  4. Take-profit is set at 100% retracement (highest point), stop-loss at 0% retracement (lowest point)
  5. The strategy uses plot functions to mark key levels on the chart for visual analysis

Strategy Advantages

  1. Strong Dynamic Adaptability - Strategy automatically adjusts retracement levels based on market conditions
  2. Comprehensive Risk Management - Strict risk control through preset stop-loss and take-profit levels
  3. Clear Objective Signals - Entry and exit signals based on objective price breakouts, reducing subjective judgment
  4. High Visualization - Clear display of key price levels on charts for analysis and verification
  5. Parameter Adjustability - Lookback period and Fibonacci levels can be flexibly adjusted as needed

Risk Analysis

  1. Sideways Market Risk - May generate false signals during consolidation phases
  2. Lag Risk - Calculations based on historical data may lead to delayed signals
  3. Gap Risk - Price gaps may cause stop-loss failures
  4. Parameter Sensitivity - Different lookback period settings affect strategy performance Recommended risk control measures:
  • Confirm market environment with trend indicators
  • Adjust stop-loss positions appropriately
  • Implement trailing stops
  • Regular parameter optimization

Strategy Optimization Directions

  1. Add trend filters to trade only in clear trends
  2. Incorporate volume confirmation signals
  3. Optimize stop-loss/take-profit mechanisms, such as implementing trailing stops
  4. Add market volatility filtering conditions
  5. Develop adaptive lookback period adjustment mechanisms

Summary

This is a systematic trading strategy built on classic technical analysis theory. Its programmatic implementation provides objectivity and repeatability. The core advantage lies in combining Fibonacci theory with strict risk control, suitable for trending markets. Through continuous optimization and improvement, the strategy has the potential to maintain stable performance across various market conditions.

Source Pine Script

/*backtest
start: 2024-11-11 00:00:00
end: 2024-12-10 08:00:00
period: 1h
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/

//@version=5
strategy("Fibonacci Retracement Strategy", overlay=true)

// Inputs
lookback_period = input.int(100, title="Lookback Period")
level_1 = input.float(0.236, title="Fibonacci Level 1")
level_2 = input.float(0.382, title="Fibonacci Level 2")
level_3 = input.float(0.5, title="Fibonacci Level 3")
level_4 = input.float(0.618, title="Fibonacci Level 4")
level_5 = input.float(0.786, title="Fibonacci Level 5")

// Calculate highest high and lowest low over the lookback period
high_level = ta.highest(high, lookback_period)
low_level = ta.lowest(low, lookback_period)

// Calculate Fibonacci retracement levels
fib_236 = low_level + (high_level - low_level) * level_1
fib_382 = low_level + (high_level - low_level) * level_2
fib_50 = low_level + (high_level - low_level) * level_3
fib_618 = low_level + (high_level - low_level) * level_4
fib_786 = low_level + (high_level - low_level) * level_5

// Plot Fibonacci levels on the chart
plot(fib_236, color=color.green, title="Fib 23.6%")
plot(fib_382, color=color.blue, title="Fib 38.2%")
plot(fib_50, color=color.orange, title="Fib 50%")
plot(fib_618, color=color.red, title="Fib 61.8%")
plot(fib_786, color=color.purple, title="Fib 78.6%")

// Entry and Exit Conditions
buy_signal = ta.crossover(close, fib_618)
sell_signal = ta.crossunder(close, fib_382)

// Strategy Orders
if buy_signal
    strategy.entry("Buy", strategy.long)

// Exit based on stop-loss and take-profit conditions
take_profit = high_level // Exit at the highest Fibonacci level (100%)
stop_loss = low_level    // Exit at the lowest Fibonacci level (0%)

strategy.exit("Sell", from_entry="Buy", limit=take_profit, stop=stop_loss)

// Visualization of Signals
plotshape(series=buy_signal, title="Buy Signal", location=location.belowbar, color=color.green, style=shape.labelup, text="BUY")
plotshape(series=sell_signal, title="Sell Signal", location=location.abovebar, color=color.red, style=shape.labeldown, text="SELL")

Published by ChaoZhang on the FMZ strategy square · last modified 2024-12-12. Collected in the Quant Trading Vault. Unvalidated research: re-test with your own data and costs before trusting it.

Build this with AgenKit

A spec is not a trading system. Paste this into your coding agent and AgenKit runs a specialist team — architecture, test-first build, risk gates, review — with paper trading on by default.

in Claude Code, Cursor, Codex & 4 more
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Advanced-Dynamic-Fibonacci-Retracement-Trend-Quantitative-Trading-Strategy.md
  1. npx agenkit install engineering-kit in your project
  2. Paste the command into your agent and approve each phase
  3. Get tests, backtest, risk controls and a paper-trading switch

Understand it first

Before you run this, read the lesson behind the idea and how to backtest it honestly. Specs like this one are the survivors of an unknown number of trials; deflate their results accordingly.

Related specs

esc

Try , , or .

↑↓ move↵ open