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

 
Sergey Gritsay:

Il y a beaucoup d'exemples dans CodeBase, recherchez Expert Advisors on pending orders et voyez comment le code est écrit.

J'ai cherché dans leCodeBase pendant environ une heure et je n'ai rien trouvé de compréhensible. C'est trop compliqué pour moi. Les codes sont trop volumineux et incompréhensibles pour moi, alors que tout ce dont j'ai besoin est un couple de codes de 4-6 lignes. Merci pour la réponse, mais elle ne convient pas.
 
maxon777:

J'ai cherché un exemple dansun ordre en attente lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,7777, alors ouvrir un ordre en attente)

2) Fermez l'ordre (ordre au marché) lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,6666, alors fermez l'ordre).

Obtenir une réponse à 4-6 lignes de code ?

Faites-vous partie de ces traders qui écrivent : "Qu'y a-t-il à faire ? Il suffit de quelques lignes... Qu'est-ce que c'est, cent livres ?"

Soyons clairs :

Vous devez d'abord déterminer que le prix a atteint 0,7777. A-t-il atteint le sommet ? Le fond ? Est-il possible que le tick précédent soit, par exemple, 0.7776 et que le tick actuel soit devenu 0.7778 ? Dans ce cas, le prix ne sera pas égal à la valeur de 0,7777. Vous devez donc vérifier que la valeur passée et la valeur actuelle correspondent à la valeur requise. En conséquence, vous devez stocker la valeur du tick précédent et connaître la valeur du tick actuel. Cela signifie que vous avez besoin d'une fonction pour obtenir la valeur du tick et la stocker, afin d'avoir quelque chose à quoi la comparer plus tard - trois prix : le tick précédent, le tick actuel et le prix croisé lui-même.

Plus loin. Nous devons savoir dans quelle direction le prix va franchir la valeur nécessaire et, en conséquence, nous devons définir le type d'ordre en attente nécessaire au prix nécessaire.

Pour le définir, nous devons calculer le prix défini à partir du prix actuel, comparer la distance obtenue de la définition de l'ordre en attente avec la valeur du StopLevel et si la distance obtenue est inférieure à cette valeur, alors : a) Corriger la distance de définition de l'ordre afin de ne pas atteindre l'erreur 130 et définir l'ordre ou b) attendre jusqu'à ce que la distance de définition dépasse le StopLevel (avec le spread flottant que nous devrions également recevoir à chaque tick) et voir si le prix franchit déjà le niveau prédéfini et s'il est sur la valeur correcte - c'est-à-dire si le niveau d'arrêt est défini, nous pouvons définir l'ordre.е., il s'est éloigné de ce niveau pour passer une commande ou le train est déjà parti.

Vous devez également calculer les valeurs stop et take d'un ordre en attente qui ne doivent pas être inférieures à StopLevel (corrigez-les si nécessaire).
Si tous les contrôles ont été passés, un ordre doit être envoyé au serveur pour définir un ordre en attente, obtenir une réponse - si la réponse contient une erreur, la traiter (une autre fonction est nécessaire)...

Ceci est pour les ordres en cours.

Le processus est à peu près le même pour la fermeture d'une position - identifier le croisement, envoyer un ordre de transaction et gérer la réponse du serveur en cas d'erreur.


Si vous arrivez à tenir 4 à 6 lignes pour tout cela, alors ...vous obtiendrez une médaille dans l'entrepôt... ;)

 
Je pense qu'après cette explication, il y a un programmeur novice de moins )))).
 
Andrey Koldorkin:
Je pense qu'après cette explication, il y a un programmeur novice de moins )))).
 

Les gars, ce que le (.e) dans valuta est s'il vous plaît expliquer

 
la section de code dont vous avez besoin est un stop suiveur multidevises fiable qui commence avec un point d'équilibre défini et un recul défini par rapport au prix.
 
Vitaliy29:
vous avez besoin d'une section de code - un stop suiveur multidevises fiable qui commence par un seuil de rentabilité défini et un retrait défini par rapport au prix.

Regardez celui-là, http://www.kimiv.ru/index.php?option=com_remository&Itemid=13&func=fileinfo&id=62

Автоматизация торговли на финансовых рынках - Скачать e-Trailing2.rar
  • www.kimiv.ru
Оглавление файлового архива  Разработки на MQL4 Советники   Новая улучшенная бесплатная версия "кимовского трала". Добавлен параметр Magic, позволяющий более гибко отбирать сопровождаемые позиции, а также разделены параметры трала для покупок и продаж. Кроме того, вместо параметра ProfitTrailing теперь используется TrailingStart. Это почти то...
 
Artyom Trishkin:

Vous voulez répondre à cette question :

1) ouvrir un ordre en attente lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,7777, alors ouvrir un ordre en attente)

2) Fermez l'ordre (ordre au marché) lorsqu'il a atteint une valeur quelconque (c'est-à-dire si le prix est de 0,6666, alors fermez l'ordre).

Obtenir une réponse à 4-6 lignes de code ?

Faites-vous partie de ces traders qui écrivent : "Qu'y a-t-il à faire ? Il suffit de quelques lignes... Qu'est-ce que c'est, cent livres ?"

Soyons clairs :

Vous devez d'abord déterminer que le prix a atteint 0,7777. A-t-il atteint le sommet ? Le fond ? Est-il possible que le tick précédent soit, par exemple, 0.7776 et que le tick actuel soit 0.7778 ? Dans ce cas, le prix ne sera pas égal à la valeur de 0,7777. Vous devez donc vérifier que la valeur passée et la valeur actuelle correspondent à la valeur requise. En conséquence, vous devez stocker la valeur du tick précédent et connaître la valeur du tick actuel. Cela signifie que vous avez besoin d'une fonction pour obtenir la valeur du tick et la stocker, afin d'avoir quelque chose à quoi la comparer plus tard - trois prix : le tick précédent, le tick actuel et le prix croisé lui-même.

Plus loin. Nous devons savoir dans quelle direction le prix va franchir la valeur nécessaire et, en conséquence, nous devons définir le type d'ordre en attente nécessaire au prix nécessaire.

Pour le définir, nous devons calculer le prix défini à partir du prix actuel, comparer la distance obtenue de la définition de l'ordre en attente avec la valeur du StopLevel et si la distance obtenue est inférieure à cette valeur, alors : a) Corriger la distance de définition de l'ordre afin de ne pas atteindre l'erreur 130 et définir l'ordre ou b) attendre jusqu'à ce que la distance de définition dépasse le StopLevel (avec le spread flottant que nous devrions également recevoir à chaque tick) et voir si le prix traverse déjà le niveau prédéfini et s'il est sur la valeur correcte - c'est-à-dire si le niveau d'arrêt est défini, nous pouvons définir l'ordre.е., il s'est éloigné de ce niveau pour passer une commande ou le train est déjà parti.

Vous devez également calculer les valeurs Stop et Take pour l'ordre en attente qui, à leur tour, ne doivent pas être inférieures au niveau Stop (corrigez-les, si nécessaire).
Si tous les contrôles ont été passés, un ordre doit être envoyé au serveur pour définir un ordre en attente, obtenir une réponse - si la réponse contient une erreur, la traiter (une autre fonction est nécessaire)...

Ceci est pour les ordres en cours.

Le processus est à peu près le même pour la clôture d'une position : identifier le croisement, envoyer un ordre de transaction et gérer la réponse du serveur en cas d'erreur.


Si vous arrivez à tenir 4 à 6 lignes pour tout cela, alors ...vous obtiendrez une médaille dans l'entrepôt... ;)

"Vous êtes le genre de client qui dit : "Qu'y a-t-il à faire ? C'est juste quelques lignes... Qu'est-ce que c'est, cent livres ?" Non, je ne suis pas une de ces personnes et je ne comprends pas pourquoi vous pensez que je suis un client. Je veux apprendre ce programme parce que j'ai des idées sur l'Expert Advisor, les problèmes dans sa mise en œuvre sont seulement techniques (et je ne conteste pas que les problèmes sont très grands), mais je n'essaie pas de dire quelque chose comme "faites-moi tout le logiciel et qu'il ne fonctionne qu'avec le profit. Au contraire, j'ai commencé par les bases et je veux écrire mon premier conseiller expert. J'ai également écrit que je voulais un exemple très simple, sans tenir compte de tous les détails (même si je comprends qu'ils sont très importants), mais il faut bien commencer quelque part. Je savais qu'il serait douloureux pour un professionnel de regarder ce que je demande, mais je n'ai pas pu m'en empêcher, tant que c'est tout ce que je sais. Je pensais pouvoir écrire un tel code à l'aide de l'opérateur if else et de la fonction OrderSend (OrderClose) et d'autres choses encore, mais je n'y arrive pas. Vous avez écrit beaucoup de termes complexes et m'avez ainsi dit que je suis incapable de faire quoi que ce soit et que je suis un idiot en programmation, mais je le sais quand même. J'espère que vous ne pensez pas que je suis un homme arrogant et que vous comprenez que je veux simplement continuer à apprendre. Mais vous avez aussi raison, j'espère qu'un compromis a été trouvé.
 
maxon777:
"Vous êtes le genre de client qui dit : "Qu'y a-t-il à faire ? C'est juste quelques lignes... Qu'est-ce que c'est, cent livres ?" Non, je ne suis pas une de ces personnes et je ne comprends pas pourquoi vous pensez que je suis un client. Je veux apprendre ce programme parce que j'ai des idées sur l'Expert Advisor, les problèmes dans sa mise en œuvre sont seulement techniques (et je ne conteste pas que les problèmes sont très grands), mais je n'essaie pas de dire quelque chose comme "faites-moi tout le logiciel et qu'il ne fonctionne qu'avec le profit. Au contraire, j'ai commencé par les bases et je veux écrire mon premier conseiller expert. J'ai également écrit que je voulais un exemple très simple, sans tenir compte de tous les détails (même si je comprends qu'ils sont très importants), mais il faut bien commencer quelque part. Je savais qu'il serait douloureux pour un professionnel de regarder ce que je demande, mais je n'ai pas pu m'en empêcher, tant que c'est tout ce que je sais. Je pensais pouvoir écrire un tel code à l'aide de l'opérateur if else et de la fonction OrderSend (OrderClose) et d'autres choses, mais je ne peux pas le faire. Vous avez écrit beaucoup de termes complexes et m'avez ainsi dit que je suis incapable de faire quoi que ce soit et que je suis un idiot en programmation, mais je le sais quand même. J'espère que vous ne pensez pas que je suis un homme arrogant et que vous comprenez que je veux simplement continuer à apprendre. Mais vous avez aussi raison, j'espère qu'un compromis a été trouvé.

Personne ne vous a traité de "pigeon", ce n'est pas vrai. Mais 4-6 lignes de code provoquent aussi, vous savez, la perplexité - parce que si une personne apprend quelque chose, elle doit déjà être en train d'essayer quelque chose, elle a essayé d'écrire quelque chose, et évidemment, elle voit déjà qu'en 4-6 lignes, ça ne va pas.

Montrez-nous ce que vous avez essayé de faire - essayons de comprendre.

Je peux proposer une version alternative, simplifiée - ne pas chercher le franchissement d'un niveau de prix par les ticks, mais le chercher par la MA(1) - alors la MA de la barre 1 et la MA de la barre 0 serviront d'indicateur du franchissement de niveau nécessaire.

 
Sahet.Sh:

Les gars, ce que le (.e) dans valuta est s'il vous plaît expliquer

Cette question s'adresse au courtier. N'hésitez pas à contacter le service d'assistance. Lui seul sait exactement ce que signifient ses suffixes .e. C'est sa décision. En général, les suffixes (ainsi que les préfixes) dans les noms des paires de devises et d'autres instruments peuvent signifier n'importe quoi : ie - exécution instantanée, m - exécution sur le marché, point - cinq chiffres dans une cotation et une commission, _OP - instrument de négociation d'options binaires,... Mais bien sûr, il ne s'agit que de la décision du courtier, c'est lui qui est l'autorité finale pour connaître la signification des désignations qu'il a introduites.
Raison: