TIMEFRAME (PS)
TIMEFRAME in ProScreener stelt het tijdframe in dat door alle volgende coderegels wordt gebruikt, waardoor screens mogelijk worden die dagelijkse, wekelijkse en intraday voorwaarden combineren.
Syntaxis
TIMEFRAME(time_period)Parameters
| Naam | Type | Beschrijving |
|---|---|---|
time_period | sleutelwoord | Het tijdframe dat op de volgende regels wordt toegepast, bijvoorbeeld 15 minutes, 1 hour, daily, weekly, of monthly. |
Hoe het werkt
Een ProScreener evalueert normaal elke expressie op het tijdframe dat in de screenerinstellingen is gekozen. Een TIMEFRAME aanroep wijzigt die context, zodat prijsconstanten en indicatoraanroepen op de volgende regels op het nieuwe tijdframe worden berekend. De omschakeling blijft gelden tot een volgende TIMEFRAME call verschijnt, waardoor één screener voorwaarden uit meerdere tijdframes kan combineren.
Het standaardpatroon berekent de voorwaarden van elk tijdframe in booleanvariabelen en combineert die variabelen vervolgens in het laatste SCREENER aanroep. Variabelen houden de waarden die ze toegewezen kregen, ongeacht welk tijdframe actief was op het moment van toewijzing, dus een weekcrossover-vlag kan vrij worden gecombineerd met een dagelijkse oversold-vlag.
Het keyword wordt hetzelfde gespeld als de multitijdframe-instructie die in geautomatiseerde strategieën wordt gebruikt, maar het zijn twee aparte functies. De strategievariant, behandeld bij TIMEFRAME (PB/PO), bepaalt hoe een lopend systeem data sampelt en ondersteunt de UPDATEONCLOSE en DEFAULT modifiers. De ProScreener-variant is eenvoudiger: die verlegt alleen de datacontext van de volgende coderegels. Code kan niet zonder controle tussen de twee omgevingen worden gekopieerd.
Voorbeelden
Voorbeeld 1, Wekelijkse MACD-crossover met dagelijkse oversold Stochastic (ProScreener)
// Compute MACD on the weekly timeframe
TIMEFRAME(weekly)
weeklyMACD = MACD[12,26,9](Close)
bullishCrossover = weeklyMACD crosses over weeklyMACD[1]
// Compute the Stochastic on the daily timeframe
TIMEFRAME(daily)
dailySto = Stochastic[14,3](Close)
oversold = dailySto < 30
// Combine both timeframes in the screener condition
SCREENER[bullishCrossover AND oversold]Twee indicatoren worden op verschillende tijdframes geëvalueerd en samengevoegd in één voorwaarde. Dit is het canonieke voorbeeld uit de officiële referentie.
Voorbeeld 2, Wekelijks trendfilter met een dagelijkse pullback (ProScreener)
// Weekly uptrend qualifier
TIMEFRAME(weekly)
weeklyTrend = close > Average[30](close)
// Daily pullback that holds above the 20-bar average
TIMEFRAME(daily)
dailyMA = Average[20](close)
pullback = low <= dailyMA AND close > dailyMA
SCREENER[weeklyTrend AND pullback](close AS "Close")Alleen instrumenten in een wekelijkse opwaartse trend die terugvielen naar hun daggemiddelde over 20 bars en daar weer boven sloten, worden teruggegeven.
Voorbeeld 3, Intraday volumepiek binnen een dagelijkse opwaartse trend (ProScreener)
// Volume spike on the 15-minute timeframe
TIMEFRAME(15 minutes)
volSpike = Volume > 3 * Average[20](Volume)
// Daily trend qualifier
TIMEFRAME(daily)
uptrend = close > Average[50](close)
SCREENER[volSpike AND uptrend](close AS "Last price")Een kortdurende uitbarsting van activiteit wordt alleen gemeld wanneer het hogere tijdframe een opwaartse trend bevestigt, een gangbare manier om ruis in intraday scans te beperken.
Veelvoorkomende fouten en valkuilen
- De omschakeling blijft gelden. Elke regel na een
TIMEFRAMEaanroep werkt op dat tijdframe tot de volgende aanroep. Een voorwaarde die onder een weekblok staat zonder terug te schakelen wordt stilzwijgend op weekdata berekend, een veelvoorkomende oorzaak van screens die te weinig of verkeerde resultaten geven. - Niet uitwisselbaar met de strategievariant.
UPDATEONCLOSEenDEFAULThoren bijTIMEFRAME (PB/PO)en worden niet geaccepteerd in ProScreener. Strategiecode in een screener plakken compileert niet of gedraagt zich anders. - Beperkte historie op kleine tijdframes. ProScreener houdt per tijdframe een beperkte hoeveelheid historie vast. Diepe lookbacks zoals
Average[200]op een minuuttijdframe kan de beschikbare data overschrijden en voorkomen dat de voorwaarde zoals verwacht wordt geëvalueerd. - Bereken voordat je combineert. Sla het resultaat van elk tijdframe op in een variabele en combineer de variabelen in de uiteindelijke
SCREENERaanroep. Een indicator direct aanroepen in de screenervoorwaarde gebruikt het tijdframe dat als laatste actief was, wat makkelijk verkeerd gaat.
Gerelateerde instructies
TIMEFRAME (PB/PO), de ProBacktest- en ProOrder-variant van deze instructie.SCREENER, definieert de filtervoorwaarde en de resultaatkolom van een screener.EQUITYFRAME, schakelt een screener over naar data van een ander instrument.MACD, moving average convergence divergence-indicator.Stochastic, de %K stochastische oscillator.Average, voortschrijdend gemiddelde over een gekozen periode.EstimatedVolume, het verwachte eindvolume van de huidige bar in ProScreener.RSI, relative strength index-oscillator.