Geschrieben 19. Januar 201313 Jr. comment_142011 Ich bräuchte mal wieder etwas Hilfe... Ich möchte einen vorhandenen rechenintensiven Indikator in der Berechnung auf eine einstellbare Kerzenanzahl begrenzen.Ansonsten rechnet sich das arme Ding immer fast tot und hängt mir die Plattform auf. Nun habe ich schon versucht zwischen diesen beiden Absätze: #define MOMENTUM_UP 1 #define MOMENTUM_NONE 0 #define MOMENTUM_DOWN -1 extern double turningWidth = 10.0; // percentage double basisWidth;das hier einzufügen, extern int lookback = 24; extern int lastbar = 0; aber das verändert das Problem leider auch nicht. Kann mir vllt. jemand erklären was ich wo zur Begrenzung einfügen muß ? Oder lässt sich das so pauschal nicht beantworten ? Melden
Geschrieben 19. Januar 201313 Jr. comment_142012 Kannst Du bitte mal in Deinem Code nach einer Schleife suchen ? Üblicherweise werden durch "++" oder "--" Zähler nach oben / unten gesetzt . Dein Indi wird durch die Bars des Charts durchrechnen . Das muss begrenzt werden . Edit : ich mache das so, dass ich Indis die ich im Chart habe für den EA dann einfach begrenze : //---- input parameters | string Markt = "AUDJPY" ;// any Market you wish | int Barsback = 5 ;// Berechnungszeitraum | int TimeFrame = 5 ;// Input Minutes 1/5/15/30/60/240/1440/10080 |in diesem Falle brauche ich nur die letzten 5 Bars also setze ich Barsback auf 5 EDITEDIT :Die Schleife sieht dann so aus : // | limit=Barsback ;//Bars-counted_bars;// | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ // | for(i=0,y=0;i<limit;i++) // Calculate Average True Range in Array "Tolerence" | { //1 | if (Time[i]<TimeArray[y]) y++ ;// | Tolerence[i] = iATR(Markt,TimeFrame,ATR_Period,y) ;// | Tolerence[i] = Tolerence[i] * ATR_Weight ;// | } //1 | //- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -+ Sonst mach mal Dein Skype an :-)KB Melden
Geschrieben 19. Januar 201313 Jr. comment_142013 Dein Indi wird durch die Bars des Charts durchrechnen. Dann wäre es zur Kontrolle ob es wirklich etwas bringt doch eine gute Idee die angezeigten Bars erstmal nach unten zu setzen oder? Melden
Geschrieben 19. Januar 201313 Jr. comment_142014 Der Indi hat fix alle Bars des Charts berechnet . Ist nun "Extern"-Variable und somit erledigt . KB Melden
Geschrieben 19. Januar 201313 Jr. comment_142015 Versuch mal das.... Beispiel, in der Schleife werden nur die letzten 50 Bars gerechnet. MQL4 Code: #property copyright "Copyright © 2005, MetaQuotes Software Corp." #property link "http://www.metaquotes.net" #property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 Red extern int MaxBars = 50; //nur die letzten 50 Bars //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { int counted = IndicatorCounted(); if (counted < 0) return (-1); if (counted > 0) counted--; int limit = MathMin(Bars-counted, MaxBars); for (int i=0; i <= limit; i++) { // hier dein Code für die Berechnung und Anzeige, es werden nur die letzten 50 Bars... } Melden
Geschrieben 19. Januar 201313 Jr. Autor comment_142017 Wollte euch dreien nur noch mal Bescheid geben, funktioniert jetzt alles einwandfrei, habt besten Dank Melden
Ich bräuchte mal wieder etwas Hilfe...
Ich möchte einen vorhandenen rechenintensiven Indikator in der Berechnung auf eine einstellbare Kerzenanzahl begrenzen.
Ansonsten rechnet sich das arme Ding immer fast tot und hängt mir die Plattform auf.
Nun habe ich schon versucht zwischen diesen beiden Absätze:
aber das verändert das Problem leider auch nicht.
Kann mir vllt. jemand erklären was ich wo zur Begrenzung einfügen muß ?
Oder lässt sich das so pauschal nicht beantworten ?