TP1 sur support avec secours (DAX)
Forums › ProRealTime forum Français › Support ProOrder › TP1 sur support avec secours (DAX)
- This topic has 24 replies, 2 voices, and was last updated 7 years ago by Nicolas.
-
-
03/18/2017 at 6:23 PM #29034
Me resterait idéalement à faire en sorte que le RSI mesuré soit en 21 ticks (ma préférence) mais mon code tourne sur PRT en 1 seconde pour être réactif.
A suivre.
03/20/2017 at 12:03 PM #29155Les codes fonctionnent bien a priori.
Seul problème relevé, le système prend parfois un 2è ordre sur le 1er support (visiblement dans la même seconde qui est mon UT de trading automatique, ce qui me fait 2 positions ouvertes). Ce n’est pas mon souhait à ce stade. Existe-t-il un moyen d’empêcher cela ?
J’ai même eu à l’instant un 2è ordre (également visiblement dans la même seconde) sur mon support de secours… Là, c’est beaucoup plus embêtant, car à l’atteinte de l’objectif median, le système déclenche 2 VENTE LIMITES non souhaitées…
Bref, existe-t-il un moyen dans le code afin de prévenir ces doubles exécutions ?
Je poursuis les tests.
03/20/2017 at 1:14 PM #29161Ce genre de problème peut venir du fait que le programme ne sait pas qu’il est déjà au marché et donc qu’il ouvre un deuxième ordre conditionnel, qui est lui même aussi déclenché. Pour empêcher cela, je verrai peut être une nouvelle condition à ajouter aux lignes 13 et 19 pour ne pas poser de nouveaux ordres conditionnels si il l’a déjà fait sur la même barre:
123456789101112131415161718192021222324252627282930313233niveau1 = 12109niveau2 = 12099ecart=abs(niveau1-niveau2)ecartabs=ROUND(ecart/2)if ecart/2=ecartabs thenconstante=1elseconstante=0endif//1er tradeif not longonmarket and alreadytraded=0 and rsi[14]>32 and barindex>lastbar thenBUY 1 contract at niveau1 limitlastbar=barindexendif//2eme tradeif longonmarket and positionperf<0 and countoflongshares=1 and barindex>lastbar thenBUY 1 contract at niveau2 limitlastbar=barindexalreadytraded=1endif//objectif si 1 tradeif countoflongshares=1 thenset target pprofit 1endif//objectif si 2 tradesif countoflongshares=2 thensell at positionprice+constante LIMITendifPas testé en live, dit nous ce qu’il en est !
03/20/2017 at 4:09 PM #29193Merci Nicolas.
Tests en-cours.
J’ai eu un cas que je souhaiterais éviter : achat sur support, vente TP1 mais dans la seconde qui suit 2nd achat sur support (dans le cas présent, s’est “bien” terminé, sans même aller chercher le support de secours).
(Le support était en l’occurrence 12 102) :
15:31:51 1 ACHAT LIMITE @12 102
15:31:57 1 VENTE LIMITE @12 103
15:31:58 1 ACHAT LIMITE @12 102
15:42:59 1 VENTE LIMITE @12 103
Fin du programme
03/20/2017 at 4:21 PM #29194De nouveau un cas similaire où malheureusement la fermeture de la position ne ferme pas le programme (un nouvel ordre LIMITE d’achat est posé):
16:16:38 1 ACHAT LIMITE @12 102
16:16:41 1 VENTE LIMITE @12 103 (immédiatement après 1 nouvel ordre achat limite est posé)
16:20:08 ACHAT LIMITE @12 102
(suite en cours)
03/20/2017 at 4:41 PM #29197Il y a décidément quelquechose qui ne colle pas.
Dans la suite en-cours évoquée dans le message précédent il se passe ceci :
16:27:43 1 ACHAT LIMITE @ 12 092 (Normal)
16h2743 1 ACHAT LIMITE @ 12 091 (non désiré)
on a alors 3 positions ouvertes @12 095 (alors qu’on devrait avoir 2 positions ouvertes @12097)
puis
16h33:24 3 VENTE LIMITE @12 096 (cohérent dans le principe)
et ensuite instantanément , je ne sais pourquoi :
16:33:24 2 VENTE LIMITE @12 095
Ces 2 positions sont ouvertes alors que le programme est en fait arrêté. (L’instruction STOP ALL trading automatique ne provoque pas de changement) Elles doivent et peuvent être fermées manuellement.
J’avoue que je suis un peu perdu…
A suivre…
03/20/2017 at 4:58 PM #29207J’ai relancé un dernier test du soir pour y voir + clair.
Je reviens vers vous au besoin.
03/20/2017 at 6:47 PM #29219Le test est malheureusement non concluant.
Il y a bizarement 1 seconde après l’ordre de VENTE LIMITE des 2 positions moyennées, un deuxième ordre similaire.
Exécuté :
17:06:47 1 ACHAT LIMITE @12095
17:30:31 1 ACHAT LIMITE @12085
En attente :
17:30:31 2 VENTE LIMITE @12 091
17:30:32 2 VENTE LIMITE @12 091 (cet ordre ne devrait pas apparaître)
Je joins le code.
123456789101112131415161718192021222324252627282930313233niveau1 = 12095niveau2 = 12085ecart=abs(niveau1-niveau2)ecartabs=ROUND(ecart/2)if ecart/2=ecartabs thenconstante=1elseconstante=0endif//1er tradeif not longonmarket and alreadytraded=0 and rsi[14]>32 and barindex>lastbar thenBUY 1 contract at niveau1 limitlastbar=barindexendif//2eme tradeif longonmarket and positionperf<0 and countoflongshares=1 and barindex>lastbar thenBUY 1 contract at niveau2 limitlastbar=barindexalreadytraded=1endif//objectif si 1 tradeif countoflongshares=1 thenset target pprofit 1endif//objectif si 2 tradesif countoflongshares=2 thensell at positionprice+constante LIMITendif03/20/2017 at 6:51 PM #29221Je reteste en rajoutant “
and barindex>lastbar
” à la ligne 31 aussi…03/20/2017 at 7:57 PM #29228Pour moi le problème vient de l’utilisation du timeframe 1s, avec un tf un peu supérieur ça pourrait s’améliorer. Sinon, au cas ou, il faudrait essayer de placer la ligne 15 au dessus de la ligne 14 (les intervertir en fait..).
-
AuthorPosts
Find exclusive trading pro-tools on