This system tracks the change in candle body size summed over 84 bars. It buys when that sum falls below minus 6 pips and keeps falling, and sells short when it rises above 81 pips and keeps rising. After the first trade it is always in the market.
Best run of 47. S&P 500, Daily, spread 1, from run pf:2026-09-24-USA500-D.tsv:7.
| Period | Up to 2026-09-25 |
| Instrument | S&P 500, Daily |
| 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 |
| bodyPeriod Bars summed | 84 |
| upperFilter Bullish threshold in pips | 81 |
| lowerFilter Bearish threshold in pips (negative side) | 6 |
| signalDirection 1 as tested, -1 flips the signals | 1 |
Every run
| Market | Timeframe | PF | Trades | Win % | Net | Max DD |
|---|---|---|---|---|---|---|
| S&P 500Best run | Daily | 2.05 | 168 | 58.93 | 7,391 EUR | -1,461 |
| DAX 40 | Daily | 1.37 | 1,456 | 60.10 | 43,937 EUR | -3,725 |
| FTSE 100 | Daily | 1.33 | 943 | 58.54 | 15,876 EUR | -3,480 |
| USD/JPY | Daily | n/a | 2,019 | 58.54 | 1,522,030 JPY | -979,600 |
| Silver | 1 hour | n/a | 544 | 55.70 | 1,157,199 USD | -1,136,375 |
| USD/JPY | 30 min | n/a | 164 | 53.05 | 544,940 JPY | -290,420 |
| USD/JPY | 10 min | n/a | 68 | 44.12 | 423,420 JPY | -259,370 |
| USD/JPY | 15 min | n/a | 104 | 47.12 | 313,510 JPY | -278,280 |
| EUR/USD | 2 min | n/a | 116 | 44.83 | 161,269 USD | -152,814 |
| USD/JPY | 2 min | n/a | 8 | 62.50 | 124,490 JPY | -110,110 |
| Nikkei 225 | Daily | n/a | 2,590 | 57.61 | 50,177 USD | -24,805 |
| Silver | 3 min | n/a | 436 | 52.75 | 36,747 USD | -20,634 |
| Silver | 15 min | n/a | 526 | 54.56 | 34,973 USD | -23,794 |
| Silver | 30 min | n/a | 564 | 58.69 | 34,752 USD | -27,173 |
| Nasdaq 100 | Daily | n/a | 791 | 57.27 | 18,454 EUR | -9,098 |
| Dow Jones | 10 min | n/a | 4,824 | 55.24 | 16,310 EUR | -9,369 |
| Brent Crude | 1 hour | n/a | 1,914 | 57.42 | 14,583 EUR | -7,508 |
| Nasdaq 100 | 1 hour | n/a | 2,693 | 55.18 | 13,942 EUR | -6,913 |
| DAX 40 | 15 min | n/a | 1,428 | 53.99 | 11,016 EUR | -5,159 |
| Brent Crude | 10 min | n/a | 1,146 | 53.49 | 10,492 EUR | -7,652 |
| DAX 40 | 1 hour | n/a | 2,661 | 55.32 | 10,194 EUR | -7,160 |
| DAX 40 | 5 min | n/a | 442 | 55.20 | 9,947 EUR | -3,313 |
| Nasdaq 100 | 10 min | n/a | 1,802 | 54.77 | 9,508 EUR | -6,907 |
| DAX 40 | 10 min | n/a | 804 | 52.49 | 8,923 EUR | -4,512 |
| FTSE 100 | 1 hour | n/a | 316 | 57.91 | 8,874 EUR | -2,903 |
| DAX 40 | 30 min | n/a | 2,130 | 53.66 | 8,670 EUR | -8,477 |
| FTSE 100 | 4 hours | n/a | 582 | 53.26 | 7,313 EUR | -2,977 |
| S&P 500 | 4 hours | n/a | 92 | 57.61 | 6,967 EUR | -1,506 |
| Nasdaq 100 | 5 min | n/a | 1,038 | 50.29 | 6,630 EUR | -6,593 |
| S&P 500 | 1 hour | n/a | 46 | 50.00 | 5,804 EUR | -1,392 |
| S&P 500 | 30 min | n/a | 22 | 59.09 | 5,379 EUR | -1,378 |
| Gold | Daily | n/a | 68 | 54.41 | 5,203 EUR | -1,629 |
| FTSE 100 | 30 min | n/a | 114 | 55.26 | 5,174 EUR | -2,735 |
| Gold | 4 hours | n/a | 52 | 63.46 | 5,008 EUR | -1,016 |
| Nasdaq 100 | 2 min | n/a | 324 | 54.32 | 4,970 EUR | -4,896 |
| Gold | 1 hour | n/a | 30 | 60.00 | 4,444 EUR | -1,193 |
| S&P 500 | 15 min | n/a | 24 | 54.17 | 4,124 EUR | -1,318 |
| Gold | 30 min | n/a | 24 | 45.83 | 3,175 EUR | -1,709 |
| S&P 500 | 10 min | n/a | 16 | 50.00 | 2,842 EUR | -1,335 |
| Gold | 15 min | n/a | 14 | 42.86 | 2,712 EUR | -1,793 |
| Gold | 10 min | n/a | 20 | 45.00 | 2,690 EUR | -1,635 |
| Gold | 5 min | n/a | 10 | 40.00 | 2,516 EUR | -1,606 |
| FTSE 100 | 10 min | n/a | 16 | 50.00 | 2,496 EUR | -1,463 |
| S&P 500 | 5 min | n/a | 6 | 66.67 | 2,229 EUR | -1,347 |
| Gold | 3 min | n/a | 10 | 80.00 | 2,008 EUR | -1,461 |
| FTSE 100 | 5 min | n/a | 8 | 50.00 | 1,962 EUR | -1,516 |
| Gold | 2 min | n/a | 2 | 50.00 | 1,958 EUR | -1,650 |
Charts
Above 1.0 made money, below 1.0 lost money.
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.
// ============================================================ // Candle Body Sum Daily // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long & short // Timeframe tested: Daily // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade bodyPeriod = 84 // bars summed for the body change upperFilter = 81 // body sum must exceed this many pips to count as bullish lowerFilter = 6 // body sum must fall below minus this many pips to count as bearish signalDirection = 1 // 1 as tested, -1 flips every signal // --- Indicators --- // Sum of the bar-to-bar change in candle body size. bodySize = close - open bodyChange = bodySize - bodySize[1] bodySum = Summation[bodyPeriod](bodyChange) // Latest bullish and bearish readings, kept until the next one. IF bodySum > upperFilter * PipSize THEN greenSum = bodySum ENDIF IF bodySum < (0 - lowerFilter) * PipSize THEN redSum = bodySum ENDIF
21 more lines: the entry and exit rules.
Read this first
Questions
Yes. It is a stop and reverse system, so once live it always holds 1 contract long or short.
All tested rows were positive. DAX 40 Daily reached a profit factor of 1.37 over 1456 trades, and FTSE 100 Daily 1.33.
On S&P 500 Daily the worst drawdown was 1,461.08 EUR, with an average trade of 43.99 EUR.
The 84 bar body sum moves slowly on daily data, and the daily charts had the most trades and the recorded profit factors.
Related
Copy trading on US indices is available to ProRealAlgos members as spots open.