-
Horizontale Bereiche in Indikatorfenster einfärben
Danke für die Antworten. ObjectMove verschiebt nicht das ganze Objekt sondern einen der Ankerpunkte. Und wenn ich nur den rechten Ankerpunkt auf T[0] bewege und den linken unverändert lasse, dann verschiebe ich es nicht, sondern ich vergrößere es. Funktioniert ganz wunderbar. Naechstes Mal gibt's auch wieder Quelltext :-) Gesendet von iPhone mit Tapatalk
-
Horizontale Bereiche in Indikatorfenster einfärben
Aber das Prinzip, die in der Init zu bauen und in Calculate nur noch die Ankerpunkte zu aktualisieren ist ok oder? Gesendet von iPhone mit Tapatalk
-
Horizontale Bereiche in Indikatorfenster einfärben
Hab ich doch geschrieben, mache ich mit ObjectMove. Und ObjectCreate in OnInit, irgendwo muss ich die ja erstellen. Gesendet von iPhone mit Tapatalk
-
Horizontale Bereiche in Indikatorfenster einfärben
Hallo zusammen, danke für eure Unterstützung! Ich habe es geschafft, in dem ich in der OnInit die Objekte create und per ObjectMove die Ankerpunkte anhand von T[0] aktualisiere. Hab's jetzt durchblickt. Eine Frage noch: wenn ich das ObjectCreate in der OnCalculate einbauen würde, würde er ja mit jedem Tick bzw Aktualisierung versuchen, die selben Objekte erneut zu bauen oder? Dann würde er Errors ausgeben?! Schönes WE und Thx again Gesendet von iPhone mit Tapatalk
-
Horizontale Bereiche in Indikatorfenster einfärben
Hi Conglom-o, das wird schwierig, weil ich immer erst spät von der Arbeit komme. Skype habe ich auch nicht und während der Arbeit geht es nicht..... Würdest Du mir auch hier helfen? Ich habe mal einen einfachen Indikator angehängt, in dem ich testweise auf der Horizontalen die Bereiche haben möchte. Ein Bereich wäre zB zwischen Time[rates_total-1], 0 und Time[0], 1 grün einzufärben. Background, Transparenz etc erstmal alles egal, es geht nur um das Erstellen des Rechtecks, was bei mir immer scheitert. //+------------------------------------------------------------------+ //| Rectangle.mq4 | //| | //| https://www.mql5.com | //+------------------------------------------------------------------+ #property copyright "" #property link "https://www.mql5.com" #property version "1.00" #property strict #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 //--- plot RelativeChange #property indicator_label1 "RelativeChange" #property indicator_type1 DRAW_LINE #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers double RelativeChange[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,RelativeChange); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- ArraySetAsSeries(close,true); ArraySetAsSeries(time,true); int bars = rates_total-1; if(prev_calculated>0) bars=rates_total-prev_calculated+1; for(int i=bars-1;i>0;i--) { RelativeChange[i] = ((Close[i]/Close[i+1])-1)*100; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
-
Horizontale Bereiche in Indikatorfenster einfärben
There are two variants of the function: The function creates an object with the specified name, type, and the initial coordinates in the specified chart subwindow: bool ObjectCreate( string object_name, // object name ENUM_OBJECT object_type, // object type int sub_window, // window index datetime time1, // time of the first anchor point double price1, // price of the first anchor point datetime time2=0, // time of the second anchor point double price2=0, // price of the second anchor point datetime time3=0, // time of the third anchor point double price3=0 // price of the third anchor point ); Auch mit Deiner Variante funktioniert es nicht, die hatte ich anfänglich schon probiert.
-
Horizontale Bereiche in Indikatorfenster einfärben
Stelle mich doof an und komme nicht weiter. Habe mein Code-Schnippsel im Indikator in OnCalculate am Ende eingebaut: if(!ObjectCreate("Strong Bull",OBJ_RECTANGLE,1,Time[rates_total-1],0.5,Time[0],1)) { Print("Cannot create: StrongBull"); } Der soll mir im Indifenster also ein Rechteck createn vom letzten Bar bis zum aktuellen Bar. Linker Anchor Point soll 0,5 sein, rechter soll 1 sein. WTF? Kriege immre die "Cannot Create"-Meldung. Habt Ihr eine Idee? Danke und Gruß!
-
Horizontale Bereiche in Indikatorfenster einfärben
Sauber danke. Ich prüfe mal. Gesendet von iPhone mit Tapatalk
-
Horizontale Bereiche in Indikatorfenster einfärben
Hallo Community, kann mir jemand sagen, ob / wie es möglich ist, in einem selbst geschriebenen Indikator im "separate window" horizontale Bereiche zwischen definierten Werten farblich zu hinterlegen? Ich stelle mir das so vor (natürlich in weniger aggressiven Farben) wie im Anhang dargestellt. Danke und Grüße.
-
Indikatorberechnung am Wochenende möglich?
Danke, am Ende hab ich es dann doch geschafft :) Gesendet von iPhone mit Tapatalk
-
Indikatorberechnung am Wochenende möglich?
Auch, wenn Montag ist ;-))) : hat noch jemand eine Idee, wieso der nicht sauber angezeigt wird? Würde mich über jeden Hinweis freuen. Danke und Gruß
-
Indikatorberechnung am Wochenende möglich?
Ja, das ist zum Verrückt-werden. Hier mal ein Update, ich habe an Anlehnung an den funktionierenden ATR mal bei der Initialisierung ein wenig was hinzugefügt. Dann habe ich noch eine zweite Linie für fallende Kerzen gemalt und eine iATR Bedingung hinzugefügt: #property version "1.00" #property strict #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 20 #property indicator_buffers 2 #property indicator_plots 2 //--- plot Anzahl steigend #property indicator_label1 "Anzahl steigend" #property indicator_type1 DRAW_LINE #property indicator_color1 clrGreen #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- plot Anzahl fallend #property indicator_label2 "Anzahl fallend" #property indicator_type2 DRAW_LINE #property indicator_color2 clrRed #property indicator_style2 STYLE_SOLID #property indicator_width2 1 //sollen nur Kerzen > ATR beachtet werden? input bool Inp_Respect_ATR = true; //Nur große Kerzen > ATR-Durschschnitt beachten input int Inp_ATR_Period = 14; //ATR-Period input double Inp_ATR_Factor = 1.0; //ATR-Faktor //--- indicator buffers double Anz_Up[]; double Anz_Down[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping IndicatorBuffers(2); IndicatorDigits(0); //--- indicator line SetIndexStyle(0,DRAW_LINE); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(0,Anz_Up); SetIndexBuffer(1,Anz_Down); //--- name for DataWindow and indicator subwindow label string short_name="No. rising / falling candles > "+DoubleToString(Inp_ATR_Factor,1)+" * ATR"; IndicatorShortName(short_name); SetIndexLabel(0,"No. cons. rising"); SetIndexLabel(1,"No. cons. falling"); //--- check for input parameter if((Inp_ATR_Period < 3) || (Inp_ATR_Factor < 0)) { Print("Wrong input parameter: ATR-Period="+IntegerToString(Inp_ATR_Period)+", ATR-Faktor="+DoubleToString(Inp_ATR_Factor)); return(INIT_FAILED); } //--- wenn ATR verwendet wird, dann Linie ab ATR-Period malen if(Inp_Respect_ATR == true) { SetIndexDrawBegin(0,Inp_ATR_Period); SetIndexDrawBegin(1,Inp_ATR_Period); } //--- wenn ATR nicht verwendet wird, dann Linie ab Anfang malen if(Inp_Respect_ATR == false) { SetIndexDrawBegin(0,0); SetIndexDrawBegin(1,0); } //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) { //--- ArraySetAsSeries(Anz_Up,true); ArraySetAsSeries(Anz_Down,true); ArraySetAsSeries(open,true); ArraySetAsSeries(close,true); ArraySetAsSeries(high,true); ArraySetAsSeries(low,true); ArraySetAsSeries(time,true); int bars = rates_total - 2; if(prev_calculated > 0) bars = rates_total - prev_calculated+1; //erste Kerze mit 0 initialisieren Anz_Up[rates_total-1]=0; Anz_Down[rates_total-1]=0; for(int i = bars; i >= 0; i--) { //wenn Schlusskurs größer als vorheriger Schlusskurs und Kerze > ATR-Faktor, dann Anzahl steigender Kerzen erhöhen und Anzahl fallender zurücksetzen if ((close[i] > close[i+1]) && (iATR(NULL,0,1,0) > (Inp_ATR_Factor * iATR(NULL,0,Inp_ATR_Period,0)))) { Anz_Up[i] = (Anz_Up[i+1]+1); Anz_Down[i] = 0; } //wenn Schlusskurs kleiner als vorheriger Schlusskurs und Kerze > ATR-Faktor, dann Anzahl fallender Kerzen erhöhen und Anzahl steigender zurücksetzen if ((close[i] < close[i+1]) && (iATR(NULL,0,1,0) > (Inp_ATR_Factor * iATR(NULL,0,Inp_ATR_Period,0)))) { Anz_Down[i] = (Anz_Down[i+1]+1); Anz_Up[i] = 0; } //wenn Schlusskurs = vorheriger Schlusskurs, dann Anzahl steigender und fallender Kerzen zurücksetzen if (close[i] == close[i+1]) { Anz_Down[i] = 0; Anz_Up[i] = 0; } } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
-
Indikatorberechnung am Wochenende möglich?
Bei <= H4 bleibt er leer... any ideas? Gesendet von iPhone mit Tapatalk
-
Indikatorberechnung am Wochenende möglich?
Das nenne ich mal spooky;-) wenn ich mich auf ner Chart-Period >= Tag befinde wird der berechnet. Bei <= H4 wird er nicht gezeichnet Gesendet von iPhone mit Tapatalk
-
Indikatorberechnung am Wochenende möglich?
Und leider wird der immer noch nicht berechnet, wenn ich den Indi auf nen Chart ziehe Gesendet von iPhone mit Tapatalk
HechTrader
Addict
-
Benutzer seit
-
Letzter Besuch