Probleme instruction Time en daily ?
Forums › ProRealTime forum Français › Support ProOrder › Probleme instruction Time en daily ?
- This topic has 6 replies, 2 voices, and was last updated 1 year ago by zilliq.
-
-
08/28/2023 at 8:45 AM #219913
Bonjour à tous,
Avez vous connaissance d’un problème avec l’instruction TIME lorsque l’on fait un backtest en daily ?
En effet, pour l’exemple, si je lance le code suivant sur Dax 1 heure il fonctionne parfaitement, mais si je suis en jour, il me renvoie zero. Je pense que cela a à voir avec le mode tick qui ne veut pas fonctionner
Mais avez vous également ce problème ?
Merci d’avance et bonne journée
Zilliq
12345678910111213141516171819202122232425262728293031// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 090000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 171500// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiéenoEntryBeforeTime = 090000timeEnterBefore = time >= noEntryBeforeTime// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiéenoEntryAfterTime = 171500timeEnterAfter = time < noEntryAfterTime// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Conditions pour ouvrir une position acheteusec1 = (rsi[14] crosses over 50)IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THENBUY 1 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteusec2 = (rsi[14] crosses under 50)IF c2 THENSELL AT MARKETENDIF08/28/2023 at 10:05 AM #21993308/28/2023 at 10:09 AM #21993408/28/2023 at 11:49 AM #219938Je ne comprends pas la question venant de ta part 🙂
On ne peut pas tester des conditions intraday dans un timeframe daily. C’est comme si sur un TF 5-minutes, on voulait tester des conditions à la seconde près (chose possible en utilisant le multi timeframe toutefois, mais c’est pas le sujet).
Comme tu le sais, le code est lu une seule fois à la clôture de bougie et l’ordre envoyé à l’Open suivant. Donc à la clôture de bougie, on ne peut pas tester “timeEnterBefore AND timeEnterAfter”, puisque ces conditions se sont déroulés dans la bougie et donc dans le passé.
08/28/2023 at 1:50 PM #219943Merci Nicolas,
Effectivement je ne me souvenais plus que malheureusement les conditions n’étaient testées qu’en fin de journée en daily
C’est quand même dommage que cela ne soit pas testé en journée, à moins de passer en UT inférieure, mais avec des indicateurs sur une UT daily
Passe une très bonne fin de journée
08/29/2023 at 1:57 PM #219995Voici le code de la stratégie qui utilise le timeframe daily pour ta condition sur le RSI avec prise de position dans la bougie (et donc sans l’information définitive que le RSI aura bien croisé à la fin de journée).
Tu peux tester cette stratégie dans tous les timeframes qu’il te plaira 🙂 Tu testeras si le RSI[14] a croisé le niveau 50, jusqu’à 86400 fois avec le timeframe 1 seconde.
1234567891011121314151617181920212223242526272829303132333435// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 090000// Annule tous les ordres en attente et ferme toutes les positions à l'heure "FLATAFTER"DEFPARAM FLATAFTER = 171500timeframe(daily)irsi = rsi[14]timeframe(default)// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position avant l'heure spécifiéenoEntryBeforeTime = 090000timeEnterBefore = time >= noEntryBeforeTime// Empêche le système de placer des ordres pour entrer sur le marché ou augmenter la taille d'une position après l'heure spécifiéenoEntryAfterTime = 171500timeEnterAfter = time < noEntryAfterTime// Empêche le système de placer de nouveaux ordres sur les jours de la semaine spécifiésdaysForbiddenEntry = OpenDayOfWeek = 6 OR OpenDayOfWeek = 0// Conditions pour ouvrir une position acheteusec1 = (irsi crosses over 50)IF c1 AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THENBUY 1 SHARES AT MARKETENDIF// Conditions pour fermer une position acheteusec2 = (irsi crosses under 50)IF c2 THENSELL AT MARKETENDIF08/29/2023 at 4:46 PM #220018 -
AuthorPosts
Find exclusive trading pro-tools on