Souhaits pour le MQL5 - page 99

 
Henry_White >> :

Ce que j'aimerais voir dans les prochaines versions :

  1. Possibilité d'exécuter ses procédures en dehors du contenu du tick handler (pour MT4, il s'agit de start()). (par exemple, dans une piste séparée, pour le calcul de statistiques, l'optimisation, etc,)
  2. Les fonctions les plus simples pour la manipulation de la souris. Par exemple, lors de l'événement "OnClick", il est possible d'obtenir les coordonnées du pointeur dans la dimension MT (sur X - l'indice de la barre, sur Y - la coordonnée y de la fenêtre actuelle).

1. Qu'est-ce qui l'empêche maintenant ?

2. Dans MQL5, les EA seront capables de gérer les événements de fenêtre (EMNIP).

 
TheXpert >> :

1. Qu'est-ce qui vous gêne en ce moment ?

Si vous savez comment faire, je vous serais très reconnaissant si vous pouviez partager cette compétence/connaissance.

 
TheXpert >> :

2. Dans MQL5, les Expert Advisors seront capables de gérer les événements de la fenêtre (EMMNIP).

Le gestionnaire d'événement ChartEvent ne sera disponible que dans les EAs, d'ailleurs... Une drôle de discrimination !) Je pense que la nécessité est la même pour les indicateurs (les Expert Advisors n'en ont pas besoin).

 
Henry_White >> :

Si vous savez comment faire, je vous serais très reconnaissant si vous pouviez partager cette compétence/connaissance.

Pas comme deux doigts sur l'asphalte, mais vous pouvez. Connecter la dll, appeler les calculs dans un nouveau thread - WinAPI sera utile ici, terminaison par timer ou callback.

Henry_White >> :

Le gestionnaire d'événements ChartEvent ne sera disponible que dans les Expert Advisors, d'ailleurs... Une étrange discrimination.)

Je n'aime pas ça non plus. Mais maintenant, les indices ne sont pas liés au graphique.

 
TheXpert >> :

Pas comme deux doigts sur l'asphalte, mais c'est possible. Connecter la dll, effectuer les calculs dans un nouveau thread - WinAPI sera utile ici, terminer par un timer ou un callback.

J'ai pensé à la variante DLL, mais je ne vois pas très bien comment obtenir un accès CORRECT aux séries temporelles, plus les valeurs de plus de 10 indicateurs différents, et tout cela à une profondeur décente sur l'historique. Et si nous considérons que le temps de calcul prend plus d'une minute (je travaille avec des minutes), alors il n'est absolument pas clair, où les pointeurs DLL se référeront après avoir ajouté une nouvelle barre dans le terminal du client. Et nous devons également renvoyer quelques dizaines de paramètres calculés et ajouter divers graphiques à la série de prix. Ce n'est pas anodin, tout compte fait...

Après avoir examiné tout cela et estimé le temps que je passerais à faire des expériences et à effectuer diverses vérifications et débogages, j'ai écrit un traitement des clusters temporels en MQL... Ça marche, mais... C'est pas sympa. Mais mon âme l'exige ! ))) Et nous sommes déjà au 21ème siècle... Et vous voulez être à la hauteur de l'âge. ))

 

Je propose de clarifier (définir) le concept de "point".

Un pip est le 5e chiffre significatif : 1,2345.

Si une cotation est représentée par un autre chiffre (1,23456) et que l'écart = 0,00018, alors l'écart en pips est de 1,8 p, et non de 18 p.

Cela permettra d'uniformiser la terminologie et d'éviter toute confusion.

 
SK. >> :

Je propose de clarifier (définir) le concept de "point".

Un pip est le 5e chiffre significatif : 1,2345.

Si une cotation est représentée par un autre chiffre (1,23456) et que l'écart = 0,00018, alors l'écart en pips est de 1,8 p, et non de 18 p.

Cela permettra d'uniformiser la terminologie et d'éviter toute confusion.

Vous avez tout à fait raison - les courtiers écrivent "spread 1.8" sur leurs sites web, pas 18 - ils savent exactement ce qu'ils font :)

 

Функция OnCalculate() вызывается только в пользовательских индикаторах
при необходимости произвести расчет значений индикатора по событию Calculate.

Je n'ai toujours aucune idée de la façon dont je peux faire un indicateur avec des objets et sans connaître le nombre de barres modifiées
.

 

Je vois qu'il existe une fonction printf
.

et comme ce serait génial d'avoir un autre sprintf



 
Roffild >> :

Je n'ai toujours aucune idée de la façon dont je peux faire un indicateur avec des objets et sans connaître le nombre de barres modifiées
.

L'aide de MQL5 indique :

int OnCalculate (const int rates_total, // la taille des séries temporelles d'entrée
const int prev_calculated, // barres traitées lors de l'appel précédent
const datetime& time[], // heure
const double& open[], // Ouvrir
const double& high[], // haut
const double& low[], // Low
const double& close[], // Fermer
const long& tick_volume[], // Volume des tics
const long& volume[], // Volume réel
const int& spread[] // Spread
) ;

Il convient de noter la relation entre la valeur renvoyée par OnCalculate() et le deuxième paramètre d'entrée prev_calculé. Le paramètre prev_calculé lors de l'appel de la fonction contient une valeurretournée par OnCalculate() lors de l' appel précédent. Cela permet d'utiliser des algorithmes économiques pour calculer l'indicateur personnalisé afin d'éviter des calculs répétés pour les barres qui n'ont pas changé depuis l'appel précédent de cette fonction.

Pour cela, il suffit généralement de renvoyer la valeur du paramètre rates_total, qui contient le nombre de barres dans l'appel de fonction actuel. Si depuis le dernier appel de OnCalculate() les données de prix ont changé (un historique plus profond a été chargé ou les blancs de l'historique ont été remplis), la valeur du paramètre d'entrée prev_calculated sera mise à zéro par le terminal.

Raison: