Rafraîchir la fenêtre du graphique - page 3

 
Hé les gars, ça marche bien. Merci encore,,,,
 
phy:

Qu'est-ce que la GV ?

Ce que j'ai fait récemment, c'est quelque chose comme ceci :

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()) ; i>= 0 ; i--){

Il redessine la partie visible de l'indicateur à chaque tick, mais pas les barres qui sont hors de vue.

Bonjour, phy.....

J'ai le même problème que ci-dessus, je dois changer l'intervalle de temps manuellement et ensuite j'obtiens un statut de rafraîchissement de l'indicateur......

Comme je suis nouveau dans le codage je ne sais pas où ajouter la ligne magique................

for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()) ; i>= 0 ; i--){

Plesae suggest....

Merci... un .....lot.

Harry.

 
brspMA:
Hé les gars, ça marche bien. Merci encore,,,

Salut, brspMA,

J'ai le même problème.........

Pouvez-vous me guider où ajouter cette chaux...

Merci......

 
  1. Pourquoi postez-vous sur un fil vieux de cinq ans ? Vous attendez vraiment que quelqu'un qui n'a pas posté depuis des années vous réponde ?
  2. for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
    Vous avez déjà dessiné toutes les barres, donc seule la barre zéro change. Quel est l'intérêt de redessiner les barres visibles?
  3. Un changement de timeframe, un rafraîchissement du graphique, etc. est déjà géré par IndicatorCounted, aucun code supplémentaire n'est nécessaire, sauf le -1 manquant -- la barre la plus à gauche est Bars-1.
  4. hp69: Même moi, j'ai le même problème.........
    Si votre indicateur ne se met pas à jour sans un rafraîchissement, le problème est que votre indicateur est cassé. Changer cette boucle n'aidera PAS. Vous devez réparer l'indicateur. Ce n'est que la première fois (et le rafraîchissement) qu'il affichera toutes les barres. La plupart des autres ticks, Bars-1-IndicatorCounted() sera égal à zéro. La boucle ne s'exécute qu'une seule fois. Vous utilisez des variables non initialisées au lieu de valeurs enregistrées dans des tampons, à partir de la barre précédente. Si vous n'arrivez pas à comprendre, ouvrez un NOUVEAU message avec votre code.
  5. Hp69 Ne doublez pas les messages
 


Date de début du fil - 2007.11.29
 

WHRoeder- Pourquoi postez-vous sur un fil vieux de CINQ ans ?

RaptorUK - Date de début du fil - 2007.11.29

============================

Qu'y a-t-il de mal à répondre à de vieux fils de discussion ?

Google ne fait pas de distinction entre le contenu et la chronologie (à moins d'utiliser des filtres), il n'y a donc rien de mal à aider les autres qui tombent sur des fils de discussion via les moteurs de recherche.

Les mods vont-ils dans une école où on leur apprend à vilipender et condamner les noobs ?

 
FlatFap:

WHRoeder - Pourquoi postez-vous sur un fil vieux de CINQ ans ?

RaptorUK - Date de début du fil - 2007.11.29

============================

Qu'y a-t-il de mal à répondre à de vieux fils de discussion ?

Google ne fait pas de distinction entre le contenu et la chronologie (à moins d'utiliser des filtres), il n'y a donc rien de mal à aider les autres qui tombent sur des fils de discussion via les moteurs de recherche.

Les mods vont-ils dans une école où on leur apprend à vilipender et condamner les noobs ?

En principe, il n'y a rien de mal à répondre à un ancien fil de discussion.

Ce sont les réponses comme la vôtre, qui n'ont rien à voir avec le sujet, qui agacent les autres.

De plus, les réponses à une question vieille de 5 ans ne sont souvent pas utiles car mql4 évolue avec le temps. Faire remonter un vieux fil en tête de liste signifie souvent que les noobs lisent des informations qui ne sont plus pertinentes.

 
FlatFap, il ne faut pas se décourager. C'est tout à fait normal de répondre à un vieux fil de discussion. Le fait même que Google ait placé ce fil de discussion en tête de votre liste de recherche signifie qu'il s'agit de la réponse la plus proche possible de ce que vous recherchez. MQL4 évolue comme n'importe quelle autre application, mais la plupart des fonctions de commande ne changent pas tous les jours, et avec un peu d'essais et d'erreurs et des recherches supplémentaires, vous pouvez atteindre la solution que vous recherchez. Bonne chance !
 

Il est possible que nous devions redessiner un indicateur, mais nous ne savons pas combien de barres nous devons redessiner. Si nous créons un indicateur fractal, nous devons recalculer les trois dernières barres, car la troisième barre peut devenir une fractale si les deux barres suivantes à gauche satisfont aux règles. J'ai créé un indicateur qui marquera un niveau de support ou de résistance lorsqu'il sera cassé. Cependant, cela pourrait s'ajouter après 10 barres ou après 1000 barres. Nous ne savons donc pas vraiment combien de barres nous devons recalculer. Et si nous recalculons toutes les barres à chaque tick, nous devrons généralement limiter notre indicateur aux 500 ou 1000 dernières barres.

Il est également possible de rafraîchir le graphique pour qu'il recalcule toutes les barres de notre indicateur. Mais comment le faire de manière programmatique ? WindowsRedraw() et ChartRedraw() ne déclenchent pas de rafraîchissement pour l'indicateur. Si nous changeons de cadre temporel et revenons, l'indicateur sera recalculé, comme décrit dans le premier post. Nous pouvons placer un Expert avec un gestionnaire CHARTEVENT_CLICK dans notre graphique et ensuite appeler la méthode ChartSetSymbolPeriod(0, NULL, 0). Cela va régler le graphique sur la période réelle du symbole et permettre à l'indicateur d'être automatiquement recalculé chaque fois que nous cliquons sur le graphique. L'utilisation d'un événement de clic est seulement un exemple et vous pouvez l'utiliser comme vous le souhaitez.

 

A la fin du code de l'indicateur, mettez "ChartNavigate(0,CHART_CURRENT_POS,0) ;".

{

...

ChartNavigate(0,CHART_CURRENT_POS,0) ;

return(rates_total) ;

}