Strategy vault / Mean reversion
Oscillator Index Transformation Strategy
The Oscillator Index Transformation strategy utilizes the crossovers between Bressert's 3-10 oscillator index and its 16-day simple moving average to generate trading signals. It is suitable for intraday and…

Overview
The Oscillator Index Transformation strategy utilizes the crossovers between Bressert's 3-10 oscillator index and its 16-day simple moving average to generate trading signals. It is suitable for intraday and overnight trading.
Strategy Logic
The strategy is based on Bressert's 3-10 oscillator index, which is the difference between 3-day and 10-day exponential moving averages. It goes long when the fast line (3-10 oscillator) crosses above the slow line (16-day SMA), and goes short when the fast line crosses below the slow line.
Specifically, the strategy first calculates the 3-day EMA, 10-day EMA and their difference as the oscillator index. It then calculates the 16-day simple moving average of the oscillator index as the signal line. It goes long when the oscillator index crosses above the signal line and goes short when it crosses below. Reversal trades are allowed.
Advantages Analysis
- Uses the classic Bressert oscillator index which is quite effective
- Forms clear trading signals with fast and slow line crossovers
- Allows reversal trades to adapt to different market regimes
- Can be used in both intraday and overnight trading
Risk Analysis
- Bressert oscillator performance is unstable with profit/loss fluctuations
- Fast and slow line crossovers may generate false signals
- Reversal trades have higher risks and should be used cautiously
- Requires stop loss for intraday and position sizing for overnight trades
Optimization Directions
- Optimize parameters by adjusting moving average periods
- Add filters using other indicators or price action
- Add stop loss strategy to limit single trade loss size
- Optimize capital management to reduce overall drawdown impact
Conclusion
The Oscillator Index Transformation strategy is a short-term trading strategy generating signals from 3-10 oscillator and signal line crossovers. It is simple and practical for both intraday and overnight usage, but has inherent PnL fluctuations and false signals risks. Additional filters, stop loss and position sizing are required to refine the strategy. With proper optimization it can achieve consistent alpha.
Parameters
| Name | Default | What it controls |
|---|---|---|
| v_input_1 | 3 | Length1 |
| v_input_2 | 10 | Length2 |
| v_input_3 | 16 | Length3 |
| v_input_4 | false | Trade reverse |
Source Pine Script
/*backtest
start: 2022-12-15 00:00:00
end: 2023-12-21 00:00:00
period: 1d
basePeriod: 1h
exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}]
*/
//@version=2
////////////////////////////////////////////////////////////
// Copyright by HPotter v1.0 27/03/2017
// TradeStation does not allow the user to make a Multi Data Chart with
// a Tick Bar Chart and any other type a chart. This indicator allows the
// user to plot a daily 3-10 Oscillator on a Tick Bar Chart or any intraday interval.
// Walter Bressert's 3-10 Oscillator is a detrending oscillator derived
// from subtracting a 10 day moving average from a 3 day moving average.
// The second plot is an 16 day simple moving average of the 3-10 Oscillator.
// The 16 period moving average is the slow line and the 3/10 oscillator is
// the fast line.
// For more information on the 3-10 Oscillator see Walter Bressert's book
// "The Power of Oscillator/Cycle Combinations"
//
// You can change long to short in the Input Settings
// Please, use it only for learning or paper trading. Do not for real trading.
////////////////////////////////////////////////////////////
strategy(title="D_Three Ten Osc", shorttitle="D_Three Ten Osc")
Length1 = input(3, minval=1)
Length2 = input(10, minval=1)
Length3 = input(16, minval=1)
reverse = input(false, title="Trade reverse")
hline(0, color=green, linestyle=line)
xPrice = request.security(syminfo.tickerid,"D", hl2)
xfastMA = ema(xPrice, Length1)
xslowMA = ema(xPrice, Length2)
xMACD = xfastMA - xslowMA
xSignal = sma(xMACD, Length3)
pos = iff(xSignal > xMACD, -1,
iff(xSignal < xMACD, 1, nz(pos[1], 0)))
possig = iff(reverse and pos == 1, -1,
iff(reverse and pos == -1, 1, pos))
if (possig == 1)
strategy.entry("Long", strategy.long)
if (possig == -1)
strategy.entry("Short", strategy.short)
barcolor(possig == -1 ? red: possig == 1 ? green : blue )
plot(request.security(syminfo.tickerid, "D", xMACD), color=blue, title="D_Three Ten Osc")
plot(request.security(syminfo.tickerid, "D", xSignal), color=red, title="D_Three Ave")Published by ChaoZhang on the FMZ strategy square · last modified 2023-12-22. 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/Oscillator-Index-Transformation-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
- Advanced 15 Minute Chart Trading Signal StrategyPine Script · Mean reversion · 3h
- Advanced Momentum EMA Trend Following with RSI Overbought Oversold Trading StrategyPine Script · Mean reversion · 1d
- Advanced Quantitative Trading Strategy Combining RSI Divergence and Moving AveragesPine Script · Mean reversion · 1h
- Advanced Quantitative Trend Following and Cloud Reversal Composite Trading StrategyPine Script · Mean reversion · 1d
- BONK Multi Factor Trading StrategyPine Script · Mean reversion · 1d
- Bidirectional Moving Average Reversion Trading StrategyPine Script · Mean reversion · 1h