Het systeem koopt wanneer de true range van de bar boven 25 punten staat en TEMA(4) boven EMA(4) ligt, maar alleen in halve maanden die de seizoenstabel toestaat. Het stapt uit wanneer Repulse(3) onder -0.3 zakt of een stop van 5% wordt geraakt. Weekends worden overgeslagen en het gaat nooit short.
Beste run van 20. Gold, 10 min, spread 0.6, uit run pf:2026-09-24-GOLD-10m.tsv:1.
| Periode | Tot 2026-09-24 |
| Instrument | Gold, 10 minuten |
| Spread | 0.6 punten |
| Contracten | 1 |
| Startkapitaal | 1,000,000 |
| Kosten | Alleen spread. Commissies en overnight financiering zijn niet meegerekend. |
| Bars | Tot 200,000 bars, minder waar het instrument minder historie heeft |
| Laatst getest | 2026-09-24 |
| positionSize Contracten per trade | 1 |
| halfMonthDay Laatste dag die als eerste helft van de maand telt | 15 |
| minTrueRange Minimale true range van de bar in prijspunten | 25 |
| temaPeriod TEMA-lengte | 4 |
| emaPeriod EMA-lengte vergeleken met de TEMA | 4 |
| repulsePeriod Repulse-lengte voor de uitstap | 3 |
| repulseExitLevel Uitstappen wanneer Repulse hieronder zakt | -0.3 |
| stopLossPct Beschermende stop als procent van de instapprijs | 5 |
| janFirstHalf Seizoensgewicht, januari dag 1 tot 15 (0 blokkeert instappen) | 3 |
| janSecondHalf Seizoensgewicht, januari vanaf dag 16 (0 blokkeert instappen) | 0 |
| febFirstHalf Seizoensgewicht, februari dag 1 tot 15 (0 blokkeert instappen) | 3 |
| febSecondHalf Seizoensgewicht, februari vanaf dag 16 (0 blokkeert instappen) | 3 |
| marFirstHalf Seizoensgewicht, maart dag 1 tot 15 (0 blokkeert instappen) | 3 |
| marSecondHalf Seizoensgewicht, maart vanaf dag 16 (0 blokkeert instappen) | 2 |
| aprFirstHalf Seizoensgewicht, april dag 1 tot 15 (0 blokkeert instappen) | 3 |
| aprSecondHalf Seizoensgewicht, april vanaf dag 16 (0 blokkeert instappen) | 3 |
| mayFirstHalf Seizoensgewicht, mei dag 1 tot 15 (0 blokkeert instappen) | 1 |
| maySecondHalf Seizoensgewicht, mei vanaf dag 16 (0 blokkeert instappen) | 1 |
| junFirstHalf Seizoensgewicht, juni dag 1 tot 15 (0 blokkeert instappen) | 1 |
| junSecondHalf Seizoensgewicht, juni vanaf dag 16 (0 blokkeert instappen) | 2 |
| julFirstHalf Seizoensgewicht, juli dag 1 tot 15 (0 blokkeert instappen) | 3 |
| julSecondHalf Seizoensgewicht, juli vanaf dag 16 (0 blokkeert instappen) | 2 |
| augFirstHalf Seizoensgewicht, augustus dag 1 tot 15 (0 blokkeert instappen) | 2 |
| augSecondHalf Seizoensgewicht, augustus vanaf dag 16 (0 blokkeert instappen) | 3 |
| sepFirstHalf Seizoensgewicht, september dag 1 tot 15 (0 blokkeert instappen) | 3 |
| sepSecondHalf Seizoensgewicht, september vanaf dag 16 (0 blokkeert instappen) | 0 |
| octFirstHalf Seizoensgewicht, oktober dag 1 tot 15 (0 blokkeert instappen) | 3 |
| octSecondHalf Seizoensgewicht, oktober vanaf dag 16 (0 blokkeert instappen) | 2 |
| novFirstHalf Seizoensgewicht, november dag 1 tot 15 (0 blokkeert instappen) | 1 |
| novSecondHalf Seizoensgewicht, november vanaf dag 16 (0 blokkeert instappen) | 3 |
| decFirstHalf Seizoensgewicht, december dag 1 tot 15 (0 blokkeert instappen) | 3 |
| decSecondHalf Seizoensgewicht, december vanaf dag 16 (0 blokkeert instappen) | 2 |
Elke run
| Markt | Tijdframe | PF | Trades | Winst % | Netto | Max DD |
|---|---|---|---|---|---|---|
| GoudBeste run | 10 min | 1.57 | 195 | 48.72 | 905 EUR | -177 |
| DAX 40 | 4 uur | 1.18 | 2,445 | 38.73 | 17,921 EUR | -3,328 |
| DAX 40 | Dagelijks | 1.18 | 1,043 | 39.02 | 11,563 EUR | -2,819 |
| Zilver | Dagelijks | n/a | 752 | 36.84 | 26,593 USD | -9,081 |
| Dow Jones | Dagelijks | n/a | 1,194 | 38.11 | 16,900 EUR | -8,908 |
| Dow Jones | 15 min | n/a | 3,884 | 37.33 | 13,052 EUR | -9,190 |
| Dow Jones | 4 uur | n/a | 810 | 40.49 | 10,700 EUR | -7,832 |
| Dow Jones | 30 min | n/a | 2,920 | 36.95 | 10,020 EUR | -8,556 |
| Dow Jones | 10 min | n/a | 3,031 | 37.55 | 9,588 EUR | -7,551 |
| Nasdaq 100 | 4 uur | n/a | 1,818 | 38.17 | 9,565 EUR | -3,611 |
| Dow Jones | 1 uur | n/a | 2,039 | 36.64 | 9,229 EUR | -8,470 |
| Nasdaq 100 | Dagelijks | n/a | 824 | 40.29 | 7,322 EUR | -5,082 |
| Brent-olie | Dagelijks | n/a | 595 | 40.34 | 6,984 EUR | -4,208 |
| Amerikaanse ruwe olie | 4 uur | n/a | 2,297 | 37.44 | 6,353 EUR | -5,078 |
| S&P 500 | Dagelijks | n/a | 467 | 41.33 | 1,648 EUR | -966 |
| Goud | 30 min | n/a | 322 | 43.17 | 765 EUR | -441 |
| Goud | 5 min | n/a | 141 | 45.39 | 683 EUR | -245 |
| FTSE 100 | 3 min | n/a | 186 | 41.94 | 600 EUR | -551 |
| Goud | 15 min | n/a | 229 | 43.67 | 582 EUR | -297 |
| Goud | 1 min | n/a | 18 | 50.00 | 140 EUR | -119 |
Grafieken
Top 10 van 20 runs. De volledige lijst staat in de tabel hierboven.
Boven 1.0 werd geld verdiend, onder 1.0 werd geld verloren.
De code
// ============================================================ // Seasonal Momentum Long // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 10 minutes // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade halfMonthDay = 15 // last day of the first half of the month minTrueRange = 25 // bar true range must exceed this, in price points temaPeriod = 4 // TEMA length emaPeriod = 4 // EMA length compared with the TEMA repulsePeriod = 3 // Repulse length for the exit repulseExitLevel = -0.3 // exit when Repulse falls below this stopLossPct = 5 // protective stop, percent of entry price // Seasonal weight per half month. Zero blocks new entries in that half. janFirstHalf = 3 janSecondHalf = 0 febFirstHalf = 3 febSecondHalf = 3 marFirstHalf = 3 marSecondHalf = 2 aprFirstHalf = 3 aprSecondHalf = 3 mayFirstHalf = 1 maySecondHalf = 1 junFirstHalf = 1 junSecondHalf = 2 julFirstHalf = 3 julSecondHalf = 2 augFirstHalf = 2 augSecondHalf = 3 sepFirstHalf = 3 sepSecondHalf = 0 octFirstHalf = 3 octSecondHalf = 2 novFirstHalf = 1 novSecondHalf = 3 decFirstHalf = 3 decSecondHalf = 2 ONCE seasonWeight = 0 // --- Indicators --- // CurrentMonth is the calendar month the system runs in, Day is the bar's day. IF CurrentMonth = 1 THEN IF Day <= halfMonthDay THEN seasonWeight = janFirstHalf ELSE seasonWeight = janSecondHalf ENDIF ELSIF CurrentMonth = 2 THEN IF Day <= halfMonthDay THEN seasonWeight = febFirstHalf ELSE seasonWeight = febSecondHalf ENDIF ELSIF CurrentMonth = 3 THEN IF Day <= halfMonthDay THEN seasonWeight = marFirstHalf ELSE seasonWeight = marSecondHalf ENDIF ELSIF CurrentMonth = 4 THEN IF Day <= halfMonthDay THEN seasonWeight = aprFirstHalf ELSE seasonWeight = aprSecondHalf ENDIF ELSIF CurrentMonth = 5 THEN IF Day <= halfMonthDay THEN seasonWeight = mayFirstHalf ELSE seasonWeight = maySecondHalf ENDIF ELSIF CurrentMonth = 6 THEN IF Day <= halfMonthDay THEN seasonWeight = junFirstHalf ELSE seasonWeight = junSecondHalf ENDIF ELSIF CurrentMonth = 7 THEN IF Day <= halfMonthDay THEN seasonWeight = julFirstHalf ELSE seasonWeight = julSecondHalf ENDIF ELSIF CurrentMonth = 8 THEN IF Day <= halfMonthDay THEN seasonWeight = augFirstHalf ELSE seasonWeight = augSecondHalf ENDIF ELSIF CurrentMonth = 9 THEN IF Day <= halfMonthDay THEN seasonWeight = sepFirstHalf ELSE seasonWeight = sepSecondHalf ENDIF ELSIF CurrentMonth = 10 THEN IF Day <= halfMonthDay THEN seasonWeight = octFirstHalf ELSE seasonWeight = octSecondHalf ENDIF ELSIF CurrentMonth = 11 THEN IF Day <= halfMonthDay THEN seasonWeight = novFirstHalf ELSE seasonWeight = novSecondHalf ENDIF ELSIF CurrentMonth = 12 THEN IF Day <= halfMonthDay THEN seasonWeight = decFirstHalf ELSE seasonWeight = decSecondHalf ENDIF ENDIF weekday = DayOfWeek = 1 OR DayOfWeek = 2 OR DayOfWeek = 3 OR DayOfWeek = 4 OR DayOfWeek = 5 wideBar = TR(close) > minTrueRange temaAboveEma = TEMA[temaPeriod](close) > ExponentialAverage[emaPeriod](close) repulseValue = Repulse[repulsePeriod](close)
Nog 18 regels: de instap- en uitstapregels.
Opzet
Met 734,000 bars beschikbaar op Gold 10 minuten steeg de nettowinst naar EUR 1,495.5 vanaf EUR 904.9 in de standaardrun, en de oudere data alleen voegde EUR 590.6 toe.
| Beschikbare bars | 734,000 |
| Netto, standaard run van 200,000 bars | 904.90 EUR |
| Netto, lange run | 1,495.50 EUR |
| Netto op alleen de oudere data | 590.60 EUR |
Vragen
Ja, het is een alleen-long ProOrder-systeem met een procentuele stop. De code is herschreven maar niet op compileerfouten gecontroleerd, en de statistieken komen uit de vorige versie.
Negen instrumenten van 1 minuut tot Dagelijks. Gold 10 minuten had de beste profit factor (1.57), en DAX 40 op 4 uur maakte het meest in euro's, EUR 17,920.50 over 2,445 trades met een profit factor van 1.18.
Bij 1 contract had Gold 10 minuten een max drawdown van EUR 176.50. DAX 40 4 uur kwam op EUR 3,327.60, dus de grootte hangt sterk af van welke markt je kiest.
Sommige halve maanden, zoals de tweede helft van januari en september, hebben gewicht nul en blokkeren nieuwe longs. Het idee is om delen van het jaar te vermijden die het historisch slechter deden voor long-instappen.
Gerelateerd
De ProRealAlgos community krijgt de volledige regels, de complete code en de geautomatiseerde portefeuille.