Prise de position à un niveau de prix déterminé
Forums › ProRealTime forum Français › Support ProOrder › Prise de position à un niveau de prix déterminé
- This topic has 6 replies, 2 voices, and was last updated 5 years ago by Taylor.
-
-
08/08/2019 at 2:27 PM #104418
Bonjour,
Pardonnez d’abord mon ignorance, je viens poser une question de grande débutante en trading automatique !
Je souhaite ajouter un déclenchement de position sur un niveau de prix précis que j’aurais moi-même défini dans le code suite à une analyse graphique personnelle… (je ne pensais pas être en difficulté dès cette étape lol).
J’ai essayé des choses du type
12345C1 = (close = XXXX)C1 = XXXXC1 = (tradeprice crosses over XXXX)Rien ne se déclenche… “Tradeprice” n’est que pour une position déclenchée je crois, et pour “close” j’ai cru comprendre que le robot ne prenait position qu’à la clôture de la bougie (comme son nom l’indique), or je souhaite que la position soit prise au marché dès que le cours arrive à un niveau de prix déterminé. Je ne vois pas quelle autre variable correspondrait à ma demande.
Merci d’avance pour votre aide, j’espère mieux me débrouiller pour la suite !
08/08/2019 at 2:37 PM #104419Bon, je me réponds à moi-même. Déjà je viens de voir qu’il n’y a, a priori, pas moyen de mettre un déclenchement en dehors des clôtures ou ouvertures de bougies.
Du coup, en essayant C1 = (close < XXXX) j’ai enfin eu mon ordre déclenché puisque j’ai donné une hypothèse qui s’est effectivement rencontrée sur le marché à l’horaire backtesté.
Question 1 : si on ne peut vraiment déclencher qu’en fermeture ou ouverture de bougies, à quoi sert le mode “tick par tick” du backtest ?
Question 2 : ce que j’en comprends c’est qu’il faut éventuellement que je me positionne sur unité inférieure et plus proche. Est-ce qu’on peut se positionner en UT = 1 tick ??? Là je serai au plus près du marché.
Car quand je fais cela, je reçois une erreur “Vérifiez la date de début et de fin de votre backtest”. J’ai mis une tranche de 10h à 10h15 aujourd’hui.
Si impossible, quelle serait la valeur minimale du coup ?
Merci, je continue mes recherches mais au moins j’avance dans ma compréhension globale du système !
08/08/2019 at 3:04 PM #104422Pour ma Question 2, la réponse est que mon graphique s’affichant en 200 unités, l’horaire demandé n’était pas disponible pour le backtest ! Donc en modifiant l’horaire ou l’affichage cela est résolu.
Et en mettant mon robot en mode 1 tick, même en conservant la seule fonction “close = XXX” je suis sûre d’être bien exécuté au prix souhaité.
Voilà, voilà. En espérant que cela serve à d’autres newbie !
08/08/2019 at 3:50 PM #104426Bon, c’est encore moi, pardonnez le nombre d’auto réponses mais je ne peux pas éditer mes posts passé un certain délai.
Tout ça pour dire que ma solution ne marche pas à tous les coups et je ne comprends pas pourquoi.
Voici un bout du code en question, réduit à son plus simple appareil juste pour vérifier le bon déclenchement d’un ordre au passage d’un niveau de prix défini :
12345678910111213141516// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteusec1 = (close = 11801)IF NOT LONGONMARKET AND c1 THENBUY 1 CONTRACT AT MARKETENDIF// Conditions pour ouvrir une position vendeusec2 = (close = 11776)IF NOT SHORTONMARKET AND c2 THENSELL 1 CONTRACT AT MARKETENDIFJ’ai fait un backtest sur le DAX30 en CFD, UT 1 tick de 14:50 à 16:50 ce jour et ça ne m’a déclenché aucune position malgré que le prix soit passé plusieurs fois par ces niveaux…
Pourtant, dans un autre backtest sur l’heure de midi ça fonctionnait. Une idée ?
08/08/2019 at 8:37 PM #10444108/09/2019 at 9:43 AM #104458Pareil avec le crosses over ou under, j’ai ensuite affiné d’ailleurs en mettant un (close > XXXX and close < XXXXX) pour être sûre de la fenêtre de prise de position.
J’ai essayé la formule ci-dessous toujours sur le DAX30 CFD en 1 tick entre 10:25 et 10:45 ce matin et il ne m’a déclenché qu’une position acheteuse qui était passée par un TP10 que j’avais paramétré pour le test (sans le prendre) pour finir sur mon SL de 5… En regardant le 1 tick c’est pourtant sûr qu’il aurait dû déclencher au moins une position vendeuse et qu’il est bien passé par le niveau exactement indiqué dans le code.
1234567891011121314151617181920// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Conditions pour ouvrir une position acheteusec1 = (close > 11789 and close < 11790)IF NOT LONGONMARKET AND c1 THENBUY 1 CONTRACT AT MARKETENDIF// Conditions pour ouvrir une position vendeusec2 = (close < 11775 and close > 11774)IF NOT SHORTONMARKET AND c2 THENSELL 1 CONTRACT AT MARKETENDIF// Conditions de TP et SLSET TARGET PROFIT 10SET STOP LOSS 5J’avoue ne vraiment pas comprendre ce défaut de déclenchement alors que le code est pour l’instant extrêmement simple normalement.
08/09/2019 at 1:48 PM #104473Décidément, je fais les questions et les réponses lol. Donc pour me répondre à mon interrogation de ci-dessus, le code ne pouvait fonctionner en short car la commande n’était pas bonne.
A la ligne 15 il faut en effet remplacer “SELL” par “SELLSHORT”…
SELL étant la commande pour liquider une position déjà en cours, SELLSHORT pour déclencher une position vendeuse.
-
AuthorPosts
Find exclusive trading pro-tools on