TIMEFRAME (PS)
TIMEFRAME dans ProScreener définit l'unité de temps utilisée par toutes les lignes de code suivantes, permettant des screens qui combinent des conditions journalières, hebdomadaires et intraday.
Syntaxe
TIMEFRAME(time_period)Paramètres
| Nom | Type | Description |
|---|---|---|
time_period | mot-clé | L'unité de temps appliquée aux lignes suivantes, par exemple 15 minutes, 1 hour, daily, weekly, ou monthly. |
Comment ça marche
Un ProScreener évalue normalement chaque expression sur l'unité de temps sélectionnée dans les réglages du screener. Un TIMEFRAME appel modifie ce contexte : les constantes de prix et les appels d'indicateurs des lignes suivantes sont calculés sur la nouvelle unité de temps. Le changement reste actif jusqu'à un autre TIMEFRAME appel apparaît, ce qui permet à un seul screener de mêler des conditions issues de plusieurs unités de temps.
Le schéma standard calcule les conditions de chaque unité de temps dans des variables booléennes, puis combine ces variables dans le dernier SCREENER appel. Les variables conservent les valeurs qui leur ont été affectées, quelle que soit l'unité de temps active au moment de l'affectation, un indicateur de croisement hebdomadaire peut donc être combiné librement avec un indicateur de survente journalier.
Le mot-clé s'écrit comme l'instruction multi-unités de temps utilisée dans les stratégies automatisées, mais ce sont deux fonctionnalités distinctes. La variante pour stratégies, traitée dans TIMEFRAME (PB/PO), contrôle la façon dont un système en cours d'exécution échantillonne les données et prend en charge le UPDATEONCLOSE et DEFAULT modificateurs. La variante ProScreener est plus simple : elle ne fait que rediriger le contexte de données des lignes de code suivantes. Le code ne peut pas être copié d'un environnement à l'autre sans relecture.
Exemples
Exemple 1, Croisement MACD hebdomadaire avec Stochastique journalier en survente (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]Deux indicateurs sont évalués sur des unités de temps différentes et fusionnés en une seule condition. C'est l'exemple canonique de la référence officielle.
Exemple 2, Filtre de tendance hebdomadaire avec un pullback journalier (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")Seuls les instruments en tendance haussière hebdomadaire qui ont reflué jusqu'à leur moyenne journalière sur 20 bars et ont clôturé au-dessus sont renvoyés.
Exemple 3, Pic de volume intraday au sein d'une tendance haussière journalière (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")Un sursaut d'activité de court terme n'est signalé que lorsque l'unité de temps supérieure confirme une tendance haussière, une manière courante de réduire le bruit dans les scans intraday.
Erreurs et pièges courants
- Le basculement persiste. Chaque ligne après un
TIMEFRAMEappel s'exécute sur cette unité de temps jusqu'à l'appel suivant. Une condition écrite sous un bloc hebdomadaire sans revenir en arrière est calculée silencieusement sur des données hebdomadaires, cause fréquente de screens qui renvoient trop peu de résultats ou de mauvais résultats. - Non interchangeable avec la variante stratégie.
UPDATEONCLOSEetDEFAULTappartiennent àTIMEFRAME (PB/PO)et ne sont pas acceptés dans ProScreener. Coller du code de stratégie dans un screener échoue à la compilation ou se comporte différemment. - Historique limité sur les petites unités de temps. ProScreener conserve un historique limité par unité de temps. Des profondeurs d'historique importantes comme
Average[200]sur une unité de temps en minutes peut dépasser les données disponibles et empêcher la condition de s'évaluer comme prévu. - Calculer avant de combiner. Stockez le résultat de chaque unité de temps dans une variable et combinez les variables dans le
SCREENERappel. Référencer un indicateur directement dans la condition du screener utilise l'unité de temps active en dernier, ce qui conduit facilement à une erreur.
Instructions liées
TIMEFRAME (PB/PO), la variante ProBacktest et ProOrder de cette instruction.SCREENER, définit la condition de filtre et la colonne de résultat d'un screener.EQUITYFRAME, bascule un screener sur les données d'un autre titre.MACD, indicateur moving average convergence divergence.Stochastic, l'oscillateur stochastique %K.Average, moyenne mobile sur une période choisie.EstimatedVolume, volume final projeté du bar courant dans ProScreener.RSI, oscillateur relative strength index.