Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 216

 
Comment puis-je vérifier par programme si le panneau de trading en un clic est en cours d'exécution ou non ?
 
Vladimir Tkach:
Comment puis-je vérifier par programme si le panneau de trading en un clic est en cours d'exécution ou non ?

Je l'ai sorti de la classe:

   //--- Получение параметра "панель торговли OneClick" на чарте
   bool                 IsChartOneClick(void)            {return(ChartGetInteger(m_chart_id,CHART_SHOW_ONE_CLICK));}
 
Artyom Trishkin:

Un tel problème devrait être résolu en vérifiant s'il existe, ou a existé, une position ouverte et fermée sur cette même barre.

Sinon, vous allez tout empiler. La fonction de signal doit envoyer des signaux et la fonction de négociation doit vérifier la validité du signal.


C'est ce que je voulais faire, mais je ne sais pas comment le mettre en œuvre. Comment vérifier la barre actuelle.
 
AlGuru:

C'est ce que je voulais faire, mais je ne sais pas comment le mettre en œuvre. Comment vérifier la barre actuelle.

Vérifiez s'il existe une position ouverte qui a été ouverte à la barre 0.

Si ce n'est pas le cas, vérifiez en outre s'il existe une position fermée, qui a été ouverte à la barre 0 et fermée à la même barre.

En conséquence, vous devez réaliser ces fonctions :

  1. Barre ouverte de la dernière position ouverte
  2. dernière position fermée barre ouverte
  3. Barre de fermeture de la dernière position fermée
  4. Le fait d'ouvrir et de fermer la dernière position fermée sur la même barre (les deux fonctions précédentes 2 et 3 sont utilisées).
Puis, à l'aide de ces fonctions, obtenez les données dont vous avez besoin pour prendre une décision.
 
a196012a:

Bonne journée à tous !

Veuillez indiquer comment coder l'action suivante dans le testeur de stratégie

Idée générale

1. ordre ouvert N -X (volume = 0.1)

2. si cet ordre est fermé sur SL, alors. pour compenser la perte, immédiatement au prix de clôture sur SL d'un ordre N X, ouvrez l'ordre N - X1 (volume = 0.3)

NOUS DEVONS FAIRE.

3 Si l'ordre (volume = 0.3) est fermé sur SL, seule la valeur de l'heure d' ouverture de l 'ordre N - X sera retenue pour compenser les pertes auxquelles il a été ouvert.

Je sais comment ouvrir les deux ordres, mais je ne trouve pas le chemin de la fin, comment mémoriser la valeur de l'heure pour un ordre avec un volume de 0,1 lot qui a été fermé sur le SL.

NOTE : Ceci est lié aux fermetures d'ordre sur le même tick.

Parfois, plus d'un ordre avec un volume de 0,1 et 0,3 sont fermés sur un tick.

Si 3 ordres de 0,1, par exemple, sont fermés sur un seul tick sur un SL, au lieu d'ouvrir 3 ordres de 0,3. - seulement 1 ordre de 0.3 lots est ouvert

Dans ce cas, si je ne ferme qu'un seul ordre de 0,3 lot sur le SL, je n'obtiendrai pas les valeurs de l'heure lorsque deux ordres de 0,1 lot sont ouverts qui compensent leurs pertes.

C'est-à-dire que j'ai besoin que 3 ordres de 0.3 lots soient ouverts dans ce cas, pas un seul.


Parfois, 3 ordres de 0,3 lot seront fermés par un SL sur un tick, malgré le fait que leurs ordres correspondants de 0,1 lot ont été ouverts sur différents ticks (mais juste à un prix).

Dans ce cas, le programme enregistre la bonne valeur uniquement pour un dernier ordre de 0,1 lot.

J'ai besoin que le programme sauvegarde la valeur horaire de chaque ordre (0.1 lot) fermé par SSL.


Voici mon code, que nous devons modifier.

Merci pour votre aide.

Voici un exemple de situation où plusieurs ordres sont clôturés sur un seul tick


Bonne journée !

Pourquoi devez-vous tenir compte de l'heure de chaque ordre clôturé ? Vous pouvez vous en passer... Ou avez-vous ces données ailleurs ?

2) Et exactement 3 dernières commandes qui ont clôturé à perte ? Ou bien le nombre de commandes n'a pas d'importance, peut-être 5 ou 8... Et donc, pour chaque

...un ordre qui a clôturé avec une perte devrait correspondre à un ordre avec un lot plus grand ?

 
Valerius:


Bonne journée !

1. Pourquoi devez-vous chronométrer chaque bar fermé ? Vous pouvez vous en passer... Conservez-vous ces données ailleurs ?

2) Et qu'en est-il des 3 derniers ordres qui ont clôturé avec une perte ? Ou bien le nombre de commandes n'a pas d'importance, que ce soit 5 ou 8... Et donc, pour chaque

...un ordre qui a clôturé avec une perte devrait correspondre à un ordre avec un lot plus grand ?

Merci pour votre réponse.

Oui, l'heure d'ouverture est prise en compte dans les étapes suivantes du programme.

Le nombre peut être compris entre 2 et 10.

Exactement chaque ordre qui a été fermé par un stop loss devrait correspondre à un autre ordre qui s'est ouvert avec un plus grand volume.

Par "correspondance", j'entends que si, au cours d'une journée, 3 ordres ouverts à un moment donné ont été fermés par le SL, immédiatement à leur prix de clôture.

3 ordres d'un volume plus important devraient s'ouvrir. Juste après la clôture de chaque commande individuelle. Par exemple, à 12 heures, un ordre a été clôturé au prix de 1,2000.

A 12 heures, au prix de 1.2000, un ordre plus important est ouvert. Il en va de même pour chaque ordre d'un volume inférieur qui est clôturé par un SL. Après la clôture de l'ordre d'un volume plus important par un SL, retenez l'heure à laquelle l'ordre s'ouvre en réponse à la clôture de laquelle il a été ouvert. Autrement dit, si l'ordre a été ouvert à 12h00 au prix de 1,200 et clôturé par un stop, alors l'ordre à grand volume s'ouvre à 12h00 au prix de 1,2000. Si l'ordre de plus grand volume a été clôturé par un SL , rappelez-vous l'heure d'ouverture de l'ordre de plus petit volume, c'est-à-dire 12 heures.

Nous devrions nous souvenir de la même chose après chaque ordre à fort volume qui n'a été fermé que par le SL.

Je trouve particulièrement difficile d'ouvrir des ordres et de sauvegarder les valeurs horaires lorsque plusieurs ordres (de 2 à 10) sont fermés par un seul tick sur un SL.

Voir la description détaillée de cette situation dans le post initial.

 
a196012a:

Merci pour vos commentaires.

Oui, l'heure d'ouverture est prise en compte dans les actions ultérieures du programme.

Le nombre peut être compris entre 2 et 10.

Exactement chaque ordre fermé par un stop devrait correspondre à un autre ordre ouvert par un volume plus important.

Par "correspondance", j'entends que si, au cours d'une journée, 3 ordres ouverts à un moment donné ont été fermés par le SL, immédiatement à leur prix de clôture.

3 ordres d'un volume plus important devraient s'ouvrir. Juste après la clôture de chaque commande individuelle. Par exemple, à 12 heures, un ordre a été clôturé au prix de 1,2000.

A 12 heures, immédiatement au prix de 1.2000, un ordre plus important est ouvert. C'est ainsi que cela se passe dans tous les ordres. Et après la clôture de la commande d'un volume plus important par un SL, nous devrions mémoriser l'heure de son ouverture en réponse à la clôture de laquelle il a été ouvert. Autrement dit, si l'ordre a été ouvert à 12h00 au prix de 1,200 et clôturé par un stop, alors l'ordre à grand volume s'ouvre à 12h00 au prix de 1,2000. Si l'ordre de plus grand volume a été clôturé par un SL , rappelez-vous l'heure d'ouverture de l'ordre de plus petit volume, c'est-à-dire 12 heures.

Et ainsi après chaque commande de plus grand volume qui n'était fermée que sur SL.


Et encore un détail.... Par exemple, le 1er ordre a été fermé avec 0,1 lot, le 2ème ordre a été ouvert avec 0,3 lot. Nous nous sommes souvenus de l'heure d'ouverture de la première commande. Ensuite le 2ème ordre a été fermé par un stop et nous avons mémorisé l'heure d'ouverture du 2ème ordre et fixé un ordre avec 0.9 lot. Et ainsi de suite. Ai-je bien compris ? Devons-nous toujours nous souvenir du moment de la première commande uniquement ?
 
Bonjour. Pourquoi la paire de deviseseuro vs usdaffiche-t-elle149.16325 au lieu de 1.0616 ?


 
sidovi:
Bonjour. Pourquoi la paireeuro vs usd est-elle affichéeà 149.16325 au lieu de 1.0616 ?



Essayez de mettre à jour les citations. Service - Quote Archive - Sélectionnez votre paire de devises - Chargement.

Si cela n'aide pas, réinstallez le metatrader.

 
Valerius:

Eh bien et encore une clarification.... Par exemple, le 1er ordre a été fermé avec 0,1 lot, le 2ème ordre a été ouvert avec 0,3 lot. Nous nous sommes souvenus de l'heure d'ouverture de la première commande. Ensuite le 2ème ordre a été fermé par un stop et nous avons mémorisé l'heure d'ouverture du 2ème ordre et placé l'ordre avec 0.9 lot. Et ainsi de suite. Ai-je bien compris ? Nous devons seulement nous souvenir de l'heure de la première commande ?

Tous les ordres plus importants ne seront ouverts qu'avec un volume de 0,3 lot. Tous les ordres d'un volume inférieur qui sont ouverts en réponse à une clôture sur le SL dans le volume de 0,3 lot s'ouvriront dans le volume de 0,1 lot. Seulement 0,1 et 0,3. Il n'y a pas d'autres volumes.

Lors de la clôture d'un ordre de 0,3 lot par le SL, veuillez vous rappeler l'heure à laquelle l'ordre a été ouvert en réponse à la clôture de laquelle il a été ouvert (c'est-à-dire un ordre de 0,1 lot).

Merci pour votre aide.

Pouvez-vous me dire où se trouve l'option permettant d'envoyer un message à mon adresse électronique lorsqu'il y a une réponse à mon message.

Encore une fois, merci beaucoup.