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.

Indikatorberechnung auf x Bars begrenzen

Geschrieben

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ß ? door.gif

 

Oder lässt sich das so pauschal nicht beantworten ?

Featured Replies

Geschrieben

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

Geschrieben

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?

Geschrieben

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...
  }
Geschrieben
  • Autor

Wollte euch dreien nur noch mal Bescheid geben, funktioniert jetzt alles einwandfrei, habt besten Dank :flowers:

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

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.