Ordre valable sur plusieurs periodes
Forums › ProRealTime forum Français › Support ProOrder › Ordre valable sur plusieurs periodes
- This topic has 10 replies, 3 voices, and was last updated 6 years ago by Man1012.
-
-
09/01/2018 at 3:19 PM #79516
Bonjour,
J’ai une question qui j’imagine est simple à résoudre. Proorder ne peut pas calculer ma commande ci-jointe d’ordre valable sur plusieurs périodes, parce que c’est une boucle infinie…
Je ne sais pas trop pourquoi?
Merci pour votre aide!
123456789101112if time = 092500 thenMaxbox = highest[17](High)endifif close > maxbox THENprice = close - 5periode = barindexendifwhile BARINDEX - periode < 10 doBUY 2 CONTRACT AT price limitwend09/03/2018 at 2:31 PM #79652En effet, puisque ta variable “periode” ne sera jamais renseigné. Dans ton test à la ligne 5, tu cherches à savoir si Close est plus haut que le plus haut, hors ça n’est pas possible car il devient le plus haut par définition. Il faut donc refaire cette condition avec la valeur du plus haut de la barre précédente, celle-ci étant figé dans le temps, elle ne changera plus et la condition pourra alors être vrai:
1234if close > maxbox[1 ] THEN......09/03/2018 at 5:03 PM #7966609/03/2018 at 5:03 PM #79667Je crois que le test à la ligne 5 se passe bien car la valeur la plus élevée le détermine à 9 h 25 et à la ligne 5 il vérifie si un breakout se produit.
09/04/2018 at 7:18 AM #79691Bien vu Roberto! Dans ce cas, utilise plutôt un bloc conditionnel pour éviter la boucle While / Wend:
123if BARINDEX - periode < 10 thenBUY 2 CONTRACT AT price limitendifDans que la condition de la ligne 1 sera testée vrai, on replacera un nouvel ordre LIMIT à chaque nouvelle barre (puisqu’il expirera après seulement 1 période).
09/05/2018 at 7:13 PM #79830Merci pour vos retours!
La stratégie est effectivement de prendre une position à l’achat si le plus haut atteint entre 8h00 et 9h25 est dépassé dans la journée. Stratégie utilisée sur le Dax en UT 5 minutes, limitée à un ordre par jour, ordre valable sur la journée uniquement.
La stratégie fonctionne bien, 80% de taux de succès (en rajoutant quelques conditions de croisement de moyennes mobiles et tendance à la hausse).
J’essaie d’optimiser la stratégie en rajoutant un price limit pour optimiser le prix d’achat, après que les conditions aient été réalisées. Et j’essaierai aussi de tester un achat stop au dessus du niveau de prix atteint au moment de la réalisation des conditions, pour s’assurer de la confirmation du break out.
Pour l’achat limite, j’utilise le code suivant (simplifié), avec optimisation des variables sur le niveau de prix limite et le nombre de périodes pendant lequel l’ordre doit rester valable:
1234567891011121314151617181920212223242526272829303132333435// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// 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 = 092500timeEnterBefore = 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 = 213000timeEnterAfter = 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 acheteuseif time = 092500 thenMaxbox = highest[17](High)endif// Conditions pour limiter à un ordre par jourJour = barindex - intradaybarindexif tradeindex(1) < Jour thenachat = 1elsif tradeindex(1) >= Jour thenachat = 0endifif close > maxbox and timeEnterBefore AND timeEnterAfter and not daysForbiddenEntry and achat = 1 THENprice = close - nperiode = barindexachat = 2endifIf achat = 2 and barindex - periode < m thenBUY 2 CONTRACT AT price limitendifMais je ne suis pas sûr que le code soit bon. En tout cas, la stratégie n’est pas optimisée et les résultats du backtest un peu bizarres.
Qu’en pensez vous?
Merci!
09/06/2018 at 7:22 AM #7984909/06/2018 at 12:52 PM #79878Oui j’optimise les variables n et m. L’optimisation donne un n à 0, donc prix = close, quelle que soit la période considérée (jusqu’à 50 périodes après réalisations des conditions), et des résultats toujours inférieurs à la stratégie sans price limit (76% de taux de succès vs 81%), ce qui est bien sûr possible. Voir attachment.
mais penses tu que le code est ok?
09/06/2018 at 12:55 PM #7987909/06/2018 at 6:33 PM #79896Je ne vois rien de choquant dans le code. n=0 signifierai que tu rentres au marché et donc plus besoin d’ordre conditionnel LIMIT dans ce cas. Mais je ne pense pas qu’en réel cela marcherait aussi “bien”. En effet, l’ordre ne serait pas placé car soumis à l’écart minimum et donc rejeté.
L’image est trop petite, il n’est pas utile de cliquer sur “insert into content”, l’image sera attaché en dessous de ton post.
1 user thanked author for this post.
09/06/2018 at 11:01 PM #79912 -
AuthorPosts
Find exclusive trading pro-tools on