leider verstehe ich einen Code nicht und die Lösung des Problems ist für mich ziemlich wichtig . Hoffentlich könnt Ihr mir helfen :
Chart 4 Std Silber mit Signal aus dem Tages-TF :
Die jeweils ersten ein oder zwei grünen oder roten Punkte sollen mir das allererste Signal für einen Trade liefern . Ich muss also genau zu Beginn einer neuen Linie erkennen, das ein neuer Wert vorliegt und dann die Order platzieren .
Zuerst dachte ich , dass es sich einfach nur um jeweils neue HH oder LL handelt, dass ist aber falsch . Im Backtest habe ich nun beobachtet, dass teils bereits gezeichnete Linien wieder gelöscht und neu an anderer Stelle gezeichnet wurden ... also zum Beispiel Linien am Bar[5] oder Bar[6] sich plötzlich an einem anderem Preis befinden , als ursprünglich .
Dies der Code mit Quellenangabe der aber von mir bereits teilweise modifiziert (Vorbereitung für Pfeile) wurde , der Kern aber ist natürlich unverändert :
Hallo ,
leider verstehe ich einen Code nicht und die Lösung des Problems ist für mich ziemlich wichtig . Hoffentlich könnt Ihr mir helfen :
Chart 4 Std Silber mit Signal aus dem Tages-TF :
Die jeweils ersten ein oder zwei grünen oder roten Punkte sollen mir das allererste Signal für einen Trade liefern . Ich muss also genau zu Beginn einer neuen Linie erkennen, das ein neuer Wert vorliegt und dann die Order platzieren .
Zuerst dachte ich , dass es sich einfach nur um jeweils neue HH oder LL handelt, dass ist aber falsch . Im Backtest habe ich nun beobachtet, dass teils bereits gezeichnete Linien wieder gelöscht und neu an anderer Stelle gezeichnet wurden ... also zum Beispiel Linien am Bar[5] oder Bar[6] sich plötzlich an einem anderem Preis befinden , als ursprünglich .
Dies der Code mit Quellenangabe der aber von mir bereits teilweise modifiziert (Vorbereitung für Pfeile) wurde , der Kern aber ist natürlich unverändert :
//+------------------------------------------------------------------+ //| KG Support & Resistance.mq4 | //| Copyright © 2007, MetaQuotes Software Corp. | //| http://www.metaquotes.net | //+------------------------------------------------------------------+ #property copyright "Kang_Gun" #property link "http://www.free-knowledge.com" #property indicator_chart_window #property indicator_buffers 4 //---- input parameters extern int Barsback = 1500;// Berechnungszeitraum //---- buffers double ExtMapBuffer3[], ExtMapBuffer4[], arrow_up[], arrow_down[]; int KG; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { int limit = Bars - Barsback; IndicatorBuffers(4); //---- indicators // Resistance Dot´s SetIndexStyle(0,DRAW_ARROW,STYLE_SOLID,3,Red); SetIndexDrawBegin(0,KG-1); SetIndexBuffer(0,ExtMapBuffer3); SetIndexLabel(0,"Resist Day"); SetIndexArrow(0, 158); // Support Dot´s SetIndexStyle(1,DRAW_ARROW,STYLE_SOLID,3,DarkGreen); SetIndexDrawBegin(1,KG-1); SetIndexBuffer(1,ExtMapBuffer4); SetIndexLabel(1,"Support Day"); SetIndexArrow(1, 158); // arrow for short selling SetIndexStyle (2, DRAW_ARROW, STYLE_SOLID, 1,Red); SetIndexArrow (2, 234); // down 226 234 242 SetIndexBuffer (2, arrow_down); SetIndexLabel (2, "Down"); SetIndexDrawBegin (2, limit); // arrow for long buying SetIndexStyle (3, DRAW_ARROW, STYLE_SOLID, 1,Green); SetIndexArrow (3, 233); //UP 225 233 241 SetIndexBuffer (3, arrow_up); SetIndexLabel (3, "Up"); SetIndexDrawBegin (3, limit); //---- return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { return(0); } //------------------------------------------------------------------ bool Fractal (string M,int P, int shift) // P == Timeframe , shift == Position im Chart { if (Period()>P) return(-1) ;// Wenn Chart-TF größer ist als Referenz,dann Fehler P=P/Period()*2+MathCeil(P/Period()/2) ;// if (shift<P)return(-1); if (shift>Bars-P)return(-1); for (int i=1;i<=P;i++) { if (M=="U") { if (High[shift+i]>High[shift])return(-1); if (High[shift-i]>=High[shift])return(-1); } if (M=="L") { if (Low[shift+i]<Low[shift])return(-1); if (Low[shift-i]<=Low[shift])return(-1); } } return(1); } //------------------------------------------------------------------ int start() { int DAY=1440; KG=Bars; while(KG>=0) { if (Fractal("U",DAY,KG)==1) ExtMapBuffer3[KG]=High[KG]; else ExtMapBuffer3[KG]=ExtMapBuffer3[KG+1]; if (Fractal("L",DAY,KG)==1) ExtMapBuffer4[KG]=Low[KG]; else ExtMapBuffer4[KG]=ExtMapBuffer4[KG+1]; KG--; } return(0); } //+------------------------------------------------------------------+Der Kern ist wohl die Funktion Fractal() und dort die Zeile " P=P/Period()*2+MathCeil(P/Period()/2) ;// " von besonderer Bedeutung .
Sie entscheidet , welcher Bereich des Charts nach einem HH/LL gescannt werden soll .... aber ich habe nicht herausbekommen, was
da wirklich passiert und warum . Dieses Verständnis ist aber offensichtlich nötig, um zu verstehen, warum mir rückwirkend das Signal
geändert wird .
Generell würde ich aber sehr gerne diesen Indikator einem simplen HH oder LL des nächst höheren TF vorziehen .
Daher bitte ich Euch um Unterstützung .
Google hat auch schon etwas geholfen ...die ersten drei Links führen etwas weiter , ich hatte gehofft dort Erklärungen zu finden .
Kleinerbroker