Une vraie question - page 10

 
m100:

goldtrader ,peut-être que je vous pose une question trop bête, mais quand même, où la "fenêtre de données" obtient-elle toutes les valeurs alors ?


C'est une question pour les développeurs du terminal MT4. Je pense qu'elle provient des tampons des indicateurs et des séries chronologiques pertinents.
 
goldtrader:
Cette question s'adresse aux développeurs du terminal MT4. Je pense qu'à partir des tampons des indicateurs et séries temporelles correspondants.

Il n'y a donc pas de fonction équivalente comme GetWindowsData(3 buffer,0 bar) ?

GetWindowsData l'a inventé moi-même.

 
goldtrader:

Lire msdn, WinApi, WindowHandle. Je ne suis pas un expert de ces technologies. Gardez à l'esprit que pour votre tâche, c'est un BLEEP.

Il y a quelque chose ici https://www.mql5.com/ru/forum/120356

Pour obtenir ces valeurs à partir de la fenêtre de données, il faut que le curseur de la souris soit toujours au-dessus de la fenêtre souhaitée.

dès que le curseur se déplace ou perd le focus, la fenêtre cesse de se rafraîchir.

 
m100:

Il n'y a donc pas de fonction équivalente comme GetWindowsData(3 buffer,0 bar) ?

Évidemment non, car tout ce dont vous avez besoin est là et vous n'avez pas besoin de redondance. La fenêtre de données est essentiellement inutile.
 
OK, merci à tous, je vais démonter le code de Drknn.
 

Il est peut-être utile d'expliquer quelque chose pour rendre les choses plus claires.

La ligne MyValue=MyValue/(PeriodSkolzjaschej+1) ; 1 est ajoutée à la variable PeriodSkolzjaschej parce que la boucle commencera la recherche à partir de la bougie avec le numéro = PeriodSkolzjaschej et finira avec la bougie zéro. Par conséquent, le nombre total de chandeliers ayant participé à la boucle sera égal à PeriodSkolzjaschej+1. Cela signifie que si PeriodSkolzjaschej=35, la MA avec la période=36 sera effectivement impliquée. Afin d'obtenir une moyenne mobile de 35 périodes sans rien changer au code, nous devons définir la variable PeriodSkolzjaschej à 34.

 
drknn:

Il est peut-être utile de clarifier certaines choses pour faire passer le message.

La ligne MyValue=MyValue/(PeriodSkolzjaschej+1) ; 1 est ajoutée à la variable PeriodSkolzjaschej parce que la boucle commencera la recherche à partir de la bougie avec le numéro = PeriodSkolzjaschej, et elle se terminera avec la lecture de la bougie zéro. Par conséquent, le nombre total de chandeliers ayant participé à la boucle sera égal à PeriodSkolzjaschej+1. Cela signifie que si PeriodSkolzjaschej=35, la MA avec la période=36 sera effectivement impliquée. Afin d'obtenir une moyenne mobile de 35 périodes sans rien changer au code, nous devons définir la variable PeriodSkolzjaschej à 34.

merci

La variable applied_price est-elle une variable supplémentaire ?

 
m100:

Merci.

La variable applied_price est-elle une variable supplémentaire ?


Non - par défaut, je mets iMACD() à zéro, ce qui signifie que l'indicateur doit être construit sur la base des prix de clôture. Si je permets à l'utilisateur de choisir, alors la demande de la valeur de l'indicateur doit être faite comme ceci

Main_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,0,0);

Signal_MACD=iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,0);

// ------- Усредняем сигнальную линию ------------------
for(int i=PeriodSkolzjaschej;i>=0;i--){
 MyValue=MyValue+iMACD(SMB,0,fast_ema_period,slow_ema_period,signal_period,applied_price,1,i);
}