This is an intraday trading strategy that utilizes the AO oscillator and EMA crossovers to generate trading signals. The main idea is to enter trades when the AO crosses its zero line concurrently with the fast EMA crossing over the medium-term EMA line.
The strategy mainly relies on two indicators for entries and exits:
AO Oscillator: It measures the difference between 5-period and 34-period HL2 averages to gauge current trend direction. Positive AO represents an upward trend while negative AO signals a downward trend.
EMA Crossover: The strategy uses a 3-period EMA for short-term trend and a 20-period EMA for medium-term trend direction. A golden cross with the 3EMA moving up through the 20EMA generates buy signals while a death cross with the 3EMA crossing down through the 20EMA produces sell signals.
Trades are entered only when the AO crosses its zero line concurrently with an EMA crossover. This avoids wrong signals when the AO is oscillating. Exits happen after the London session closes by flattening all positions.
The main advantages of this strategy are:
Some risks to note include:
Risks can be mitigated via stop losses, adaptive parameters tuned to varying cycles etc.
Main optimization directions are around parameter tuning:
Parameter tweaks and additional filters can enhance the strategy’s robustness and efficiency.
In summary, this intraday trading tactic combines the AO trend gauge with EMA crossovers to craft a simple yet practical approach. It has clear signals that are easy to implement but lacks adaptive parameters. Further testing and refinements can improve its stability and alignment with varying market landscapes. Overall it presents retail intraday traders with an excellent choice.
/*backtest start: 2022-12-18 00:00:00 end: 2023-12-24 00:00:00 period: 1d basePeriod: 1h exchanges: [{"eid":"Futures_Binance","currency":"BTC_USDT"}] */ //@version=4 //@author SoftKill21 strategy(title="MA cross + AO", shorttitle="MA_AO") ao = sma(hl2,5) - sma(hl2,34) len = input(3, minval=1, title="Length") src = input(close, title="Source") out = ema(src, len) len1 = input(20, minval=1, title="Length") src1 = input(close, title="Source") out1 = sma(src1, len1) timeinrange(res, sess) => time(res, sess) != 0 londopen = timeinrange(timeframe.period, "0300-1100") nyopen = timeinrange(timeframe.period, "0800-1600") longC = crossover(out,out1) and ao>0 and londopen shortC = crossunder(out,out1) and ao<0 and londopen invert = input(title="Reverse position ?", type=input.bool, defval=false) if(invert==false) strategy.entry("LONG",1,when=longC) strategy.entry("SHORT",0,when=shortC) if(invert==true) strategy.entry("short",0,when=longC) strategy.entry("long",1,when=shortC) strategy.close_all(when= not (londopen))