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.

Balken Histogramm wird falsch angezeigt

Geschrieben

Habe ein immer wieder auftauchendes Problem mit einem Indikator.

Die Balkenanzeige wird im aktuellem Chart oftmals sehr klein, wechsele ich in einen anderen TF, stimmt sie oftmals (nicht immer)

aber der ursprünglich zu klein angezeigte TF bleibt eigentlich immer wie er ist, irgendwann wenn der Markt größere Bewegungen macht, passt sich die Skalierung dann aber an.

 

Siehe Bild 1, das ist der aktuelle Bereich des Charts, Bild 2 ist der gleiche Chart, nur ein bißchen zurückgescrollt. So wie Bild 2 sollte der Chart immer aussehen...

 

Kann man da im Code irgendetwas anpassen, oder ist das ein nicht zu ändernder Zustand ?

Oder müsste ich dann wirklich in einen fest Skalierten Bereich wechseln ?

 

gf.png gf1.png

Featured Replies

Geschrieben
  • Autor

Es geht übrigens bei der Frage um Leben und Tot.

Mit der richtigen Anzeige des Indis können Weltkriege gewonnen werden, schwarze Löcher werden geschlossen, der Hunger weltweit beendet

und es gibt auch nie mehr Naturkatastrophen....

Ach ja, und jeder der will wird 150 Jahre....

 

Vllt fällt ja doch noch jemanden etwas dazu ein

Geschrieben

Ich versteh die Frage nit ganz. Es geht um das unterste Fenster oder? Dort wo 1 großer Balken ist und der Rest sehr klein?

Kann es sein das der Indi bei diesem Bar einen deutlich größeren Wert hat als bei allen anderen? schonmal im Datafenster überprüft?

Ich tippe mal auf "Not a bug, its a feature"

 

Hängt es möglicherweise mit dem Close-Open Gap im Kurs zusammen?

Geschrieben
  • Autor

Hi, doch noch jemand zuhause :doubleup:

 

Ich versteh die Frage nit ganz. Es geht um das unterste Fenster oder? Dort wo 1 großer Balken ist und der Rest sehr klein?

Ja, genau

 

Kann es sein das der Indi bei diesem Bar einen deutlich größeren Wert hat als bei allen anderen? schonmal im Datafenster überprüft?

Ja, auch richtig, hat aber trotzdem mit der "Chartposition" im Fenster zu tun (Siehe Bild)

 

Ich tippe mal auf "Not a bug, its a feature"

Du willst also die schwarzen Löcher im All nicht schließen ? :vola2:

 

Hängt es möglicherweise mit dem Close-Open Gap im Kurs zusammen?

Nein, siehe Bild.

Der Indikator bezieht sich nur auf das Volumen, er interpretiert dieses nochmal.

Ist der MFI von Billy Williams

 

Bild 1 -> Chartanzeige, siehe senkrechter Strich

mm.png

 

Bild 2 -> Chart ein kleines Stück nach vorne(Rechts) verschoben,

senkrechter Strich an gleicher Stelle :vola2:

mm1.png

Geschrieben

sowas ähnliches hab ich auch manchmal - wenn es arge Ausschläge gibt im Indikator werden die darauffolgenden Balken/Linien verzerrt in der Höhe dargestellt. Dadurch das der Ausschlag die max. Bandbreite für den Moment bestimmt, sind die nächsten Balken sehr gedungen also flach. Mit der Zeit gibt sich das Problem dann aber von selbst, da der Ausschlag nach links wandert. Umso weiter links umso höher werden die nächsten Balken gezoomt.

 

Passiert aber nur bei extrem Chartbewegungen.

Geschrieben

Also ich denke es handelt sich dabei einfach um das Problem, das es einen Wert also einen Balken gibt der einen besonders großen Wert hat. Dadurch werden die anderen Balken kleiner gemacht damit die Skalierung noch stimmt. In deinem Bild kann ich aber den Balken nicht sehen. Kannst du vielleicht mal die gesamte Breite als Screenshot reinstellen? Dann könnte man das nachvollziehen.

 

In Post #1 sieht man das nämlich deutlich auf dem 1. Bild. Dort ist es der blaue Balken der dort alles kaputt macht.

 

Viele Grüße,

Rumpel

Geschrieben
  • Autor

sowas ähnliches hab ich auch manchmal - wenn es arge Ausschläge gibt im Indikator werden die darauffolgenden Balken/Linien verzerrt in der Höhe dargestellt.

Passiert aber nur bei extrem Chartbewegungen.

Bei diesem Indi passiert es leider ständig.

Was die extremen Bewegungen angeht ist es leider so, dass je nach TF diese Verzerrung andauernd eintritt und ein M15 dann schon mal 2 bis 3 Tage festgenagelt ist.

(Bis der extrem Balken rechts verschwunden ist)

In den höheren TFs ist aber alles in Ordnung, scheinbar weil das Volumen in der Relation da eben passt, in den Kleineren TFs bringen aber die News alles aus dem Ruder.

 

 

Also ich denke es handelt sich dabei einfach um das Problem, das es einen Wert also einen Balken gibt der einen besonders großen Wert hat.

Ja, du hast recht, wenn ich den Chart Bar by Bar weiterklicke, ist es Tatsache so, das die Anzeige in dem Moment umspingt, wenn der Große Bar aus dem Sichtfeld rechts verschwindet.

Kann man da nichts gegen machen (Ausser den Programmierer das Auto anzuzünden, Haus torpedieren etc. ?

Geschrieben

Zeig doch mal die gesamte Achse wenn das auftritt. siehst du den einen großen Balken der dafür sorgt das die anderen so klein sind? (bin mir zu 99% sicher das da einer is)

Falls nit: Schau mal im Fall das das Histrogramm so klein is, im Datenfenster jeden einzelnen Bar an und beobachte den Wert des Indis der das Histogramm malt.

 

@schwarze Löcher: nur wenn du garantierst das ich 150 Jahre alt werde ;)

 

Kann man da nichts gegen machen (Ausser den Programmierer das Auto anzuzünden, Haus torpedieren etc. ?

 

Ich vermute mal es ist "Absicht" das dieser eine Balken so groß ist. Und wie soll MT dann die anderen darstellen außer viel kleiner?

Wenn es nicht Absicht ist, dann is es ein Bug im Indi und du kannst den Programmierer torpedieren

Geschrieben
  • Autor

Zeig doch mal die gesamte Achse wenn das auftritt. siehst du den einen großen Balken der dafür sorgt das die anderen so klein sind? (bin mir zu 99% sicher das da einer is)

Ja, großer Balken ist da, siehe Bilder, 2tes Bild ist der Balken rechts im Chart verschwunden.

nn.png nn2.png

 

@schwarze Löcher: nur wenn du garantierst das ich 150 Jahre alt werde ;)

Mein Medium hat mir grade geschrieben, du rauchst nicht, trinkst nicht, hast keinen Sex, noch nicht mal Schokoholiker bist du !

Warum also überhaupt 50 werden, Ressourcen müssen da für andere gespart werden, die wirklich leben :laugh: :whiteflag:

 

 

Und wie soll MT dann die anderen darstellen außer viel kleiner?

Mir egal :laugh:

Egal wie, aber anders....

 

Wenn es nicht Absicht ist, dann is es ein Bug im Indi und du kannst den Programmierer torpedieren

Ich poste mal den Code, vllt kann ja mal jemand drüber gucken :door:

Geschrieben

Mein Medium hat mir grade geschrieben, du rauchst nicht, trinkst nicht, hast keinen Sex, noch nicht mal Schokoholiker bist du !

Warum also überhaupt 50 werden, Ressourcen müssen da für andere gespart werden, die wirklich leben :laugh: :whiteflag:

Wenn du wüsstest... also dein Medium würd ich direkt nach dem Programmierer in Frühpension schicken ;)

 

 

Ich poste mal den Code, vllt kann ja mal jemand drüber gucken :door:

 

Wenn er frei ist, jederzeit ;)

Geschrieben
  • Autor

Wenn du wüsstest... also dein Medium würd ich direkt nach dem Programmierer in Frühpension schicken ;)

Okay, lest morgen einfach Nachrichten ^^

 

Anbei der Code :door:

 

Und der Indi:

BW Market Facilitation Index.mq4

 

 

 

//+------------------------------------------------------------------+
//|                                 BW Market Facilitation Index.mq4 |
//|                      Copyright © 2005, MetaQuotes Software Corp. |
//|                                       http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net/"
//---- indicator settings
#property  indicator_separate_window
#property indicator_minimum 0
#property indicator_buffers 5
#property indicator_color1  Black
#property indicator_color2  Lime
#property indicator_color3  SaddleBrown
#property indicator_color4  Blue
#property indicator_color5  Pink
#property indicator_width2  2
#property indicator_width3  2
#property indicator_width4  2
#property indicator_width5  2
//---- indicator buffers
double ExtMFIBuffer[];
double ExtMFIDownVDownBuffer[];
double ExtMFIUpVDownBuffer[];
double ExtMFIDownVUpBuffer[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
 {
//---- indicator buffers mapping
  SetIndexBuffer(0,ExtMFIBuffer);       
  SetIndexBuffer(1,ExtMFIUpVUpBuffer);
  SetIndexBuffer(2,ExtMFIDownVDownBuffer);
  SetIndexBuffer(3,ExtMFIUpVDownBuffer);
  SetIndexBuffer(4,ExtMFIDownVUpBuffer);
//---- drawing settings
  SetIndexStyle(0,DRAW_NONE);
  SetIndexStyle(1,DRAW_HISTOGRAM);
  SetIndexStyle(2,DRAW_HISTOGRAM);
  SetIndexStyle(3,DRAW_HISTOGRAM);
  SetIndexStyle(4,DRAW_HISTOGRAM);   
//---- name for DataWindow and indicator subwindow label
  IndicatorShortName("BW MFI");
  SetIndexLabel(0,"BW MFI");      
  SetIndexLabel(1,NULL);
  SetIndexLabel(2,NULL);
  SetIndexLabel(3,NULL);
  SetIndexLabel(4,NULL);
//---- sets drawing line empty value
  SetIndexEmptyValue(0, 0.0);
  SetIndexEmptyValue(1, 0.0);
  SetIndexEmptyValue(2, 0.0);       
  SetIndexEmptyValue(3, 0.0);
  SetIndexEmptyValue(4, 0.0);      
//---- initialization done
  return(0);
 }
//+------------------------------------------------------------------+
//| BW Market Facilitation Index                                     |
//+------------------------------------------------------------------+
int start()
 {
  int  i,nLimit,nCountedBars;
  bool bMfiUp=true,bVolUp=true;
//---- bars count that does not changed after last indicator launch.
  nCountedBars=IndicatorCounted();
//---- last counted bar will be recounted
  if(nCountedBars>0) nCountedBars--;
  nLimit=Bars-nCountedBars;
//---- Market Facilitation Index calculation
  for(i=0; i<nLimit; i++)
    {
     if(CompareDouble(Volume[i],0.0))
       {
        Print(Volume[i]);
        if(i==Bars-1) ExtMFIBuffer[i]=0.0;
        else ExtMFIBuffer[i]=ExtMFIBuffer[i+1];
       }
     else ExtMFIBuffer[i]=(High[i]-Low[i])/(Volume[i]*Point);
    }
//---- upanddown flags setting
  if(nCountedBars>1)
    {
     //---- analyze previous bar before recounted bar
     i=nLimit+1;
     if(ExtMFIUpVUpBuffer[i]!=0.0)
       {
        bMfiUp=true;
        bVolUp=true;
       }
     if(ExtMFIDownVDownBuffer[i]!=0.0)
       {
        bMfiUp=false;
        bVolUp=false;
       }
     if(ExtMFIUpVDownBuffer[i]!=0.0)
       {
        bMfiUp=true;
        bVolUp=false;
       }
     if(ExtMFIDownVUpBuffer[i]!=0.0)
       {
        bMfiUp=false;
        bVolUp=true;
       }
    }
//---- dispatch values between 4 buffers
  for(i=nLimit-1; i>=0; i--)
    {
     if(i<Bars-1)
       {
        if(ExtMFIBuffer[i]>ExtMFIBuffer[i+1]) bMfiUp=true;
        if(ExtMFIBuffer[i]<ExtMFIBuffer[i+1]) bMfiUp=false;
        if(Volume[i]>Volume[i+1])             bVolUp=true;
        if(Volume[i]<Volume[i+1])             bVolUp=false;
       }
    if(bMfiUp && bVolUp)
      {
       ExtMFIUpVUpBuffer[i]=ExtMFIBuffer[i];
       ExtMFIDownVDownBuffer[i]=0.0;
       ExtMFIUpVDownBuffer[i]=0.0;
       ExtMFIDownVUpBuffer[i]=0.0;
       continue;
      }
    if(!bMfiUp && !bVolUp)
      {
       ExtMFIUpVUpBuffer[i]=0.0;
       ExtMFIDownVDownBuffer[i]=ExtMFIBuffer[i];
       ExtMFIUpVDownBuffer[i]=0.0;
       ExtMFIDownVUpBuffer[i]=0.0;
       continue;         
      }
    if(bMfiUp && !bVolUp)
      {
       ExtMFIUpVUpBuffer[i]=0.0;
       ExtMFIDownVDownBuffer[i]=0.0;
       ExtMFIUpVDownBuffer[i]=ExtMFIBuffer[i];
       ExtMFIDownVUpBuffer[i]=0.0;
       continue;         
      }
    if(!bMfiUp && bVolUp)
      {
       ExtMFIUpVUpBuffer[i]=0.0;
       ExtMFIDownVDownBuffer[i]=0.0;
       ExtMFIUpVDownBuffer[i]=0.0;
       ExtMFIDownVUpBuffer[i]=ExtMFIBuffer[i];
       continue;         
      }        
   }                     
//---- done
  return(0);
 }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
bool CompareDouble(double dNumber1, double dNumber2)
 {
  bool bCompare=NormalizeDouble(dNumber1-dNumber2,8) == 0;
  return(bCompare);
 }
//+------------------------------------------------------------------+

Geschrieben

Das Problem ist da:

ExtMFIBuffer[i]=(High[i]-Low[i])/(Volume[i]*Point);

 

Ich sag mal so: Wenn mit einem Volume von 4, 13 Pips gemacht werden macht ein "Holy Shit" im Indi schon Sinn...

Ich würd mal sagen das Problem liegt wohl eher im Datenfeed als im Indi.

 

Du kannst maximal hergehen und die "fehlerhaften" Datenfeeds irgendwie zu "filtern" oder so, nur die Frage wie das dann Sinn macht.

Geschrieben
  • Autor

Das Problem ist da:

 

Ich sag mal so: Wenn mit einem Volume von 4, 13 Pips gemacht werden macht ein "Holy Shit" im Indi schon Sinn...

Du kannst maximal hergehen und die "fehlerhaften" Datenfeeds irgendwie zu "filtern" oder so, nur die Frage wie das dann Sinn macht.

 

Aha, dank dir :flowers:

Nein filtern macht dann keinen rechten Sinn, da es ja im Indi darum geht, das Volumen nochmals separat zu interpretieren.

 

btw.

Über Sinn oder Unsinn des "Volumens" in FX mag ich da nicht diskutieren, geht mir nur um die Anzeige.

Geschrieben
  • Autor

Hängt es möglicherweise mit dem Close-Open Gap im Kurs zusammen?

:doubleup:

Du hattest recht, habe das jetzt mal weiter verfolgt, es sind fast ausschließlich die Gaps des WE.

Kann man den Sonntag irgendwie rausfiltern ?

Geschrieben

Hi Vola!

in deinem eingefügten Code fehlte ein Indikatorbuffer, deswegen liess sich der Code nicht kompilieren

screenshot.1.png

in der Datei war es wieder drin :fun:

Geschrieben

Das Problem liegt, wei Mythos schon sagte in dieser Formel

21.png

wenn der Volume viel zu klein ist, hast du dann extreme Indikatorausschläge auf dem Chart

 

Auf meinem Chart waren die Indikatorauschläge hauptsächlich um 23:00 und 23:02 zu sehen,

eigentich reicht es auch die Indikatorwerte mit kleinerem Volumen zu filtern.

Ich habe also in den Indikator alle 3 Filter eingebaut:

- Datenfilter am Sonntag

- Datenfilter um 23:00 und 23:01

- Datenfilter bei kleinem Volumen

 

vola.png

 

hier ist der modifizierter Quellcode

bw von vola.mq4

 

und das Chartbild zum Vergleich

gefiltert.png

Geschrieben
  • Autor

 

eigentich reicht es auch die Indikatorwerte mit kleinerem Volumen zu filtern.

Ich habe also in den Indikator alle 3 Filter eingebaut:

- Datenfilter am Sonntag

- Datenfilter um 23:00 und 23:01

- Datenfilter bei kleinem Volumen

 

:10points:

Hehe, na du bist mir ja ein Schatz !! :door: Machst ja super sachen, derweile andere schlafen.

Danke schön. Das teste ich gleich ausführlich und gebe dann Feedback.

 

in deinem eingefügten Code fehlte ein Indikatorbuffer, deswegen liess sich der Code nicht kompilieren

 

in der Datei war es wieder drin :fun:

Der Code war auf die schnelle aus dem Netz kopiert, der Indi war von meinem Rechner

Geschrieben
  • Autor

@titanfx

Irgendetwas ist aber anders. Der Indikator zeigt jetzt andere Werte.

Im Bild unten ist der deinige, darüber das Original. Könntest du noch mal gucken ? :flowers:

Am gravierendsten sind die Unterschiede im M5, wobei deine Modifikation im M1 überhaupt gar nichts anzeigt.

Fenster bleibt leer.

 

ti.png

Geschrieben
anzeigt.

Fenster bleibt leer.

@ Vola

das ist ja die Sache wenn man viel herausfiltert, hat man nichts mehr :yess:

ich weiss nicht was du genau sehen oder filtern möchtest,

auf jedem Fall auf 1M Chart wird Volumen unter 300 ausgefiltert, bzw geglättet

dann kannst du diesen Wert entweder verkleinern oder abhängig von dem Timeframe automatisch einstellbar machen

so zum Beispiel

v1.png

Geschrieben
  • Autor

dann kannst du diesen Wert entweder verkleinern oder abhängig von dem Timeframe automatisch einstellbar machen

so zum Beispiel

v1.png

Ach soooo, ja verstehe, das lasse ich mir mal durch den Kopf gehen.

Im M1 werde ich da wohl eine Anpassung übernehmen, grade dort ist mir die Extra Interpretation wichtig.

 

Alternativ kann ich ja für M1 auch den Original Indi einblenden, in diesem TF spinnt er recht selten.

Danke nochmals !

Geschrieben

Alternativ könnte man auch statt zu filtern und den Wert vom Vorbar zu nehmen, einfach den maximalWert des Indis begrenzen.

Dadurch sieht man trotzdem wenn er extrem ausschlägt, aber es is nit so heftig.

In der aktuellen Form würdest du einen starken Ausschlag völlig übersehen, weil der (womöglich) kleine Wert vom Vorbar einfach übernommen wird.

Geschrieben
  • Autor

Alternativ könnte man auch statt zu filtern und den Wert vom Vorbar zu nehmen, einfach den maximalWert des Indis begrenzen.

Dank dir für den Vorschlag, ich gucke mir das erst mal paar Tage an und entscheide dann erneut.

Momentan bin ich mit der Lösung recht zufrieden.

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.