Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools
Zurück   Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools > Metatrader 4 > Programmierung MQL4

Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4.

Login
Benutzername:
Kennwort:


Statistik
Themen: 1008
Beiträge: 12807
Benutzer: 1.988
Aktive Benutzer: 883
Links: 79
Wir begrüßen unseren neuesten Benutzer: unicurrent
Mit 57 Benutzern waren die meisten Benutzer gleichzeitig online (vor 21 Stunden um 19:24).
Neue Benutzer:
vor einer Stunde
- unicurrent
vor 2 Stunden
- Titantrade...
vor 9 Stunden
- Lobst
vor 18 Stunden
- schalkypet
vor 23 Stunden
- Harger

Onlineuser
'Wer ist online' anzeigen Benutzer: 3
Gäste: 24
Gesamt: 27
Team: 0
Team:  
Benutzer:  AndyM, IDCBOI, mic
Freunde anzeigen

Facebook
Expert-Advisor.com auf Facebook.
Zum Metatrader Forum

Spenden

Werbung

Antwort
 
LinkBack Themen-Optionen Thema durchsuchen Ansicht
  #1 (permalink)  
Alt 31.01.12
Mitglied
 
Registriert seit: Oct 2011
Beiträge: 56
Biatsch befindet sich auf einem aufstrebenden Ast
Standard Unterschiedliche Farbeinteilung meines MAs

Hi,
ich versuche mich gerade daran einen eigenen MA zu programmieren, dem ich unterschiedliche Farbeinteilungen verpassen möchte, je nachdem, ob gerade unter oder über dem aktuellen Low liegt.
Zu diesem Zweck habe ich 2 Buffer gewählt, die beide die selben Werte überreicht bekommen.
Mit den letzten If-Bedingungen möchte ich, dass in Abhängigkeit vom vorliegenden Fall einer der MAs verschwindet (=EMPTY_VALUE).
Wenn der MA aber von nur einer einzigen Candle kurz "penetriert" wird entsteht eine Lücke im MA (aus einem Punkt kann schließlich keine Linie gezogen werden).

Meine Frage lautet nun: Wie kann ich diese Lücken (liebsten mit einer neuen Farbe) füllen, um einen stetigen Verlauf zu bekommen ?

Ich habe mir überlegt einfach einen dritten MA durchlaufen zu lassen und dass dieser von den beiden MAs überzeichnet wird.
Leider überzeichnet Buf2 bei mir alles andere.
Wie sorge ich also dafür, dass Buf2 immer unter Buf0 und Buf1 liegt ?

HTML-Code:
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 Yellow


extern int period1=10;
extern int period2=20;

double Buf0[],
       Buf1[],
       Buf2[];

//+------------------------------------------------------------------------
int init()
{
   SetIndexBuffer(0,Buf0);
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(1,Buf1);
   SetIndexStyle(1,DRAW_LINE,STYLE_SOLID,2);
   SetIndexBuffer(2,Buf2);
   SetIndexStyle(2,DRAW_LINE,STYLE_SOLID,2);
   
   return;
}

int start()
{
   int i,
       j,
       k,
       counted_bars;
   double sum1,
          sum2,
          average1,
          average2;
      
      counted_bars=IndicatorCounted();        

      i=Bars-counted_bars-1;
      while(i>=0)
      {  
         sum1=0;
         sum2=0;

         for(j=i; j<i+period1; j++){
         sum1+=Low[j];
         }
         for(k=i; k<i+period2; k++){
         sum2+=Low[k];
         }
         
         average1=sum1/period1;
         average2=sum2/period2;
         
         if(average1<average2){
            Buf0[i]=average1;
            Buf1[i]=average1;
            Buf2[i]=average1;
            
         }
         else{
            Buf0[i]=average2;
            Buf1[i]=average2;
            Buf2[i]=average2;
         }
         
         
         if(Buf0[i]>=Low[i]) Buf0[i]=EMPTY_VALUE;
         if(Buf1[i]<Low[i]) Buf1[i]=EMPTY_VALUE;

         i--;
      }
   
   return;
}
Wenn nur Buf2 aus dem Code entfernt wird, sieht man das Problem mit den Lücken.
Mit Zitat antworten
  #2 (permalink)  
Alt 01.02.12
Benutzerbild von naranjoe
Mitglied
 
Registriert seit: Jun 2010
Ort: Trier
Beiträge: 78
naranjoe befindet sich auf einem aufstrebenden Ast
Standard

Hmm, also erstmal, wieso benutzt du 2 unterschiedliche Perioden für deinen MA? Also Buf2 brauchst du gar nicht. Zeichne deinen MA einfach 2-mal übereinander. Mit der "if" Abfrage löschst du dann an der berechneten Stelle den obersten MA mit EMPTY_VALUE.

Die while-Schleife sieht dann so aus:
Code:
      while(i>=0)
      {  
         sum1=0;

         for(j=i; j<i+period1; j++){
         sum1+=Low[j];
         }
         
         average1=sum1/period1;

         Buf0[i]=average1;
         Buf1[i]=average1;
         
         if(Buf1[i]<Low[i]) Buf1[i]=EMPTY_VALUE;

         i--;
      }
Damit sollte der MA ohne Unterbrechung durchlaufen.

Gruß
naranjoe
Mit Zitat antworten
Antwort

Lesezeichen

Stichworte
farbeinteilung, farbeinteilung ma, farbeinteilung mas, indikator, ma, mas, mql4, programmierung, programmierung metatrader


Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus




Alle Zeitangaben in WEZ +2. Es ist jetzt 16:58 Uhr.



-----------------------------------------------------------------------------------------------------------------------------
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Powered by vBCMS® 2.7.0 ©2002 - 2012 vbdesigns.de
SEO by vBSEO 3.6.0
Copyright ©2009 - 2011 by Expert-Advisor.com - Das Metatrader Forum
MetaTrader bzw. MetaTrader 4 und MetaTrader 5 sind eingetragene Marken der MetaQuotes Software Corp.
-----------------------------------------------------------------------------------------------------------------------------