Aktualisieren Sie das Diagrammfenster - Seite 3

 
Hallo Leute, es funktioniert einwandfrei, vielen Dank noch einmal,,,
 
phy:

Was ist GV?

Was ich in letzter Zeit gemacht habe, ist etwas wie das hier:

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

Dabei wird der sichtbare Teil des Indikators bei jedem Tick neu gezeichnet, nicht aber die Balken, die nicht sichtbar sind.

Hallo, phy.....

Auch ich habe das gleiche Problem wie oben, ich muss den Zeitrahmen manuell ändern und dann bekomme ich einen Refresh-Indikatorstatus.....

Da ich neu in der Programmierung bin, weiß ich nicht, wo ich die magische Zeile................ einfügen soll

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

Plesae vorschlagen....

Danke... ein .....lot.

Harry.

 
brspMA:
Hey Leute es funktioniert gut. danke nochmal,,,

Hallo, brspMA,

Auch ich habe das gleiche Problem.........

Können Sie mich führen, wo man diese Kalk hinzufügen...

Danke......

 
  1. Warum posten Sie in einem FÜNF Jahre alten Thema? Erwarten Sie wirklich, dass jemand, der seit Jahren nicht mehr gepostet hat, antwortet?
  2. for( int i = MathMax(WindowFirstVisibleBar(), Bars-IndicatorCounted()); i>= 0; i--){
    Sie haben bereits alle Balken gezeichnet, also ändert sich nur der Balken Null. Was bringt es, die sichtbaren Balken neu zu zeichnen ?
  3. Ein Wechsel des Zeitrahmens, eine Aktualisierung des Charts usw. wird bereits von IndicatorCounted gehandhabt, es wird kein zusätzlicher Code benötigt, außer der fehlenden -1 - der am weitesten links liegende Balken ist Bars-1
  4. hp69: Auch ich habe das gleiche Problem.........
    Wenn Ihr Indikator nicht ohne eine Aktualisierung aktualisiert wird, ist das Problem, dass Ihr Indikator defekt ist. Das Ändern der Schleife wird NICHT helfen. Sie müssen den Indikator reparieren. Nur beim ersten Mal (und der Aktualisierung) werden alle Balken gezeichnet. Bei den meisten anderen Ticks ist Bars-1-IndicatorCounted() gleich Null. Die Schleife wird nur einmal ausgeführt. Sie verwenden nicht initialisierte Variablen anstelle von in Puffern gespeicherten Werten aus dem vorherigen Takt. Wenn Sie es nicht herausfinden können, öffnen Sie einen NEUEN Beitrag mit Ihrem Code.
  5. Hp69 Bitte nicht doppelt posten
 


Startdatum des Themas - 29.11.2007
 

WHRoeder- Warum posten Sie in einem FÜNF Jahre alten Thema?

RaptorUK - Startdatum des Themas - 29.11.2007

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

Was ist falsch daran, auf alte Themen zu antworten?

Google unterscheidet nicht zwischen Inhalt und Chronologie (es sei denn, es werden Filter verwendet), also ist es nicht verkehrt, anderen zu helfen, die über Suchmaschinen auf Themen stoßen.

Gehen die Mods auf eine Schule, in der ihnen beigebracht wird, wie man Noobs verunglimpft und verurteilt?

 
FlatFap:

WHRoeder - Warum posten Sie in einem FÜNF Jahre alten Thema?

RaptorUK - Startdatum des Themas - 29.11.2007

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

Was ist falsch daran, auf alte Themen zu antworten?

Google unterscheidet nicht zwischen Inhalt und Chronologie (es sei denn, es werden Filter verwendet), daher ist es nicht verkehrt, anderen zu helfen, die über Suchmaschinen auf Themen stoßen.

Gehen die Mods auf eine Schule, in der ihnen beigebracht wird, wie man Noobs verunglimpft und verurteilt?

Es ist prinzipiell nichts falsch daran, auf ein altes Thema zu antworten.

Es sind Antworten wie Ihre, die nichts mit dem Thema zu tun haben, die andere verärgern.

Außerdem sind Antworten auf eine 5 Jahre alte Frage oft nicht sinnvoll, da sich mql4 mit der Zeit weiterentwickelt. Wenn man ein altes Thema an den Anfang der Liste setzt, bedeutet das oft, dass Neulinge Informationen lesen, die nicht mehr relevant sind.

 
FlatFap, du musst dich nicht entmutigen lassen. Es ist völlig in Ordnung, auf einen alten Thread zu antworten. Allein die Tatsache, dass Google diesen Thread an die Spitze Ihrer Suchliste gesetzt hat, bedeutet, dass dieser Thread dem am nächsten kommt, was Sie suchen. MQL4 entwickelt sich wie jede andere Anwendung weiter, aber die meisten Befehlsfunktionen ändern sich nicht jeden Tag, und mit ein wenig Ausprobieren und weiteren Nachforschungen kommen Sie vielleicht zu Ihrer gewünschten Lösung. Viel Erfolg!
 

Es ist möglich, dass wir einen Indikator neu zeichnen müssen, aber wir wissen nicht, wie viele Balken wir neu zeichnen müssen. Wenn wir einen fraktalen Indikator erstellen, müssen wir die letzten drei Balken neu berechnen, da der dritte Balken zu einem Fraktal werden kann, wenn die nächsten 2 Balken auf der linken Seite die Regeln erfüllen. Ich habe einen Indikator erstellt, der ein Unterstützungs- oder Widerstandsniveau markiert, wenn es durchbrochen wird. Allerdings könnte dieser Indikator nach 10 Balken oder nach 1000 Balken angehängt werden. Wir wissen also nicht genau, wie viele Balken wir neu berechnen müssen. Und wenn wir alle Balken bei jedem Tick neu berechnen, müssen wir unseren Indikator normalerweise auf die letzten 500 oder 1000 Balken beschränken.

Es ist auch möglich, das Diagramm zu aktualisieren, so dass alle Balken unseres Indikators neu berechnet werden. Aber wie kann man das programmatisch machen? WindowsRedraw() und ChartRedraw() lösen keine Aktualisierung für den Indikator aus. Wenn wir zu einem anderen Zeitrahmen wechseln und zurückkommen, wird der Indikator neu berechnet, wie im ersten Beitrag beschrieben. Wir können einen Experten mit einem CHARTEVENT_CLICK-Handler in unseren Chart setzen und dann die Methode ChartSetSymbolPeriod(0, NULL, 0) aufrufen. Dadurch wird das Diagramm auf die aktuelle Symbolperiode gesetzt und der Indikator kann jedes Mal, wenn wir auf das Diagramm klicken, automatisch neu berechnet werden. Die Verwendung eines Klick-Ereignisses ist nur ein Beispiel und Sie können es so verwenden, wie Sie möchten.

 

Am Ende des Indikatorcodes fügen Sie "ChartNavigate(0,CHART_CURRENT_POS,0);" ein.

{

...

ChartNavigate(0,CHART_CURRENT_POS,0);

return(rates_total);

}