[ARCHIVE]Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Je ne peux aller nulle part sans toi - 5. - page 190
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Sergey Dubakin a gentiment proposé la fonction CloseBy, mais malheureusement elle ne remplit pas une condition importante pour moi, à savoir fermer une position avec une perte maximale par une position opposée avec un profit maximal.
Bonjour, cette fonction ferme une position avec une perte maximale avec la position opposée avec un profit maximal. Voici une EA de test pour le testeur :
Il ouvre alternativement des positions d'achat et de vente lorsqu'une nouvelle barre de 4 heures apparaît et effectue une fermeture opposée lorsqu'un nouveau jour s'ouvre.
Bonjour, la fonction ferme la position avec la perte maximale avec la position opposée avec le profit maximal. Voici une EA de test pour le testeur :
Il ouvre alternativement des positions d'achat et de vente lorsqu'une nouvelle barre de 4 heures apparaît et effectue une fermeture opposée lorsqu'un nouveau jour s'ouvre.
OK, je l'ai maintenant. Si le prix de la barre actuelle atteint Open[0] + 30, alors nous ouvrons. Si la barre s'est terminée, Open[0] a été modifié et le niveau d'ouverture est décalé en conséquence. Il ne devrait y avoir qu'une seule transaction sur le marché, non ?
Alors c'est comme ça :
Il n'est pas nécessaire de suivre la nouvelle barre, car lorsqu'elle se forme, le système ajoute automatiquement une nouvelle valeur à Open[0] et cela signifie que le nouveau niveau sera calculé correctement. Veuillez noter que l'opération d'achat est ouverte au cours vendeur actuel, tandis qu'elle est fermée (TP et SL) au cours acheteur. En outre, les valeurs des prix doivent être normalisées.
Merci beaucoup pour votre aide.
Mais ouvre des trades dans le testeur sur chaque bougie minute. L'information est dans ce lien http://clip2net.com/s/2T98Y
Je veux qu'il ouvre un ordre sur un chandelier de cinq minutes, mais pas sur chaque chandelier.
Mais seulement si le chandelier actuel de cinq minutes est > ou = 30 pips (du prix ouvert à son maximum).
C'est-à-dire, ouvrir un ordre au marché sur le trentième point à partir du prix d'ouverture de la bougie de cinq minutes zéro=actuelle.
Et si la période actuelle de cinq minutes entre le prix d'ouverture et son maximum est inférieure à 30 points, nous ne devons pas ouvrir un ordre de marché.
C'est-à-dire que les ordres seront un peu, j'ai compté dans Excel, depuis 1999 - un peu plus de 3000 sur euro-dollar dans les deux sens.
Nous passons à la période de cinq minutes suivante et si celle-ci, c'est-à-dire la période de cinq minutes en cours > ou = 30 pips, alors nous ouvrons au trentième pips, si moins, nous passons à la période de cinq minutes suivante ... et ainsi de suite jusqu'à la fin du graphique.
Mais le fait est que, selon une estimation approximative, la plupart des pentaminos qui > ou = 30 pips dépassent 15 pips plus souvent qu'ils ne sont fermés par un stop de 30 pips.
Votre condition est "aucun ordre ouvert".
Mais dans mon système, deux périodes de cinq minutes avec les paramètres décrits ci-dessus peuvent être formées à la suite et si l'ordre de la période de cinq minutes précédente n'est pas fermé, alors aucun ordre ne sera ouvert à la deuxième période de cinq minutes.
J'ai besoin qu'un ordre soit ouvert à chaque période de cinq minutes avec les paramètres décrits ci-dessus, qu'il y ait ou non des ordres dans la transaction.
C'est ça, je l'ai maintenant. Si le prix de la barre actuelle atteint Open[0] + 30, alors nous ouvrons. Si la barre s'est terminée, Open[0] a été modifié et le niveau d'ouverture est décalé en conséquence. Il ne devrait y avoir qu'une seule transaction sur le marché, non ?
Alors c'est comme ça :
Il n'est pas nécessaire de suivre la nouvelle barre, car lorsqu'elle se forme, le système ajoute automatiquement une nouvelle valeur à Open[0] et cela signifie que le nouveau niveau sera calculé correctement. Veuillez noter que l'opération d'achat est ouverte au cours vendeur actuel, tandis qu'elle est fermée (TP et SL) au cours acheteur. En outre, les valeurs des prix doivent être normalisées.
Et vous avez également une deuxième condition - si le prix de clôture des cinq minutes en cours >= prix d'ouverture de l'ordre.
Mais dans mon idée, le prix de clôture de la période de 5 minutes en cours peut être n'importe quel prix, tant que son High est > ou = 30 pips.
Close[0]>=Price
Bonjour Sergei, j'ai un algorithme différent ! C'est le problème, cette fonction ferme ce qu'elle a et je veux qu'elle ferme les maximums, pas n'importe lesquels ! Eh bien, rien, je vais le finir moi-même si personne ne m'aide ! Votre version est seulement bonne pour le testeur, donc ajoutée à l'en-tête selon les règles. Fonctionne sans erreur, mais ne sélectionne pas le maximum ! Dans tous les cas, merci pour votre aide !
Comment le voulez-vous ? Celle que j'ai postée détermine la position la moins rentable dans la devise de dépôt(en argent), puis détermine la position opposée la plus rentable également dans la devise de dépôt et effectue une contre-fermeture.
J'ai implémenté des fonctions déterminant le maxloss GetMaxLoss() et le maxprofit GetMaxProfit() mais je n'arrive pas à faire en sorte que la fonction LockOFF() sélectionne une paire spécifiée par moi et pas n'importe laquelle. S'il vous plaît, montrez-moi à quel endroit mettre mes maxima, et peut-être ai-je besoin de plus de fonctions pour déterminer le ticket ou l'index de ces positions, alors ce n'est pas un problème pour moi, mais où mettre tout cela dans ce LockOFF() ? Merci !
La fonction a tout : elle définit la perte maximale, le profit maximal, le ticket est également défini.
Comment le voulez-vous ? Celui que j'ai posté, détermine la position la moins rentable dans la devise de dépôt (en argent), puis détermine la position opposée la plus rentable également dans la devise de dépôt et effectue une contre-fermeture.
La fonction a tout : définition de la perte maximale, du profit maximal, le ticket est également défini.
Vous vous trompez ! Vous avez probablement la seule paire de positions opposées, alors que j'en ai peut-être plus, car j'ai affiché toutes les données dans les commentaires et je vois qu'elle ne ferme pas maxiLoss maxiProfit, mais l'une des premières qui apparaissent dans la recherche. Et mes fonctions montrent clairement les indices de position avec les pertes et les profits maximaux. Il me suffit d'ajouter ces vérifications à LockOFF() !
https://www.mql5.com/ru/code/7835 Il ne s'agit que d'un indicateur. Vous devez utiliser des objets dans un EA.
Avez-vous regardé l'EA de test pour la fonction dans le testeur ? Il clôture exactement la perte maximale avec le profit maximal, quel que soit le nombre d'ordres - deux ou vingt.
Merci beaucoup pour votre aide.
Mais ouvre des trades dans le testeur sur chaque bougie minute. Info. dans ce lien http://clip2net.com/s/2T98Y
Je veux qu'il ouvre un ordre sur la bougie de 5 minutes, mais pas sur chaque bougie.
Et seulement si le chandelier actuel de cinq minutes est > ou = 30 points (du prix d'ouverture à son maximum)
C'est-à-dire, ouvrir un ordre au marché au trentième pip du prix d'ouverture de la période de cinq minutes zéro=actuelle.Si le chandelier actuel de cinq minutes est à moins de 30 pips du prix d'ouverture à son maximum, alors n'ouvrez pas d'ordre de marché.
Il suffit de déposer l'EA sur le graphique de cinq minutes, il sera comme vous l'avez écrit.
Ou substituez partout dans le code Open[0] pour iOpen(Symbol (), PERIOD_M5, 0), alors cela fonctionnera à partir de n'importe quel graphique.
La deuxième condition dans votre code est que le prix de clôture de la période de cinq minutes en cours >= prix d'ouverture de l'ordre.
C'est-à-dire qu'il n'y aura pas beaucoup d'ordres, j'ai calculé dans Excel, depuis 1999 - un peu plus de 3000 ordres pour l'euro dans les deux sens.
On passe au cinq minutes suivant et si celui-ci, c'est-à-dire le cinq minutes actuel > ou = 30 pips, on ouvre au trentième pips, si moins, on passe au cinq minutes suivant ... et ainsi de suite jusqu'à la fin du graphique.
Mais le fait est que, selon une estimation approximative, la plupart des plans de cinq minutes qui > ou = 30 pips ont beaucoup plus de chances de dépasser 15 pips que d'être fermés par un stop de 30 pips.
Vous avez une condition - s'il n'y a pas d'ordres ouverts
Mais dans mon système, deux périodes de cinq minutes avec les paramètres décrits ci-dessus peuvent être formées à la suite et si l'ordre de la période de cinq minutes précédente n'est pas fermé, alors aucun ordre ne sera ouvert à la deuxième période de cinq minutes.
J'ai besoin qu'un ordre soit ouvert à chaque période de cinq minutes avec les paramètres décrits ci-dessus, qu'il y ait ou non des ordres dans la transaction.
Ok, alors changeons la condition. Alors ça sort :