Zum Inhalt springen
View in the app

A better way to browse. Learn more.

#T/N/X/T

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

HechTrader

Addict
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von HechTrader

  1. 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
  2. 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
  3. Hab ich doch geschrieben, mache ich mit ObjectMove. Und ObjectCreate in OnInit, irgendwo muss ich die ja erstellen. Gesendet von iPhone mit Tapatalk
  4. 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
  5. 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); } //+------------------------------------------------------------------+
  6. 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.
  7. 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ß!
  8. Sauber danke. Ich prüfe mal. Gesendet von iPhone mit Tapatalk
  9. 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.
  10. Danke, am Ende hab ich es dann doch geschafft :) Gesendet von iPhone mit Tapatalk
  11. 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ß
  12. 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); } //+------------------------------------------------------------------+
  13. Bei <= H4 bleibt er leer... any ideas? Gesendet von iPhone mit Tapatalk
  14. 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
  15. Und leider wird der immer noch nicht berechnet, wenn ich den Indi auf nen Chart ziehe Gesendet von iPhone mit Tapatalk
  16. Danke. Aber wenn ich prüfe ob schon Bars berechnet wurden, dann kann ich doch nicht die bars mit der Anzahl-1 der schon berechneten Bars initialisieren. Das wäre doch falsch, wenn nur die neuen Bars berechnet werden sollen??? Gesendet von iPhone mit Tapatalk
  17. Hier mal der Version1-Quelltext, ich komme nicht wirklich weiter. #property version "1.00" #property strict #property indicator_separate_window #property indicator_minimum 0 #property indicator_maximum 10 #property indicator_buffers 1 #property indicator_plots 1 //--- plot Anzahl #property indicator_label1 "Anzahl" #property indicator_type1 DRAW_LINE #property indicator_color1 clrGreen #property indicator_style1 STYLE_SOLID #property indicator_width1 1 //--- indicator buffers double Anzahl[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping SetIndexBuffer(0,Anzahl); //--- 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(Anzahl,true); ArraySetAsSeries(open,true); ArraySetAsSeries(close,true); int bars = rates_total - 2; if(prev_calculated > 0) bars = rates_total - prev_calculated; Anzahl[bars+1]=0; for(int i = bars; i >= 0; i--) { //wenn Schlusskurs größer vorheriger Schlusskurs, dann Anzahl steigender Kerzen erhöhen if (close[i] > close[i+1]) Anzahl[i] = (Anzahl[i+1]+1); //sonst Zähler zurücksetzen if (close[i] <= close[i]) Anzahl[i] = 0; } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+
  18. Hey Jungs, super Unterstützung!!! Ich erhalte die Meldung im Journal "loaded successfully", aber: Experten-Eintrag: Array out of Range (59,25). Was komisch ist: wenn ich den Indi über den Debugmodus starte, wird er plötzlich wunderbar kalkuliert und bringt korrekte Ergebnisse. Muss mal sehen ob ich am Ende der Schleife was falsch mache, ggf frage ich Kerzen ab die nicht mehr in der Time Series liegen. Gesendet von iPhone mit Tapatalk
  19. Was meinst du denn mit dem ersten neuen Aufruf des Chart? Habe sowohl meinen Indi als auch den ATR auf den Chart gezogen, dabei wird ATR berechnet, meiner hingegen nicht. Gesendet von iPhone mit Tapatalk
  20. Wogo, vielen Dank für die schnelle Info. Ich werde das versuchen. Eine Frage habe ich dennoch: wieso funktioniert eigentlich dann ein Indikator wie ATR auch ohne Ticks? Gesendet von iPhone mit Tapatalk
  21. Hallo, habe mal eine doofe Frage: wenn ich mir nen Indikator programmiere, nutze ich ja den OnCalculate Event Handler. Der wird ja quasi aktiv, wenn er eine neue Preisstellung erhält. WIe ist das denn jetzt, wenn ich mir am Wochenende einen Indikator basteln möchte: kann ich den dann überhaupt testen? Da kommen ja keine Ticks rein, demnach wird die Berechnung ja gar nicht ausgeführt. Ich frage mich halt, ob ich etwas falsch gemacht habe oder ob es an o.g. Gründen liegt. Ich erhalte beim Compilen keine Fehlermeldung oder Warnung oder sonstiges. VIelen Dank für Eure Unterstützung.
  22. Hallo Der Wolf, das ist natürlich ganz großer Sport. Und bist Du Dir sicher, dass es nicht doch Dax Future Daten sind, denn der letzte Tageszeitstempel ist 16 Uhr EST = 22 Uhr GMT+1, was der Eurex entspricht. Xetra schließt ja schon um 17:30 Uhr. Zudem steht in den FAQ: What are they? Only Currencies?No, not only currencies. Most of all are forex currency pairs but other are futures/commodities. Hast Du das mal verifiziert?
  23. Hier die Antwort von der Deutschen Börse: Tickdaten - Eurex, Produktnummer 5202-dod, bietet Zugriff auf die täglichen Tickdaten für alle an der Eurex gehandelten Instrumente. Die historischen Daten werden 24 Monate zurück bis zum Vortag angeboten. Auf Basis dieser Daten können Sie sich die Daten eigenständig in der gewünschten Frequenz herleiten. Kurszeitreihen – Eurex, Produktnummer 5203-dod, bietet Zugriff auf den täglichen Eröffnungs-, Höchst-, Tiefst- und Schlusskurs, den Settlementpreis und die täglich gehandelten Volumina aller an der Eurex gehandelten Instrumente. Die Daten können täglich oder im 60 Minuten-Intervall angefragt werden. Die historischen Daten werden 24 Monate zurück bis zum Vortag angeboten. Als Endnutzer können Sie die gewünschten Daten im csv-Format über unseren WebShop bestellen und herunterladen. Bitte besuchen Sie unseren WebShop unter http://datashop.deutsche-boerse.com/5202 http://datashop.deutsche-boerse.com/5203 Die Daten stehen Ihnen im Rahmen einer einmaligen Abfrage (historische Daten) oder im Abonnement (zukünftige Daten) zur Verfügung.
  24. Hi bstrader, sauber, Danke Dir. Jedoch kriege ich eine Fehlermeldung beim Download, ich hätte die max. Bandbreite für heute ausgeschöpft. Woran liegt das? Hier die Antwort vom Tradesignal Support: Guten Tag, bei Minuten beträgt die Historie ca. 6 Monate bei Stunden 5 Jahre. Bei Rückfragen stehen wir Ihnen gern zur Verfügung. Mit freundlichen Grüßen Tradesignal Online Support
  25. Übrigens, was Forex angeht, ist das ja überhaupt kein Ding. Da gibts Anbieter wie Dukascopy mit Tickdatenhistorien über mehrere Jahre (glaub 5 oder länger) zum freien Download...

Account

Navigation

Suche

Suche

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.