Répondre

Problème de la règle EXIT dans MT4 !!!

18 réponses

Gaudio Fx

Abonné, bbp_participant, communauté, 22 réponses.

Visiter le profil

Il y a 8 ans #114590

Bonjour,
Je vous contacte parce que j'ai un gros problème qui se pose dans de nombreuses circonstances en ce qui concerne les stratégies de création et d'amélioration.
Le problème qui se pose souvent est le suivant :
lorsque je vérifie la "Règle de sortie (prix + + opérateurs indicateurs...)", la stratégiequant dans des conditions spécifiques, à utiliser une très bonne solution comme cet exemple que je vous donne ci-dessous :
ce sont les conditions de la stratégie de sortiequant
et voici ce qui se passe à la place de metatrader4
Dans ce cas, les deux positions courtes ont les conditions de sortie avant l'entrée car le volume est supérieur à la moyenne de 50 (ligne rouge) et MetaTrader ouvre et ferme en même temps.
Toutefois, cela ne se produit pas dans la stratégiequant, car on suppose que la condition de sortie ne doit être initiée qu'à la clôture de la bougie d'entrée.
Ce serait comme dire que la condition de sortie est à la clôture de la bougie d'entrée et ceci, dans de nombreuses circonstances, il est très bon. mais metatrader ne le fait pas et ouvre et ferme en même temps sans attendre la finalisation de la bougiecomme c'est le cas dans strategyquant, ce qui me donne de bons résultats
Comment faire comprendre à metatrader qu'il doit attendre la fermeture de la bougie d'entrée et ensuite activer les règles de sortie comme la stratégiequant ?
merci beaucoup
PS :
LA LOGIQUE QUE J'UTILISE N'EST PAS BONNE POUR LE TRADING...MAIS LA QUESTION EST LA MÊME
ce n'est pas logique je sais ... mais c'était juste un exemple ... c'est le concept qui me semble important, ou si la règle de sortie est active avant l'ouverture du trade, pourquoi dans metatrader4 est active en même temps que l'ouverture alors que sur strategyquant est active seulement en bougie de fermeture ? ???? ... C'EST LA QUESTION ... pas pour l'exemple logique de sortie .... 

Je peux remplacer cette règle de sortie par une autre plus logique :

 

 

Mais si cette condition est vraie avant l'ordre, dans metatrader la fermeture est au même point que l'ouverture ..mais dans strategyquant la fermeture est après la fermeture de la bougie !!! ... je veux la même condition dans MT4... C'EST POSSIBLE ?

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #134663

Cette règle de sortie ne me semble pas logique.

 

Pourquoi un volume supérieur à la moyenne signifierait-il la fermeture d'une position courte et un volume inférieur à la moyenne signifierait-il la fermeture d'une position longue ou vice versa ? Il s'agit là d'un autre exemple de logique étrange dans le choix de règles symétriques.

 

Le fait que le volume soit supérieur ou inférieur à la moyenne n'a pas d'effet directionnel.

0

Gaudio Fx

Abonné, bbp_participant, communauté, 22 réponses.

Visiter le profil

Il y a 8 ans #134664

ce n'est pas logique je sais ... mais c'était juste un exemple ... c'est le concept qui me semble important, ou si la règle de sortie est active avant l'ouverture du trade, pourquoi dans metatrader4 est active en même temps que l'ouverture alors que sur strategyquant est active seulement en bougie de fermeture ? ???? ... C'EST LA QUESTION ... pas pour l'exemple logique de sortie ....

Je peux remplacer cette règle de sortie par une autre plus logique :

 

Mais si cette condition est vraie avant l'ordre, dans metatrader la fermeture est au même point que l'ouverture ..mais dans strategyquant la fermeture est après la fermeture de la bougie !!! ... je veux la même condition dans MT4... C'EST POSSIBLE ?

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #134665

Il semble qu'il s'agisse d'ordres en attente (ordres à cours limité ou ordres stop). Êtes-vous sûr qu'ils sont fermés et non supprimés ?

 

Que montre l'onglet des résultats dans MT4 plutôt que le graphique ?

0

Gaudio Fx

Abonné, bbp_participant, communauté, 22 réponses.

Visiter le profil

Il y a 8 ans #134666

oui oui je suis 100% sûr ... les commandes sont ouvertes et fermées en même temps
le rapport sur mt4 est clair sur l'ouverture et la fermeture .
 
Je répète : strategyquant active la règle de sortie immédiatement après la clôture de la bougie où vous avez ouvert la transaction.
Au contraire de mt4 cela ne se produit pas, la règle de sortie est active en même temps que l'ouverture.
 
Comment puis-je contrôler l'attente de la fermeture de la bougie ?
Je dois ajouter manuellement une modification aux stratégies ? Vous pouvez m'expliquer comment je remplis cette modification pour que cela se produise ?
 
J'ai essayé de fermer (1) ouvrir (1) mais ça ne passe pas, ensuite j'ai essayé avec cloase (2) ouvrir (1) et n'importe quel ordre l'ouvre correctement.. : /

0

tomas262

Administrateur, sq-ultimate, 2 réponses.

Visiter le profil

Il y a 8 ans #134667

Gaudio, il me semble que les conditions d'entrée et de sortie peuvent parfois "entrer en collision" et selon la précision du backtesting vous obtenez alors un comportement différent comme une sortie immédiate après l'entrée. Pouvez-vous m'envoyer la stratégie (fichier *.STR) à [email protected] afin que je puisse le vérifier ? La solution ici peut être un correctif pour SQ ou la modification du code de votre stratégie pour attendre la fermeture de la barre.

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visiter le profil

Il y a 8 ans #134673

Oui, c'est un problème de précision. Si vous backtestez une telle stratégie avec des données réelles, elle agira de la même manière dans SQ et échouera. Veillez donc à toujours vérifier les stratégies avec des données réelles pour les dernières années au moins afin d'éviter ce genre de choses. Personnellement, je n'utiliserais jamais le "volume" pour une logique de trading car le volume est totalement différent d'un courtier à l'autre. Même chose pour "hour", sauf si vous savez que les données historiques que vous utilisez sont absolument synchronisées avec le serveur de votre courtier actuel.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #135652

 

 
Je répète : strategyquant active la règle de sortie immédiatement après la clôture de la bougie où vous avez ouvert la transaction.
Au contraire de mt4 cela ne se produit pas, la règle de sortie est active en même temps que l'ouverture.
 

 

 

Je viens de découvrir ce problème avec SQ vs MT4 également.

 

Dans SQ, la position est ouverte à l'ouverture de la barre, et la position est fermée à la fin de la barre/à l'ouverture de la barre suivante. Dans MT4 (avec une précision de chaque tick), l'ordre est ouvert et fermé immédiatement à l'ouverture de la barre.

 

Ainsi, dans MT4, vous ne voyez aucun profit, alors que dans SQ, la rentabilité est très bonne. Les résultats sont complètement différents.

 

Cela se produit dans les stratégies qui ont une règle de sortie qui est vraie en même temps que la règle d'entrée est vraie, ce qui signifie ouvrir un trade et fermer un trade sur cette barre. Il semble que SQ considère que cela signifie ouvrir la transaction à l'ouverture de la barre et la clôturer à la fin de la barre, alors que la logique de MT4 fait les deux à l'ouverture de la barre.

 

Ce qui est inquiétant, c'est que cela s'applique à de nombreuses stratégies avec des règles d'entrée et de sortie.....

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #135653

Les premiers tests montrent qu'il est possible de "corriger" les stratégies MT4 pour qu'elles fonctionnent comme dans SQ en ajoutant une ligne de code à la fonction suivante :

void closePositionAtMarket() {
   RefreshRates() ;
   double priceCP ;

   if(OrderType() == OP_BUY) {
      priceCP = Bid ;
   } else {
      priceCP = Ask ;
   }
   
   if(OrderOpenTime() >= Time[0]) return ; // Nouvelle ligne de code ! Sortie si l'ordre vient d'être ouvert

   rettmp = OrderClose(OrderTicket(), OrderLots(), priceCP, MaxSlippage) ;
}

0

Gaudio Fx

Abonné, bbp_participant, communauté, 22 réponses.

Visiter le profil

Il y a 8 ans #135655

 

Les premiers tests montrent qu'il est possible de "corriger" les stratégies MT4 pour qu'elles fonctionnent comme dans SQ en ajoutant une ligne de code à la fonction suivante :

void closePositionAtMarket() {
   RefreshRates() ;
   double priceCP ;

   if(OrderType() == OP_BUY) {
      priceCP = Bid ;
   } else {
      priceCP = Ask ;
   }
   
   if(OrderOpenTime() >= Time[0]) return ; // Nouvelle ligne de code ! Sortie si l'ordre vient d'être ouvert

   rettmp = OrderClose(OrderTicket(), OrderLots(), priceCP, MaxSlippage) ;
}

 

Je suis très heureux qu'enfin quelqu'un ait réalisé que le problème n'était pas dans le backtest mt4 mais qu'il s'agissait d'un problème de STRATEGYQUANT.
Maintenant, si je comprends bien, lorsque la stratégie est terminée, pour résoudre le problème, je dois écrire dans le code de la stratégie, les chaînes de caractères que vous venez de rapporter... c'est bien cela ?
Mais à quel endroit des lignes de code de la stratégie dois-je insérer cette ligne de script ?
Avez-vous mieux expliqué où je les ai mis ?
 
vous êtes un génie
 
merci beaucoup

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visiter le profil

Il y a 8 ans #135656

Oui, mais en fait, si vous y réfléchissez bien, c'est SQ qui se trompe dans le backtest, et non MT4. Si une règle d'ouverture et de fermeture s'applique en même temps, l'ordre doit être ouvert et fermé dans les 2 ticks - tick 1 pour l'ouverture, tick 2 pour la fermeture. Le fait de le conserver pendant une barre est en fait moins valable que de le fermer immédiatement comme le fait MT4. Donc en fait le code de backtesting de SQ devrait être ajusté pour fermer l'ordre tout de suite aussi et pour invalider la stratégie de cette façon aussi, parce que c'est tout ce que c'est, vous ne pouvez pas avoir une règle d'ouverture et de fermeture s'appliquant au même moment. Ce serait valable SI la stratégie avait AUSSI l'option de maintenir le trade au moins 1 barre, alors d'accord, votre code MT4 ci-dessus serait correct. Mais si les règles d'ouverture et de fermeture sont valables en même temps, ce que fait SQ est exactement ce qui est logiquement juste et comment une telle stratégie fonctionnerait également si elle était négociée manuellement. Par exemple, les règles d'ordre diraient : ouvrir une transaction si la clôture précédente > l'ouverture actuelle et la fermer si la clôture précédente > l'ouverture actuelle. Dans ce cas, pour respecter les règles, il faudrait ouvrir l'ordre et le fermer immédiatement - ce qui n'a sûrement aucun sens, mais c'est exactement ce que font les stratégies qui ont de telles règles. S'il s'agissait d'ouvrir une transaction si la clôture précédente > l'ouverture actuelle, d'attendre au moins une barre et de la clôturer si la clôture précédente > l'ouverture actuelle, alors cela aurait du sens.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #135658

Rechercher dans le fichier mq4 closePositionAtMarket()

 

Ajouter la ligne

 

si(Heure d'ouverture de la commande() >= L'heure[0]) retour; // Nouvelle ligne de code ! Sortir si l'ordre vient d'être ouvert

 

Là où je l'ai montré.

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visiter le profil

Il y a 8 ans #135660

Oui, je comprends tout à fait ce que vous voulez dire, mais cela équivaut à une règle supplémentaire de "hold trade at least 1 bar before exiting", qui n'est pas une règle dans SQ pour cette stratégie comme vous le dites et qui est donc erronée LOGIQUEMENT. Il est certain que votre solution fait ce que vous voulez qu'elle fasse, je le comprends, mais logiquement elle n'est toujours pas correcte. Si vous avez les mêmes règles d'ouverture et de fermeture s'appliquant en même temps, pour traduire correctement la logique de SQ à MT4, l'ordre DOIT être ouvert et fermé dans les 2 ticks s'il est exposé au marché réel. Bien sûr, SI vous ajoutez la règle supplémentaire de "tenir au moins 1 barre", alors votre solution est correcte, mais comme cette règle n'est pas dans la stratégie originale dans SQ, ce n'est pas correct de le faire comme ça dans MT4. Il ne s'agit pas vraiment d'un bug, mais de la manière dont de telles règles (sans la règle supplémentaire "hold trade at least 1 bar") agiraient dans le trading réel.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

mikeyc

Client, bbp_participant, communauté, 877 réponses.

Visiter le profil

Il y a 8 ans #135663

Je propose simplement une solution pour que MT4 se comporte comme SQ. Personne n'est obligé de le faire, mais s'ils veulent que le trading en direct corresponde à SQ, c'est ce qu'il faut faire.

0

Gaudio Fx

Abonné, bbp_participant, communauté, 22 réponses.

Visiter le profil

Il y a 8 ans #135664

Rechercher dans le fichier mq4 closePositionAtMarket()

 

Ajouter la ligne

 

if(OrderOpenTime() >= Time[0]) return ; // Nouvelle ligne de code ! Quitter si l'ordre vient d'être ouvert

 

Là où je l'ai montré.

okok...

 

Si je veux que ce soit en logique "ou" et non "si", est-ce que je remplace "si" par "si" ?

 

eg : or(OrderOpenTime() >= Time[0]) return ; // Nouvelle ligne de code ! Quitter si l'ordre vient d'être ouvert

0

geektrader

Customer, bbp_participant, community, 522 replies.

Visiter le profil

Il y a 8 ans #135665

Je propose simplement une solution pour que MT4 se comporte comme SQ. Personne n'est obligé de le faire, mais s'ils veulent que le trading en direct corresponde à SQ, c'est ce qu'il faut faire.

 

Oui, dans le cadre d'un backtesting avec des données en ticks, SQ ouvre et ferme l'ordre dans les 2 ticks, tout comme le fait MT4.


🚀 Unlock Your Edge in Automated Forex Strategy Development 🚀

Historical Forex Data Starting From 1987, 28 Pairs, M1, 99% Error-Free, Lifetime Free Updates

0

Affichage de 15 réponses de 1 à 15 (sur un total de 18)

1 2