Impulse Momentum verbindet Momentum über 13 Bars mit einem Impuls-Score über 3 Bars und kauft, wenn dieses Signal 0.7 und seinen eigenen 8-Bar-Durchschnitt übersteigt. Das Volumen muss 1.2-mal normal sein, der Bar muss 1.8-mal die zuletzt durchschnittliche Range betragen, und die 9 SMA muss über der 21 SMA liegen. Der Ausstieg erfolgt über einen 1%-Stop, wenn das Signal nachlässt oder wenn der Kurs unter der 9 SMA schließt.
Bester Durchlauf von 10. Nasdaq 100, 1 Stunde, Spread 3, aus Durchlauf pf:2026-09-24-NAS100-1h.tsv:2.
| Zeitraum | Bis 2026-09-25 |
| Instrument | Nasdaq 100, 1 Stunde |
| Spread | 3 Punkte |
| Kontrakte | 1 |
| Startkapital | 1,000,000 |
| Kosten | Nur Spread. Kommissionen und Overnight-Finanzierung sind nicht enthalten. |
| Bars | Bis zu 200,000 Bars, weniger wo das Instrument weniger Historie hat |
| Zuletzt getestet | 2026-09-25 |
| positionSize Kontrakte pro Trade | 1 |
| momentumPeriod Länge des Kurs-Momentum und Normalisierungsfenster | 13 |
| volumePeriod Länge des durchschnittlichen Volumens | 21 |
| fastPeriod Länge der schnellen SMA | 9 |
| slowPeriod Länge der langsamen SMA | 21 |
| impulseBars Bars im kurzen Impulsfenster | 3 |
| powerPeriod Länge der durchschnittlichen Bar-Range für die Impulsstärke | 5 |
| momentumWeight Gewicht des normalisierten Momentum im Signal | 2 |
| impulseWeight Gewicht des normalisierten Impulses im Signal | 3 |
| signalPeriod SMA-Länge der Signallinie | 8 |
| signalLevel Das Signal muss darüber liegen, um zu kaufen | 0.7 |
| minVolumeRatio Das Volumen muss dieses Vielfache seines 21-Bar-Durchschnitts betragen | 1.2 |
| minImpulsePower Die Bar-Range muss dieses Vielfache ihres 5-Bar-Durchschnitts betragen | 1.8 |
| stopLossPct Schutz-Stop, Prozent des Einstiegskurses | 1 |
Jeder Durchlauf
| Markt | Zeiteinheit | PF | Trades | Treffer % | Netto | Max DD |
|---|---|---|---|---|---|---|
| Nasdaq 100Bester Durchlauf | 1 Stunde | 1.44 | 481 | 48.65 | 4,958 EUR | -1,182 |
| USD/JPY | 1 Stunde | n/a | 839 | 42.55 | 144,730 JPY | -56,450 |
| USD/JPY | 10 Min. | n/a | 975 | 40.21 | 46,450 JPY | -40,770 |
| Silber | 3 Min. | n/a | 773 | 36.74 | 3,975 USD | -2,757 |
| Nikkei 225 | Täglich | n/a | 22 | 45.45 | 3,294 USD | -1,928 |
| Silber | 2 Min. | n/a | 812 | 33.25 | 2,654 USD | -2,639 |
| Nasdaq 100 | 4 Stunden | n/a | 282 | 53.19 | 2,145 EUR | -1,341 |
| DAX 40 | 4 Stunden | n/a | 215 | 49.30 | 1,078 EUR | -821 |
| Gold | 4 Stunden | n/a | 345 | 41.74 | 321 EUR | -185 |
| Gold | Täglich | n/a | 43 | 39.53 | 164 EUR | -156 |
Charts
Der Code
// ============================================================ // Impulse Momentum // ProRealAlgos Strategy Library | prorealalgos.com // Type: Momentum // Direction: Long only // Timeframe tested: 1 hour // ============================================================ // --- Settings --- DEFPARAM CumulateOrders = false // --- Parameters --- positionSize = 1 // contracts per trade momentumPeriod = 13 // price momentum length and normalising window volumePeriod = 21 // average volume length fastPeriod = 9 // fast SMA length slowPeriod = 21 // slow SMA length impulseBars = 3 // bars in the short impulse window powerPeriod = 5 // average bar range length for impulse power momentumWeight = 2 // weight of normalised momentum in the signal impulseWeight = 3 // weight of normalised impulse in the signal signalPeriod = 8 // SMA of the signal line signalLevel = 0.7 // signal must be above this to buy minVolumeRatio = 1.2 // volume must be this multiple of its average minImpulsePower = 1.8 // bar range must be this multiple of its average stopLossPct = 1 // protective stop, percent of entry price ONCE inTrade = 0 // --- Indicators --- fastMA = Average[fastPeriod](close) slowMA = Average[slowPeriod](close) priceMomentum = (close - close[momentumPeriod]) / close[momentumPeriod] * 100 // Directional movement: only count up moves that beat down moves. upMove = high - high[1] IF upMove <= 0 THEN upMove = 0 ENDIF downMove = low[1] - low IF downMove <= 0 THEN downMove = 0 ENDIF upMoveDominant = 0 IF upMove > downMove AND upMove > 0 THEN upMoveDominant = 1 ENDIF volumeRatio = Volume / Average[volumePeriod](Volume) impulseUp = (close - close[impulseBars]) / (Highest[impulseBars](high) - Lowest[impulseBars](low)) * 100 impulsePower = (high - low) / Average[powerPeriod](high - low) // Scale momentum and impulse to 0..1 over the recent window, then blend them. normMomentum = (priceMomentum - Lowest[momentumPeriod](priceMomentum)) / (Highest[momentumPeriod](priceMomentum) - Lowest[momentumPeriod](priceMomentum)) normImpulse = (impulseUp - Lowest[momentumPeriod](impulseUp)) / (Highest[momentumPeriod](impulseUp) - Lowest[momentumPeriod](impulseUp)) signalLine = (normMomentum * momentumWeight + normImpulse * impulseWeight) / (momentumWeight + impulseWeight) signalMA = Average[signalPeriod](signalLine)
19 weitere Zeilen: die Einstiegs- und Ausstiegsregeln.
Setup
Fragen
Ja. Alle fünf Einstiegsfilter, der Signalausstieg und der 1%-Stop sind codiert. Der neu geschriebene Code wurde noch nicht auf Kompilierfehler geprüft.
Der hervorgehobene Nasdaq 100 1-Stunden-Durchlauf erzielte 4,958.30 EUR über 481 Trades. Alle 9 anderen Durchläufe waren positiv, darunter USD/JPY 1 Stunde mit 144,730 JPY und DAX 40 4 Stunden mit 1,077.90 EUR.
Bei 1 Kontrakt mit einem Spread von 3 Punkten hatte der Nasdaq 100 1-Stunden-Durchlauf einen max Drawdown von 1,181.50 EUR. Jeder Trade ist durch einen 1%-Stop geschützt.
Die Volumen- und Range-Filter brauchen genügend Aktivität pro Bar, um aussagekräftig zu sein. Auf dem Nasdaq 100 lieferte der 1-Stunden-Chart den besten Profit Factor, 1.44.
Verwandt
Copy Trading auf US-Indizes ist für ProRealAlgos Mitglieder verfügbar, sobald Plätze frei werden.