|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
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); } 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 |
|
|||
|
|
|||
Zitat:
|
|
|||
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. AVT |
Lesezeichen |
|
|