Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 656

 
evillive:

Le problème ne concerne pas les débutants, pour être honnête. Il est nécessaire de sauvegarder tout ce qui se trouve sur le graphique dans un modèle, puis d'ajouter à ce modèle l'indicateur requis avec tous les paramètres et de charger un nouveau modèle sur le graphique. La sauvegarde et le chargement du modèle sont possibles au moyen de MQL, mais pour éditer le fichier du modèle, vous devez probablement écrire une DLL, je ne suis pas sûr que le script personnalisé ait accès à l'écriture des fichiers du modèle.

Opérations avec les graphes

Fonctions permettant de travailler avec des graphiques. Toutes les opérations graphiques sont applicables uniquement aux conseillers experts et aux scripts.

Les fonctions qui définissent les propriétés du graphique servent en fait à lui envoyer les commandes de modification. Si ces fonctions sont exécutées avec succès, la commande est placée dans la file d'attente des événements généraux du graphique. La modification de la carte est effectuée lors du traitement de la file d'attente des événements de la carte donnée.

Pour cette raison, il ne faut pas s'attendre à une mise à jour visuelle immédiate du graphique après l'appel des fonctions. En général, le graphique est mis à jour automatiquement par le terminal en fonction des événements de changement - arrivée d'une nouvelle cotation, modification de la taille de la fenêtre du graphique, etc. Pour la mise à jour forcée de l'apparence du graphique, utilisez la commande ChartRedraw().

Fonction

Action

ChartApplyTemplate

Applique au graphique spécifié un modèle provenant du fichier spécifié.

ChartSaveTemplate

Enregistre les paramètres actuels du graphique dans un modèle portant le nom spécifié.

ChartWindowFind

Renvoie le numéro de la sous-fenêtre dans laquelle se trouve l'indicateur.

ChartTimePriceToXY

Convertit les coordonnées du graphique de la représentation temps/prix en coordonnées X et Y.

ChartXYToTimePrice

Convertit les coordonnées X et Y du graphique en valeurs de temps et de prix.

ChartOpen

Ouvre un nouveau graphique avec le symbole et la période spécifiés.

ChartFirst

Retourne l'identifiant du graphique qui suit celui spécifié.

ChartNext

Retourne l'ID du premier graphique du terminal client

ChartClose

Ferme le graphique spécifié

ChartSymbol

Retourne le nom du symbole graphique spécifié

Période du graphique

Retourne la valeur de la période de l'objet spécifié

 
Vinin:

Opérations avec les graphes


Oui, oui exactement. Où se trouve l'édition du modèle (ou l'ajout d'un indicateur, comme dans MT5) ? Non. Donc la DLL est nécessaire, n'est-ce pas ? Ou existe-t-il d'autres méthodes pour ajouter un indicateur à un graphique MT4 que l'édition de modèles ?


La question portait sur l'ajout d'un indicateur à l'aide d'un conseiller expert, ici

 
evillive:

Pour être honnête, cette tâche n'est pas destinée aux débutants. Il est nécessaire de sauvegarder tout ce qui se trouve sur le graphique dans un modèle, puis d'ajouter l'indicateur requis avec tous les paramètres à ce modèle et de charger un nouveau modèle sur le graphique. La sauvegarde et le chargement du modèle sont possibles au moyen de MQL, mais pour éditer le fichier modèle, vous devez probablement écrire une DLL, je ne suis pas sûr que le script personnalisé ait accès à l'écriture des fichiers modèles.

Que se passe-t-il si j'ouvre les indicateurs requis dans une fenêtre séparée, que j'enregistre le tout dans un modèle, puis que je lance le programme dans un graphique "vide" et que j'ouvre ce modèle ?
 
waroder:

Et si j'ouvre les indicateurs dont j'ai besoin dans une fenêtre séparée, que j'enregistre le tout dans un modèle, que je lance ensuite le programme sur un graphique "vide" et que j'ouvre ce modèle, est-ce que tous les indicateurs s'ouvriront également ? ou dois-je prescrire l'ouverture des indicateurs dans le modèle lui-même ?

Après avoir appliqué le modèle, tous les indicateurs seront automatiquement attachés à la fenêtre graphique donnée.
 
barabashkakvn:

Après avoir appliqué le modèle, tous les indicateurs seront automatiquement attachés à cette fenêtre graphique.


oceans) got it) thanks, others

 
waroder:

Que se passe-t-il si j'ouvre les indicateurs dont j'ai besoin dans une fenêtre séparée, que j'enregistre le tout dans un modèle. Ensuite, je lance le programme sur un graphique "vide" et j'ouvre ce modèle. tous les indicateurs s'ouvriront également ? ou dois-je prescrire l'ouverture des indicateurs dans le modèle lui-même ?
vous devez également ajouter le prog au modèle, sinon il sera déchargé lors du chargement du modèle lui-même, car il n'y est pas prescrit. C'est d'ailleurs une bonne méthode pour désactiver un EA ;)
 
Envoyez-moi un indicateur qui émet un bip lorsque deux voitures se croisent)
 

Question 1 - Dans les nouvelles versions des paramètres externes de l'EA (ME5 Build 934 ; MT4 Build 646), les commentaires sont affichés à la place des noms de variables. Comment s'en débarrasser ? Ne me suggérez pas de ne pas écrire de commentaires - j'en ai besoin (voir question 2).

Question 2 - D'après ce que j'ai compris, les commentaires sont destinés au programmeur lui-même pour qu'il puisse écrire ses pensées, ses notes et autres pendant l'écriture du code. Si c'est le cas (et c'est ce qu'on enseigne dans les livres et les cours), alors c'est une tâche unique. Et on nous apprend : une fonction - une tâche. Par conséquent, lorsque cette tâche a une autre tâche - c'est exactement le jeu de mots pour ce qui est fait dans les nouvelles constructions - nous obtenons une vinaigrette. - Est-ce que c'est la bonne chose à faire ? Sinon, comment puis-je écrire mes commentaires, dont j'ai besoin, et je ne veux pas du tout que quelqu'un d'autre les voie. Parce que si mes commentaires sont reflétés dans le public, alors quel genre de commentaires sont-ils ? C'est une tâche complètement différente.

Nous avons donc deux tâches différentes : "commenter pour moi-même tout en écrivant du code" et "décrire les variables externes".

Il semble que pour la nouvelle tâche "description des variables externes", une autre option indépendante du compilateur devrait être allouée. Ou au moins faire en sorte que cette option soit le choix de l'utilisateur (bien que cela soit déjà en contradiction avec les principes de base de la programmation).

Si je me trompe, corrigez-moi.

 
Chiripaha:

Question 1 - Dans les paramètres externes de l'EA dans les nouveaux builds (ME5 Build 934 ; MT4 Build 646), les commentaires sont affichés à la place des noms de variables. Comment s'en débarrasser ? Ne me suggérez pas de ne pas écrire de commentaires - j'en ai besoin (voir question 2).

Question 2 - D'après ce que j'ai compris, les commentaires sont destinés au programmeur lui-même pour qu'il puisse écrire ses pensées, ses notes et autres pendant l'écriture du code. Si c'est le cas (et c'est ce qu'on enseigne dans les livres et les cours), alors c'est une tâche unique. Et on nous apprend : une fonction - une tâche. Par conséquent, lorsque cette tâche a une autre tâche - c'est exactement le jeu de mots pour ce qui est fait dans les nouvelles constructions - nous obtenons une vinaigrette. - Est-ce que c'est la bonne chose à faire ? Sinon, comment puis-je écrire mes commentaires, dont j'ai besoin, et je ne veux pas du tout que quelqu'un d'autre les voie. Parce que si mes commentaires sont reflétés dans la publicité, alors quel genre de commentaires sont-ils ? C'est une tâche complètement différente.

Nous avons donc deux tâches différentes : "commenter pour moi-même tout en écrivant du code" et "décrire les variables externes".

Il semble que pour la nouvelle tâche "description des variables externes", une autre option indépendante du compilateur devrait être allouée. Ou, du moins, que cette option soit laissée au choix de l'utilisateur (bien que cela soit déjà en contradiction avec les principes de base de la programmation).

Si je me trompe, corrigez-moi.


Il est donc pratique que les variables externes puissent être rendues plus lisibles pour soi-même et/ou pour les utilisateurs.

Et pour que les commentaires sur les variables externes ne soient pas visibles (visibles uniquement dans le code), vous pouvez simplement les écrire sur une deuxième ligne.

Ainsi, par exemple, au lieu de :

input double AbcD=1.2345;//Хочу профит на отметке:

le transformer en deux lignes :

input double AbcD=1.2345;
//Желаемый уровень профита

Dans le premier cas, au lieu de Abcd, les variables externes afficheraient :"Je veux faire des profits à : 1.2345",

dans le second :"AbcD 1.2345"

 
DiPach:

Il est pratique de pouvoir rendre les variables externes plus lisibles pour vous et/ou vos utilisateurs.

Et pour que les commentaires sur les variables externes ne soient pas affichés (uniquement visibles dans le code), vous pouvez simplement les écrire sur une deuxième ligne.

Ainsi, par exemple, au lieu de :

le transformer en deux lignes :

Dans le premier cas, au lieu de Abcd, les variables externes afficheraient :"Je veux faire des profits à : 1.2345",

dans le second cas :"AbcD 1.2345".


Oui, ça ne me dérange pas du tout, ce qui est pratique. D'ailleurs, je comprends ce qu'ils voulaient réaliser. Mais vous ne pouvez pas mettre en œuvre une tâche tout en tuant une autre.

Il est moins pratique d'écrire en 2 lignes, car s'il y a 5-10 variables, on peut le supporter (mais, encore une fois, pourquoi le supporter ?). Mais que se passe-t-il s'il y a environ 200 de ces variables ? Dans ce cas, la taille du code sera beaucoup plus importante.
En revanche, si c'est une autre option, vous devrez encore augmenter la taille du code au détriment de la description de la variable. Ainsi, la solution que vous proposez est peut-être plus optimale et plus concise que l'introduction de la deuxième option. Je suis prêt à accepter.

Si je devine bien, la traduction du chariot est une contrainte pour la description des variables ?

Et j'ai une question supplémentaire :

Serait-il possible de rendre les descriptions disponibles de manière facultative dans plusieurs langues au choix ? Ce serait encore plus pratique. : )) Dans ce cas, il est préférable de faire une option de toute façon, plutôt que d'utiliser les commentaires habituels pour la description.

Au fait. Ces descriptions de variables sont de toute façon peu affichées dans la boîte de dialogue des options, car la taille des colonnes ne conserve pas d'étirement et laplupart de la description est "mangée" par l'étroitesse de la colonne de description. Mais il y a un espace déraisonnable pour les valeurs variables. Donc, nous avons voulu l'améliorer... Mais c'est aussi un pas en avant. : ))

Raison: