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

 
Alexey Viktorov:

Avec quoi tapez-vous tant de lignes de code ? Voici l'un de mes derniers EA, travaillant avec un ensemble de titres sur FORTS

Autant de titres seront inscrits sur cette liste, autant de titres seront négociés. Et cet EA avec contrôle de deux délais de négociation, avec trailing et bien sûr avec analyse, seulement 326 lignes.

Si vous voulez utiliser le switch, vous ne devez pas ajouter l'ouverture de position dans chaque variante. Il suffit de spécifier le nom du symbole, le type d'opération commerciale et le numéro d'identification de l'opération.

Mais il serait préférable, à mon avis, de tout regrouper dans une fonction définie par l'utilisateur.

Merci. Mais ce n'est pas qu'il soit intolérant, c'est juste que c'était ma première version d'écriture et, à mon avis, plus polyvalente. Vous pourriez ajouter toutes sortes de méthodes d'analyse et ne pas écrire dans chaque ouverture d'ordre, simplement parce que ce ne serait pas nécessaire et vous concentrer sur l'analyse et les nouvelles fonctions, au lieu d'écrire la même chose. Je ne sais pas comment je l'ai fait tenir en plus de 300 lignes, je ne suis pas si avancé dans cette langue. Au final, j'ai tout écrit dans chaque fonction et je suis arrivé à 1050 lignes sans prendre en compte tout le reste, comme le calcul du lot, le trailing, etc. Le Conseiller Expert ne peut ouvrir des transactions que sur 7 paires simultanément en considérant les conditions d'ouverture, et c'est tout en principe. Ensuite, je veux écrire une nouvelle fonction et je dois prescrire l'ouverture des ordres encore et encore et encore, au lieu de l'écrire une fois et de l'utiliser. Le stop suiveur fonctionne tout le temps et modifie tous les ordres ouverts, mais il est écrit une fois, alors pourquoi ne pas écrire une seule fonction pour les ordres ouverts et l'utiliser pour tout type d'analyse. Ce n'est pas encore clair pour moi.
 
Denis Diakonov:
Merci. Mais ce n'est pas si intolérant, c'est juste que c'était ma première variante d'écriture et, à mon avis, elle est plus universelle. Nous pourrions ajouter toutes sortes de méthodes d'analyse et ne pas écrire une ouverture de commande dans chacune d'entre elles, simplement parce que ce ne serait pas nécessaire et nous concentrer sur l'analyse et les nouvelles fonctions au lieu d'écrire la même chose. Je ne sais pas comment je l'ai fait tenir en plus de 300 lignes, je ne suis pas si avancé dans cette langue. Au final, j'ai tout écrit dans chaque fonction et je suis arrivé à 1050 lignes sans prendre en compte tout le reste, comme le calcul du lot, le trailing, etc. Le Conseiller Expert ne peut ouvrir des transactions que sur 7 paires simultanément en considérant les conditions d'ouverture, et c'est tout en principe. Ensuite, je veux écrire une nouvelle fonction et je dois prescrire l'ouverture des ordres encore et encore et encore, au lieu de l'écrire une fois et de l'utiliser. Le stop suiveur fonctionne tout le temps et modifie tous les ordres ouverts, mais il est écrit une fois, alors pourquoi ne pas écrire une seule fonction pour les ordres ouverts et l'utiliser pour tout type d'analyse. Ce n'est pas encore clair pour moi.

Si vous avez plus d'un symbole en service, l'option la plus efficace est de travailler avec une fonction personnalisée. Pour chaque symbole, dans ma variante, la fonction analyse l'ouverture à partir du tableau et si la fonction d'analyse retourne vrai, elle appelle la fonction pour ouvrir un ordre. Une fonction analyse la situation pour tous les symboles un par un et ouvre des ordres pour le symbole avec un signal. Le nombre de symboles dans le tableau n'a pas d'importance. Nous avons reçu un signal, ouvert un ordre, retourné dans le tableau des symboles, vérifié le suivant. Et ainsi de suite...

 
Alexey Viktorov:

Si vous avez plus d'un symbole en service, l'option la plus efficace est de travailler avec une fonction personnalisée. Pour chaque symbole, dans ma variante, la fonction analyse l'ouverture à partir du tableau et si la fonction d'analyse retourne vrai, elle appelle la fonction pour ouvrir un ordre. Une fonction analyse la situation pour tous les symboles un par un et ouvre des ordres pour le symbole avec un signal. Le nombre de symboles dans le tableau n'a pas d'importance. Nous avons reçu un signal, ouvert un ordre, retourné dans le tableau des symboles, vérifié le suivant. Et ainsi de suite...

C'est une bonne option.
De cette façon, il sera encore plus pratique et le code est plus compact, en outre, la possibilité d'appeler la fonction d'ouverture d'ordre sera fournie pour tout type d'analyse de marché ajouté. Le but était de trouver un moyen de ne pas écrire constamment le même code, et donc, votre proposition est digne d'attention ! Merci !
 
Denis Diakonov:
C'est une bonne chose.
De cette façon, ce sera encore plus pratique et le code sera plus compact, de plus la possibilité d'appeler la fonction d'ouverture des ordres sera ouverte pour tout type d'analyse de marché supplémentaire. L'objectif était de trouver un moyen d'éviter d'écrire constamment le même code, et donc votre proposition est digne d'attention ! Merci !

Alexey vous dit des trucs standards...

 
Artyom Trishkin:

Alexei vous dit les choses habituelles...

La norme est qu'il y a un code distinct pour chaque jour. )))))

 
 
Artyom Trishkin:

Alexei vous dit les choses habituelles...

J'en suis à ma troisième semaine avec cette langue.

Depuis 2008, mais c'est seulement maintenant que j'essaie d'écrire quelque chose.

 

Bonjour @Artyom Trishkin ,

J'ai du mal à résoudre la logique. S'il vous plaît, aidez-moi à le faire. Voici un lien vers mon fil de discussion : https://www.mql5.com/ru/forum/350570

J'espère avoir de vos nouvelles plus tard.

 

Calculer le prix médian sur un intervalle donné avec un nombre donné d'approximations.

Bonjour Il y a un tableau de valeurs.

La tâche consiste à écrire une fonction.

Paramètres d'entrée :

- le tableau contient les numéros des éléments nécessaires au calcul de la médiane - bufInBar[]

- taille du tableau -bufInBar[] - count

- nombre d'approximations de la médiane - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

C'est-à-dire qu'il existe une classe

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

En sortie :

BP[bufInBar[i]].Mediana; 

Rempli par ordre croissant, par exemple de 0 à 10.

C'est-à-dire que sifokus=10 dans la condition, alors à l'intervalle i<count, dix valeurs

BP[bufInBar[i]].Mediana;

sera de 1 à 10.

Par exemple

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...

Prêt à transférer 12 $ du compte

 
Mikhail Toptunov:

Calculer le prix médian sur un intervalle donné avec un nombre donné d'approximations.


Prêt à transférer du compte 12

tu sais que pour quelque chose comme çahttps://www.mql5.com/ru/job

et ici - si vous avez commencé à le faire vous-même, mais que cela n'a pas marché ou n'est pas clair

Торговые приложения для MetaTrader 5 на заказ
Торговые приложения для MetaTrader 5 на заказ
  • www.mql5.com
Доработать существующий советник, чтобы он осуществлял выходы из сделок по виртуальному тейк-профиту на основе слежения за мультитаймфрейменным боллинжер бендз. Советник должен следовать за линиями боллинжера и выходить по указанному алгоритму Здравствуйте, нужно создать Программу для сравнения данных и отображения их. Данные надо будет брать с...
Raison: