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
Ce que j'aimerais voir dans les prochaines versions :
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).
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.
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).
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.
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.
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.
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 :)
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
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.