Fibonacci Retracement Quantitative Trading Strategy
This strategy is designed based on the Fibonacci retracement principle. It enters long or short positions when prices rise or fall and approach key Fibonacci retracement levels. The strategy utilizes Fibonacci theory…

Overview
This strategy is designed based on the Fibonacci retracement principle. It enters long or short positions when prices rise or fall and approach key Fibonacci retracement levels. The strategy utilizes Fibonacci theory to identify critical reversal points in prices and appropriately enters positions ahead of trend reversals, aiming for excess returns over the broader market.
Principles
The strategy first calculates the highest and lowest prices over the past 50 days to determine price movement range. It then uses three key Fibonacci ratios - 0.236, 0.382 and 0.618 to calculate corresponding retracement levels. It goes long when prices rise and approach the 0.618 level (golden ratio), and closes long positions when prices fall to 0.236 level.
The strategy leverages the Fibonacci retracement theory, which observes that in a Fibonacci sequence, any number is approximately equal to the ratio of the preceding two numbers, and this ratio is close to 0.618. The theory suggests that prices tend to reverse when retracing to 0.382 or 0.618 levels after a rise or fall. This strategy hence utilizes this pattern to determine entry and exit signals.
Advantages
This is a typical breakout trading strategy. Its biggest edge is the ability to identify key reversal points beforehand and appropriately enter positions before trend reversals. Additionally, Fibonacci theory is widely applied in technical analysis, giving this strategy academic merits.
Risks
The main risk is prices continuing to trend after penetrating Fibonacci retracement levels, thus amplifying losses. Moreover, empirical trading strategies cannot completely avoid losses due to misjudged signals.
To mitigate risks, stop losses can be set to exit positions if losses exceed certain threshold. Fibonacci levels can also be dynamically adjusted based on changing market conditions to generate more reliable signals.
Enhancement Areas
The strategy can be optimized in the following ways:
Dynamically adjust Fibonacci levels based on varying market stages, allowing for more flexibility.
Add other indicators for signal filtering, e.g. volume, moving averages etc, to make signals more reliable.
Optimize stop loss mechanisms with trailing stops, zone stops etc to better control risks.
Test over longer time frames to verify stability; adjust holding period to maximize returns.
Conclusion
This strategy identifies price reversal points based on Fibonacci theory, belonging to the breakout trading category. It has academic merits in seizing turning point opportunities ahead of the market, but also bears certain probability of losses. Continual optimizations around adaptive parameters, stop losses, extra signal filtering etc can enhance its profitability and stability.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | 50 | Fibonacci cycle length |
| v_input_2 | 0.236 | Fibonacci levels1 |
| v_input_3 | 0.382 | Fibonacci levels2 |
| v_input_4 | 0.618 | Fibonacci levels3 |
Source Pine Script
/*backtest
start: 2023-10-21 00:00:00
end: 2023-11-20 00:00:00
period: 1h
basePeriod: 15m
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=5
strategy("Fibonacci retracement trading strategy", overlay=true, initial_capital=10000)
// Parameters
length = input(50, title="Fibonacci cycle length")
fib1 = input(0.236, title="Fibonacci levels1")
fib2 = input(0.382, title="Fibonacci levels2")
fib3 = input(0.618, title="Fibonacci levels3")
// Calculate Fibonacci levels
highLevel = ta.highest(high, length)
lowLevel = ta.lowest(low, length)
range1 = highLevel - lowLevel
fibLevel1 = highLevel - range1 * fib1
fibLevel2 = highLevel - range1 * fib2
fibLevel3 = highLevel - range1 * fib3
// condition
longCondition = ta.crossover(close, fibLevel3)
shortCondition = ta.crossunder(close, fibLevel1)
// Place Order
strategy.entry("Buy", strategy.long, when=longCondition)
strategy.close("Buy", when=shortCondition)
// Chart Marker
plot(fibLevel1, title="Fib 0.236", color=color.red)
plot(fibLevel2, title="Fib 0.382", color=color.orange)
plot(fibLevel3, title="Fib 0.618", color=color.green)
Published by ChaoZhang on the FMZ strategy square · last modified 2023-11-21. 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.
/agenkit build a production-grade trading bot with a backtest engine, risk controls and paper trading by default from strategies/Fibonacci-Retracement-Quantitative-Trading-Strategy.md- npx agenkit install engineering-kit in your project
- Paste the command into your agent and approve each phase
- 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
- Breakthrough of Daily High low Price Based on Fibonacci LevelsPine Script · Breakout · 10m
- Moving Average Crossover and Upper Rail Breakthrough Impulse StrategyPine Script · Breakout · 1m
- Multi factor Intelligent Trading StrategyPine Script · Breakout · 1d
- Quantitative Trading Strategy Based on Fibonacci 07 Level Trend BreakthroughPine Script · Breakout · 1h
- Y Profit Maximizer StrategyPine Script · Breakout · 1d
- 24 Hour Volume Price Fibonacci Retracement MA Cross Trading StrategyPine Script · Breakout · 1d