Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   wie leere ich IndexBuffer(0,BuffName) ? (http://www.expert-advisor.com/forum/showthread.php?t=6479)

AVT 14.08.19 12:17

wie leere ich IndexBuffer(0,BuffName) ?
 
Wenn eine Linie - z.B. ein ATR in einem SetIndexBuffer(0,ATRline) - gezeichnet wird, dann bleibt die ja solange vorhanden bzw wird weitergezeichnet bis der Indikator ein DeInit und OnInit bekommt; danach wird die ganze Linie neu berechnet und gezeichnet.

Wie kann ich diese Linie einmal ganz entfernen, um sie dann komplett neu berechnen (und zeichnen) zu lassen?

Ich habe schon versucht, einen Loop über die Periode zu machen mit
Code:

for(int i=Bars-Period; i>=0; i--)
{  ATRline[i]=EMPTY_VALUE; SetIndexStyle(0,DRAW_NONE);  }

Das funktioniert aber nicht, die alte Linie ist immer noch da.

Eine andere Idee wäre, dem Indikator eine Art ReInit Signal zu senden, ihn also zum Neustart zu zwingen (so etwas wie REASON_CHARTCHANGE), aber ich habe keine Ahnung wie man das macht.

Kann jemand hier helfen? Danke. AVT

MA-EA 14.08.19 14:08

Vielleicht mit

https://docs.mql4.com/chart_operations/chartredraw

AVT 14.08.19 15:25

Zitat:

Zitat von MA-EA (Beitrag 42742)

war das erste was ich probiert hab.

AVT 14.08.19 20:13

geht jetzt alles
 
Die Linie wurde nur in einem Teil falsch gezeichnet, das lag daran, daß die Zeitspanne schlicht und ergreifend falsch berechnet war - habe ich mir wieder mal selbst ein Bein gestellt.

Und das mit das mit dem ReInit Signal habe so gelöst:
1. derzeitigen Timeframe speichern
2. Chart auf anderen Timeframe setzen
3. Neuberechnung aller Werte
4. alten Timeframe wieder herstellen
-. Und das alles in einer Funktion, die im OnTimer aufgrufen wird

Das Umsetzen des Timeframes geht mit
ChartSetSymbolPeriod(0,_Symbol,TimeFrameNeeded);

Danke für die Hilfen. :D AVT


Alle Zeitangaben in WEZ +2. Es ist jetzt 21:28 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum