Bonjour,
J’ai 16 robots (stratégies) qui tournent en production sur prorealcode et mon problème est que pas mal d’ordres ne sont pas executés en réalité alors qu’ils le sont sur les backtests.
La réponse d’IG à ce problème c’est qu’il n’y a pas de contre partie. Le problème c’est qu’il n’y a aucun log me permettant de prendre conaissance des motifs de refus de l’ordre.
Dans ma logique cela pourrait très bien être le serveur de pro real time qui execute l’ordre trop tard du à une surcharge et ducoup, le prix demandé ne correspond plus et ig refuse d’ouvrir l’ordre ?
Il y a aussi un GAP entre le prorealtime demo et production car j’ai deux compte et les deux compte qui font tourner les même robots ne présente pas les mêmes ouvertures au même moment.
Quelqu’un as t’il une idée de comment ProRealTime gère les ressources serveurs, comment ils passent les ordre à IG, si il y a des logs qquepart ?
Cordialement.
Le courtier ne semble pas incriminer le logiciel qui envoie les ordres, mais parle d’aucune contre partie, les ordres doivent être refusés “quelque part”, et cela doit être répertorié en effet dans un log. Dans la liste des ordres de la plateforme, tu devrais déjà trouver quelques pistes (onglet ordres rejetés).
Il est difficile de comparer les backtests, serveurs démo et compte réel. Le slippage et la variation du spread auront toujours un impact significatif en trading réel.
Merci Nicolas !
Je ne trouve justement pas ces ordres rejetés dans les logs. C’est comme si il n’avaient jamais existés.
As-tu déjà utilisé une boucle while pour transmettre un ordre jusqu’à ce que cet ordre passe ? Cela se fait en mql mais en prt ? c’est vrai que les info retourné sur les ouverture dans le code sont minimalistes.
Oui j’ai déjà essayé, mais pas depuis le support MTF. Dans ce cas, il faudrait tenter une boucle WHILE, de ce type : (attention très dangereux sans un DEFPARAM cumulateorders=false). A tester, je ne suis pas certain de l’efficacité !
TIMEFRAME(1 hour,updateonclose)
//CODE DE LA STRATEGIE
buyc = rsi[14] crosses over 50
TIMEFRAME(1 seconde)
//VERIF AU MARCHE ?
a = longonmarket
TIMEFRAME(1 minute)
//GESTION DES ORDES
while not a do
buy at market
wend
Oui exactement, très dangereux donc comme sécurité il y a la limite d’ordre maximal par jour a mettre comme garde fou et vérification constante de savoir si on a un ordre en cours et vérification de la déviation du prix. J’essaie et je donne le feedback. Merci
bonsoir,
je donne un ordre en H4 je récupère le temps et nombre de position .
en M5 je laisse passer 5 minute pour que le compteur de position ce mettre a jour.
voici le code
if countPosBUY=COUNTOFLONGSHARES and round(COUNTOFLONGSHARES/n)<MAXPOS and CountTime +500 <time and CountTime +1500>time then
BUY n CONTRACT AT MARKET
SET STOP PLOSS SL
endif