Ordres limites
Forums › ProRealTime forum Français › Support ProOrder › Ordres limites
- This topic has 7 replies, 2 voices, and was last updated 8 years ago by Nicolas.
-
-
09/28/2016 at 1:57 PM #13857
Bonjour,
Merci pour votre site qui apporte aide importante pour les débutants.Après 20 d’expérience sur les marchés essentiellement sur les options, j’ai ouvert un compte cfd chez PRT afin de tenter l’aventure du trading automatique.
J’avais une question un peu bête en matière de programmation.
Je me suis adressé aussi à Doc Trading mais pour ne pas lui prendre trop de temps et afin de partager les réponses, j’ai décidé de poster sur le forum.
Bonjour Marc,
Sans trop abusé de votre temps, une petite question.
Je pensais pouvoir passer un ordre limite dans le trading automatique
Par exemple, acheter 5 points en dessous ou vendre 5 points au dessus de l’ouverture du marché si atteint bien sur.
J’ai mis le code suivant
IF not longonmarket and c1 THEN
BUY 1 SHARES AT 5 limit
ENDIFMais cela ne fonctionne pas, il achète au prix de l’ouverture car cela revient à acheter si le sous-jacent touche 5 d’après le guide probuilder.
il faudrait le code suivant BUY 1 SHARES AT market -5
Je pense que ma demande n’est pas possible.
Pourtant, cela existe chez tous les brokers. Vous envoyez un ordre limite sur le marché.
Je voulais avoir votre avis car ce sujet n’est abordé par personne dans le forum
Bonne journée.
09/28/2016 at 3:28 PM #13864Bonjour, merci de mettre à jour ton profil avec ton pays (pas automatique via les inscriptions réseaux sociaux, je dois corriger cela.. bref).
Dans le code que tu soumets, tu demandes à acheter à “Market-5”, il faudrait définir ce qu’est “market” pour commencer 🙂 , si je comprends ta stratégie, ce serait le Open ou plutôt le DOpen(0), soit le cours d’ouverture du jour.
Par contre, puisque tu souhaites tester cette condition, il faut lancer le code sur une unité de temps très courte, puisque PRT n’exécute le code qu’une seule fois par barre, il n’exécutera ton code que le lendemain et il sera trop tard. Donc le code ressemblerait plutôt à :
123IF not longonmarket and c1 THENBUY 1 SHARES AT Dopen(0)-5 limitENDIFMAIS! les ordres conditionnels doivent être re-placé à chaque barre, il n’y a pas de settings d’expiration pour ces ordres. Donc ta condition c1 doit être TRUE à chaque barre, sinon l’ordre conditionnel ne se placera pas.
09/28/2016 at 6:24 PM #13871Merci.
J’ai mis le profil à jour.
Je veux acheter à la prochaine bougie si la condition c1 est remplie mais je ne veux pas acheter au prix d’ouverture au marché. Si elle ouvre à 10 000 points, je veux un ordre d’achat limite à 9995 points. Si le cours n’est pas touché, l’ordre n’est pas exécuté.
Pourquoi on ne peut pas faire :
IF not longonmarket and c1 THEN
BUY 1 SHARES AT open -5 limit
ENDIFJe ne comprend pas l’indicateur Dopen. Comment doit on définir cette variable.
J’ai testé mon code mais cela ne semble pas acheter -5 du point d’ouverture.
Je vous remercie de votre piste de recherche.
09/28/2016 at 7:50 PM #1387209/30/2016 at 5:36 PM #13984Merci pour votre aide Nicolas.
Je relance la file en donnant la réponse de Marc qui je pense ne m’en voudra pas de reporter sa réponse ici.
Bonjour
Buy 1 shares at 5 limit signifie :acheter si le cours est au maximum à une valeur de 5 (euros, etc.)Donc forcément ça ne fonctionne pas, par exemple s’il s’agit d’une action dont la valeur est 30 euros.Il faudrait plutôt mettre quelque chose du genre :IF time = 090000 THEN // si l’ouverture du marché est à 9 heuresniveauachat = close – 5ENDIFBuy at niveauachat limitJe pense que Marc voulait plutôt direniveauachat= open -5Pour l’instant, j’ai testé cela.BUY 1 SHARES AT open -5 limitMais cela ne fonctionne pas.Je peux remplacer open par Dopen comme proposé par Nicolas mais cela n’est pas accepté par le programmeJe vais donc faire comme proposé par Marc. Il faudra tester en réel car cela ne peut pas fonctionner dans les backtests puisque le système ne connait pas le prix dans la bougie.Je mets une copie du programme pour ceux qui veulent passer des ordres limites même si cela ne semble pas intéresser grand monde à mon étonnement.entreea= open-5IF not longonmarket and c1 THEN
BUY 1 SHARES AT entreea limitENDIFentreeb= open+5IF not shortonmarket and c1 THEN
SELLSHORT 1 SHARES AT entreeb limit
ENDIFSi cela inspire quelqu’un ou si vous avez déjà testé en réel, je suis preneur.Je prendrai position dès lundi sur cette base-là.09/30/2016 at 7:46 PM #13989Le code donné sur le post http://www.prorealcode.com/topic/ordres-limites/#post-13864 doit fonctionner, je ne comprends pas le problème ?
10/01/2016 at 9:14 AM #14002Le problème est assez simple.
Si j’écris Dopen ou Dclose dans le programme, impossible de lancer le backtest, erreur de syntaxe à la ligne concernée.
Comme la nuit porte conseil, il faut bien prendre close et non open comme expliqué par doc trading.
On met bien la limite à 5 points de la dernière clôture.
10/01/2016 at 11:28 AM #14013As-tu bien utilisé l’instruction Dopen ou Dclose avec le offset adéquat? Dans ton cas :
1Dopen(0)Sans les parenthèses, ProBacktest te retournera en effet une erreur de syntaxe.
Sinon poste ton code en entier ici et je le corrigerai, aucun problème 🙂
-
AuthorPosts
Find exclusive trading pro-tools on