Buys when the Awesome Oscillator turns up from a trough and the close crosses above the 8-period EMA. Each trade has a 0.75% stop and a 1.5% target, so a winner pays twice what a loser costs. It only goes long and was run on charts from 1 minute to daily.
Best run of 34. USD/JPY, 30 min, spread 1, from run pf:2026-09-25-USDJPY-30m.tsv:1.
| Period | Up to 2026-09-25 |
| Instrument | USD/JPY, 30 minutes |
| Spread | 1 points |
| Contracts | 1 |
| Starting capital | 1,000,000 |
| Costs | Spread only. Commissions and overnight financing are not included. |
| Bars | Up to 200,000 bars, fewer where the instrument has less history |
| Last tested | 2026-09-25 |
| positionSize Contracts per trade | 1 |
| signalPeriod EMA that price must cross | 8 |
| aoFastPeriod Fast average of the Awesome Oscillator | 5 |
| aoSlowPeriod Slow average of the Awesome Oscillator | 34 |
| stopLossPct Protective stop, percent of entry price | 0.75 |
| takeProfitPct Profit target, percent of entry price | 1.5 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| USD/JPYBest run | 30 min | 1.19 | 769 | 37.45 | 816,190 JPY | -165,200 |
| USD/JPY | 1 hour | n/a | 999 | 36.54 | 822,560 JPY | -247,990 |
| USD/JPY | 10 min | n/a | 362 | 37.29 | 394,450 JPY | -233,320 |
| USD/JPY | 4 hours | n/a | 481 | 35.97 | 297,270 JPY | -147,760 |
| USD/JPY | 15 min | n/a | 416 | 35.58 | 270,530 JPY | -228,150 |
| USD/JPY | 5 min | n/a | 193 | 36.27 | 176,290 JPY | -162,780 |
| EUR/USD | 4 hours | n/a | 611 | 36.50 | 50,978 USD | -24,314 |
| EUR/USD | 3 min | n/a | 67 | 44.78 | 19,313 USD | -7,010 |
| Nikkei 225 | 3 min | n/a | 662 | 36.10 | 17,055 USD | -12,348 |
| Nikkei 225 | 5 min | n/a | 872 | 35.78 | 16,575 USD | -14,062 |
| EUR/USD | Daily | n/a | 293 | 35.49 | 15,763 USD | -12,410 |
| Dow Jones | 5 min | n/a | 334 | 36.53 | 9,166 EUR | -5,676 |
| Nasdaq 100 | 5 min | n/a | 608 | 36.51 | 7,732 EUR | -4,672 |
| DAX 40 | 10 min | n/a | 795 | 36.10 | 6,506 EUR | -4,452 |
| Nasdaq 100 | 15 min | n/a | 1,416 | 35.17 | 6,227 EUR | -5,258 |
| DAX 40 | 5 min | n/a | 461 | 36.88 | 5,877 EUR | -4,462 |
| Dow Jones | 1 min | n/a | 76 | 38.16 | 3,669 EUR | -2,875 |
| Nasdaq 100 | 1 min | n/a | 177 | 36.72 | 3,355 EUR | -3,215 |
| FTSE 100 | 5 min | n/a | 291 | 38.83 | 2,821 EUR | -1,037 |
| S&P 500 | 30 min | n/a | 1,465 | 36.72 | 2,068 EUR | -764 |
| S&P 500 | 15 min | n/a | 1,059 | 35.03 | 1,949 EUR | -827 |
| FTSE 100 | 3 min | n/a | 193 | 38.34 | 1,911 EUR | -953 |
| Gold | 5 min | n/a | 658 | 37.69 | 1,721 EUR | -1,234 |
| FTSE 100 | 4 hours | n/a | 513 | 35.28 | 1,720 EUR | -1,483 |
| Brent Crude | Daily | n/a | 105 | 40.00 | 1,642 EUR | -724 |
| S&P 500 | 1 hour | n/a | 1,231 | 35.01 | 1,593 EUR | -697 |
| S&P 500 | 5 min | n/a | 368 | 37.23 | 1,532 EUR | -1,106 |
| FTSE 100 | 10 min | n/a | 575 | 34.78 | 1,381 EUR | -1,357 |
| Gold | 10 min | n/a | 872 | 36.12 | 1,369 EUR | -793 |
| S&P 500 | 10 min | n/a | 744 | 35.22 | 1,230 EUR | -933 |
| Gold | 15 min | n/a | 1,026 | 35.28 | 1,018 EUR | -965 |
| S&P 500 | 2 min | n/a | 159 | 37.74 | 936 EUR | -800 |
| US Crude Oil | Daily | n/a | 267 | 33.71 | 862 EUR | -485 |
| Gold | 4 hours | n/a | 532 | 35.53 | 862 EUR | -336 |
Charts
Top 10 of 34 runs. The full list is in the table above.
The code
// ============================================================ // Awesome Oscillator EMA Cross // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 30 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade signalPeriod = 8 // EMA that price must cross aoFastPeriod = 5 // fast average of the Awesome Oscillator aoSlowPeriod = 34 // slow average of the Awesome Oscillator stopLossPct = 0.75 // protective stop, percent of entry price takeProfitPct = 1.5 // profit target, percent of entry price // --- Indicators --- signalMA = ExponentialAverage[signalPeriod](close) aoValue = Average[aoFastPeriod](MedianPrice) - Average[aoSlowPeriod](MedianPrice)
12 more lines: the entry and exit rules.
Setup
Questions
Yes, it is a complete automated system with fixed stop and target. The code was rewritten after these tests and has not been compile-checked, so run it through ProBacktest first.
USD/JPY carried the results, with JPY 816,190 net over 769 trades on 30 minutes. EUR/USD, Nikkei 225, the stock indices, Gold and oil were also positive but with far smaller totals.
At the default positionSize of 1 the best run had a max drawdown of JPY 165,200. Check your own contract value and size down if that swing is too large for your account.
It gave the best recorded result. The 1 hour USD/JPY sweep made a similar JPY 822,560 but with a deeper drawdown of JPY 247,990.
Related
The ProRealAlgos community gets the full rules, the complete code and the automated portfolio.