short long sur nasdaq; Pas plus d'un ordre? test tranche horaire
Forums › ProRealTime forum Français › Support ProOrder › short long sur nasdaq; Pas plus d'un ordre? test tranche horaire
- This topic has 5 replies, 2 voices, and was last updated 6 years ago by Nicolas.
-
-
08/26/2018 at 10:18 AM #79098
bonjour,
ca y est , je me suis mis sur le back test et je teste un truc très simple:
nasdaq 1 h:
heiken ashi, un regression lineaire et une moyenne mobile;
position longue: entrée : 2eme bougie verte, la regression croisse à la hausse la mm
:sortie : regression croise à la baisse la mm
position courte: entrée : 2eme bougie rouge , la regression croise à la baisse la mm
: sortie: la regression croise à la hausse la mmmais pb, avec l’optimisation variable , j’ai parfois une courte qui s’ouvre alors que la longue n’est pas encore fermée
d’ou questions
1) est ce autorisée en en pro order automatique avec stop garanti, j’ai cru lire dans un post que non?
2) de toute façon, compte tenu des nouveaux montants de couverture, je ne veux pas ouvrir plus d’une position à la fois en sequentielle, d’ou question, comment coder que je veux pas plus d’une position, longue ou courte en meme temps?
3) petite question sur dropdown, maintenant la couverture mini est de 5% , soit environ 350 points sur nasdaq, si mon dropdown est de 500 points sur short et 380 sur long, la logique est elle que je fixe mon stop guaranti àu dessus du dropdown pour ne pas cramer le compte, donc en prenant la valeur la plus haute, celle du short plus une securité, disons 600 points?
4) pour simuler les meilleures tranches horaires de passage d’ordre et et d’ouverture fermeture de periode de trade, j ai ces variables mais comment faire pour tester laisser ouvert du lundi au vendredi 24/24 le passage d’ordre, ou restreindre ou ouvertures de marché, et entre 15h30 16H30 et 20H30 21H30 meilleurs periodes pour passage ordre?DEFPARAM CumulateOrders = False // Cumul des positions désactivé
DEFPARAM FLATBEFORE = 000000
DEFPARAM FLATAFTER = 235900noEntryBeforeTime = 000000
timeEnterBefore = time >= noEntryBeforeTimenoEntryAfterTime = 235900
timeEnterAfter = time < noEntryAfterTimenasdaq heiken ashi pl+mm 1 h12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 000000// Annule tous les ordres en attente et ferme toutes les positio3DEFPARAM FLATAFTER = 235900// 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 = 000000timeEnterBefore = 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 = 235900timeEnterAfter = 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 acheteusec1 = (close > open)c2 = (close[1] > open[1])indicator1 = LinearRegression[LRe](close)indicator2 = Average[LAe](close)c3 = (indicator1 CROSSES OVER indicator2)IF (c1 AND c2 AND c3) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THENBUY 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position acheteuseindicator3 = LinearRegression[LRx](close)indicator4 = Average[LAx](close)c4 = (indicator3 CROSSES UNDER indicator4)IF c4 THENSELL AT MARKETENDIF// Conditions pour ouvrir une position en vente à découvertc5 = (close < open)c6 = (close[1] < open[1])indicator5 = LinearRegression[SRe](close)indicator6 = Average[SAe](close)c7 = (indicator5 CROSSES UNDER indicator6)IF (c5 AND c6 AND c7) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position en vente à découvertindicator7 = LinearRegression[SRx](close)indicator8 = Average[SAx](close)c8 = (indicator7 CROSSES OVER indicator8)IF c8 THENEXITSHORT AT MARKETENDIF// Stops et objectifsSET STOP %LOSS SLSET TARGET %PROFIT TPmerci de tout coeur
cordialement pp08/27/2018 at 9:43 AM #79151Je vois que le code est créé avec l’assistant de création assistée, je ne vais donc pas intervenir dedans mais plutôt répondre à tes questions :
1) est ce autorisée en en pro order automatique avec stop garanti, j’ai cru lire dans un post que non?
2) de toute façon, compte tenu des nouveaux montants de couverture, je ne veux pas ouvrir plus d’une position à la fois en sequentielle, d’ou question, comment coder que je veux pas plus d’une position, longue ou courte en meme temps?
3) petite question sur dropdown, maintenant la couverture mini est de 5% , soit environ 350 points sur nasdaq, si mon dropdown est de 500 points sur short et 380 sur long, la logique est elle que je fixe mon stop guaranti àu dessus du dropdown pour ne pas cramer le compte, donc en prenant la valeur la plus haute, celle du short plus une securité, disons 600 points?
4) pour simuler les meilleures tranches horaires de passage d’ordre et et d’ouverture fermeture de periode de trade, j ai ces variables mais comment faire pour tester laisser ouvert du lundi au vendredi 24/24 le passage d’ordre, ou restreindre ou ouvertures de marché, et entre 15h30 16H30 et 20H30 21H30 meilleurs periodes pour passage ordre?
1/ Je suppose que tu fais référence au fait d’ouvrir des positions contrariennes et en même temps. Cela n’est pas possible sous ProOrder, soit on achète, soit on vend. Pour tester si on est déjà au marché (et donc ne pas fermer la position existante), tu peux utiliser NOT ONMARKET et l’intégrer dans tes conditions d’ouvertures de position aux lignes 26 et 46.
2/ c’est déjà le cas dans ton code avec DEPARAM cumulteorders=false
3/ calcul de marge, je te conseil les codes créés par Vonasi dans ce sujet du forum anglais: ESMA Margin calculation
4/ changer les conditions horaires et calendaires définies entre les lignes 8 et 17, voir les instructions de temps dans notre documentation en ligne.
08/27/2018 at 5:06 PM #79187mon cher nicolas
tout d’abord merci pour tes réponses qui vont beaucoup m’aider.
toutefois je reviens vers toi concernant la question n2, en effet DEPARAM cumulteorders=false, mais regarde ce qui se passe,
par exemple le 21 août j’au deux achats long, alors que logiquement je ne dois en avoir qu’un
le 3 aout, j’ai un achat short suivi d’un achat long le 6 aout anors que la position short n’a pas ete encore venduecomme il me faut uniquement une position ouverte à la fois, cela me semble etre un probleme, qu en penses tu?
autre petite question, j’ai code des variables temps
// Définition des paramètres du code
DEFPARAM CumulateOrders = False // Cumul des positions désactivé
// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d’ordre avant l’heure “FLATBEFORE”.
DEFPARAM FLATBEFORE = hdcp
// Annule tous les ordres en attente et ferme toutes les positio3
DEFPARAM FLATAFTER = hfcop// 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ée
noEntryBeforeTime = hdtp
timeEnterBefore = 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ée
noEntryAfterTime = hftp
timeEnterAfter = time < noEntryAfterTimeet voici le code erreur durant compilation
Erreur de syntaxe : ligne 4, caractère 23
Une des expressions suivantes serait plus appropriée que
“hdcp”:
– une heure (000000 – 235959)que faire pour que les variables temps soient reconnues?
tres cordialement pp
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061// Définition des paramètres du codeDEFPARAM CumulateOrders = False // Cumul des positions désactivé// Annule tous les ordres en attente et ferme toutes les positions à 0:00, puis empêche toute création d'ordre avant l'heure "FLATBEFORE".DEFPARAM FLATBEFORE = 000000// Annule tous les ordres en attente et ferme toutes les positio3DEFPARAM FLATAFTER = 235900// 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 = 000000timeEnterBefore = 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 = 235900timeEnterAfter = 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 acheteusec1 = (close > open)c2 = (close[1] > open[1])indicator1 = LinearRegression[LRe](close)indicator2 = Average[LAe](close)c3 = (indicator1 CROSSES OVER indicator2)IF (c1 AND c2 AND c3) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THENBUY 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position acheteuseindicator3 = LinearRegression[LRx](close)indicator4 = Average[LAx](close)c4 = (indicator3 CROSSES UNDER indicator4)IF c4 THENSELL AT MARKETENDIF// Conditions pour ouvrir une position en vente à découvertc5 = (close < open)c6 = (close[1] < open[1])indicator5 = LinearRegression[SRe](close)indicator6 = Average[SAe](close)c7 = (indicator5 CROSSES UNDER indicator6)IF (c5 AND c6 AND c7) AND timeEnterBefore AND timeEnterAfter AND not daysForbiddenEntry THENSELLSHORT 1 CONTRACT AT MARKETENDIF// Conditions pour fermer une position en vente à découvertindicator7 = LinearRegression[SRx](close)indicator8 = Average[SAx](close)c8 = (indicator7 CROSSES OVER indicator8)IF c8 THENEXITSHORT AT MARKETENDIF// Stops et objectifsSET STOP %LOSS SLSET TARGET %PROFIT TP08/27/2018 at 6:39 PM #79192Le 21 Août je vois un achat d’une position vendeuse (EXITSHORT) initiée le 20 et une nouvelle entrée d’achat LONG sur la bougie de 7:00
cumulateorders=false limitera à une seule position.
Sous ProOrder, une instruction BUY fermera automatiquement une position de vente à découvert SELLSHORT. Sauf si bien sûr on ajoute une condition pour que cela n’arrive pas (avec un IF NOT ONMARKET , par exemple).
Les instructions DEFPARAM n’accepte pas de variables, et donc pas d’optimisation. Je te suggère donc de créer des variables booléennes qui contiendront des tests sur des instructions horaires et calendaires et de les ajouter à la prise de positions et aussi pour forcer la sortie de celles-ci.
09/13/2018 at 10:05 AM #8035809/13/2018 at 10:47 AM #80366 -
AuthorPosts
Find exclusive trading pro-tools on