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
The code
Every file in the library uses the same header, the same section order and the same variable names. The numbers above were produced by the original version before the rewrite, and the rewrite has not yet been compiled in ProRealTime.
// ============================================================ // 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.
Read this first
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.