|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
An-/Abschalten von Indikatorlinien
Ich habe Probleme mit dem An- und Abschalten (der Sichtbarkeit) von Indikatorlinien.
Situation: Ein Indikator im SubWindow mit insgesamt 28 Linien - ja, das ist viel, darum müssen sie (un-)sichtbar sein bei Bedarf. Diese Linien werden über Buffer gezeichnet, IndexBuffer(0-27). Zum Schnellen Ein-/Ausschalten gibt es für jede Linie ein Button (wird der gedrückt, verschwindet sie, noch mal gedrückt und Linie ist wieder da -- so jedenfalls die Theorie). Problem: Ich kriege die Linien zwar abeschaltet, aber nicht wieder angeschaltet. In OnChartEvent habe ich schon alles versucht, sowohl den direkten Befehl SetIndexStyle(x,DRAW_LINE...) versus SetIndexStlye(x,DRAW_NONE) als auch das Setzen von (bool)IsOn[x]=1 versus (bool)IsOn[x]=0 (mit Bedingung in OnInit) Nun weiß ich nicht mehr weiter. Hat jemand eine Idee? Danke. AVT |
|
|||
Also ich habe mal gerade den Schnipsel gleich nach OnCalculate() eingebaut:
Code:
if (flag) { SetIndexStyle(0,DRAW_NONE); flag = false; } else { SetIndexStyle(0,DRAW_LINE); flag = true; } traderdoc
__________________
Ich erfülle Euch gern Eure EA-, Indikator- und Script-Programmierungswünsche auf Honorarbasis. |
|
|||
Zitat:
Code:
//Loop über Bars: if(LineOn[0]=1) B0[i]=iMFI(Names[0],MFIframe,MFIPeriod,i)-50; /* Bedingung: bool LineOn[28]={1,1,....}; //InitialAllOn ButtonState=ObjectGetInteger(0,PFX+"But_0",OBJPROP_STATE); if( ButtonState==1 ) //IsNotPushedDown:SetPaintOff,SetPushedDown { LineOn[0]=0; ObjectSetInteger(0,PFX+"But_0",OBJPROP_STATE,true); } else //IsPushedDown:PaintOn,SetNotPushedDown { LineOn[0]=1; bjectSetInteger(0,PFX+"But_0",OBJPROP_STATE,false); } */ Wenn ich da einen Denkfehler mache, dann hau' mir den mal kräftig um die Ohren (nein, ich bin kein Maso ) AVT |
Lesezeichen |
|
|