Hinzufügen von Farbe zu einem Indikator - Seite 2

 

Ich habe noch nicht herausgefunden, die Indikator-Puffer noch,

aber der folgende Code tut, was ich will, Anzeige der aktuellen und vergangenen Bar Heiken Ashi Farbe.

Was es nicht tut, ist es in einem separaten Fenster setzen, und Anzeige NUR unter dem aktuellen bar.

Ist das möglich? Oder muss ich noch den Indikatorpuffer herausfinden?

Sie haben es mit einem sehr grünen Neuling zu tun... danke für die Geduld.

int start()

{

ObjectsDeleteAll();

// Vor dem Zeichnen den Chart löschen

// 5 min aktuell

double open.5.0 =iCustom(NULL,1, "Heiken Ashi",0,2,0); //Vorheriges Open

double close.5.0 =iCustom(NULL,1, "Heiken Ashi",0,3,0); //Vorheriger Close


bool Up.5.0 = (close.5.0>open.5.0);

bool Down.5.0 = (close.5.0<open.5.0);

// 5 min vergangen

double open.5.1 =iCustom(NULL,1, "Heiken Ashi",0,2,1); //Vorheriges Open

double close.5.1 =iCustom(NULL,1, "Heiken Ashi",0,3,1); //Vorheriger Close

bool Up.5.1 = (close.5.1>open.5.1);

bool Down.5.1 = (close.5.1<open.5.1);


ObjectCreate("square1",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.001, 0, Bid-0.001);

if(Down.5.0 == 1) ObjectSet("square1",OBJPROP_COLOR,Red);


ObjectCreate("square1",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.001, 0, Bid-0.001);

if(Down.5.0 == 0) ObjectSet("square1",OBJPROP_COLOR,White);


ObjectCreate("square2",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.0015, 0, Bid-0.0015);

if(Down.5.1 == 1) ObjectSet("square2",OBJPROP_COLOR,Red);


ObjectCreate("square2",OBJ_RECTANGLE, 0, TimeCurrent(), Ask-0.0015, 0, Bid-0.0015);

if(Down.5.1 == 0) ObjectSet("square2",OBJPROP_COLOR,White);


return(0);

}

 

Bitte benutzen Sie dies, um den Code zu posten. . das macht es einfacher zu lesen.

 
mrchuckw:

Ich habe noch nicht herausgefunden, die Indikator-Puffer noch,

aber der folgende Code tut, was ich will, Anzeige der aktuellen und vergangenen Bar Heiken Ashi Farbe.

Was es nicht tut, ist es in einem separaten Fenster setzen, und Anzeige NUR unter dem aktuellen bar.

Ist das möglich? Oder muss ich noch den Indikatorpuffer herausfinden?

Ich denke, Sie müssten einen Indikator auf dem separaten Fenster zeichnen, um das Fenster überhaupt erst zu erhalten, damit Sie die Objekte hinzufügen können.
 

etwas wie dies

double adUpBuffer[],
       adDnBuffer[];
//---- indicator colors
color  cDirection[2]={LimeGreen,FireBrick};
string sDirection[2]={"up", "down"};
int    iSquare=110;
double dGap=10*Point
//+------------------------------------------------------------------+
//   Custom indicator initialization function                        |
//+------------------------------------------------------------------+
int init()
  {
//---- drawing settings
   IndicatorBuffers(2);
   for(int i=0;i<2;i++){
   SetIndexStyle(i,DRAW_ARROW,clrDirection[i]);
   SetIndexArrow(i,iSquare);
   SetIndexDrawBegin(i,12);
   SetIndexLabel(i,sDirection[i]);}
//---- 2 indicator buffers mapping
   SetIndexBuffer(0,adUpBuffer);
   SetIndexBuffer(1,adDnBuffer);
//---- initialization done
   return(0);
  }


      if(Up.5.0)
           adUpBuffer[i]=Low[i]-dGap;
      else adDnBuffer[i]=NULL;
      if(Dn.5.0)
           adDnBuffer[i]=High[i]+dGap;}
      else adDnBuffer[i]=NULL;} 
 

Ich bin nicht gut mit Indikatoren ... werfen Sie einen Blick auf diese sehen, wenn es Ihnen gibt, was Sie brauchen ....

Dateien:
ashi1.mq4  3 kb
 

ok... ich arbeite daran... aber Sie gehen davon aus, dass ich VIEL mehr weiß als ich tue.

Im Anhang finden Sie mein gesamtes bisheriges Indikatorprogramm. Wie würde ich Ihren Code dort einfügen? Oder muss ich ein ganz neues Programm erstellen?

Ich habe versucht, ihn so gut es geht einzufügen, aber ich kann nicht kompilieren. Es mag das Double dGap=10*Point nicht, auch wenn ich ein ; dahinter gesetzt habe.

Und es gab eine Menge anderer Kompilierfehler. Ich schätze, ich bin einfach so dumm, dass ich nicht weiß, was ich jetzt tun soll.

Dateien:
objects2.mq4  3 kb
 
mrchuckw:

ok... ich arbeite daran... aber Sie gehen davon aus, dass ich VIEL mehr weiß als ich tue.

Im Anhang finden Sie mein gesamtes bisheriges Indikatorprogramm. Wie würde ich Ihren Code dort einfügen? Oder muss ich ein ganz neues Programm erstellen?

Ich habe versucht, ihn so gut es geht einzufügen, aber ich kann nicht kompilieren. Es mag das Double dGap=10*Point nicht, auch wenn ich ein ; dahinter gesetzt habe.

Und es gab eine Menge anderer Kompilierfehler. Ich schätze, ich bin einfach so dumm, dass ich nicht weiß, was ich jetzt tun soll.

Laden Sie einfach meinen Code herunter, kopieren Sie ihn in Ihre MT4-Verzeichnisstruktur in Indicators. Stoppen und starten Sie MT4 neu und fügen Sie den Indikator zu einem Chart hinzu ... wenn Sie Indikatorpuffer verwenden, brauchen Sie keine Objekte.
 

Wo kann ich Ihren Code herunterladen?

Sehen Sie, wie dumm ich bin?

 
mrchuckw:

Wo kann ich Ihren Code herunterladen?

Sehen Sie, wie dumm ich bin?

Es ist an meinen Beitrag angehängt, ein paar Beiträge weiter oben ... ashi1.mq4
 

das ist fast perfekt. Ich habe damit gespielt und mich köstlich amüsiert.

Ich glaube, ich habe es überlistet, aber jetzt werden die Quadrate in einem separaten Fenster angezeigt.

Dieser Teil funktioniert perfekt. Und jetzt... Ich kann nicht herausfinden, wie ich alle Quadrate in eine perfekte Linie bringe.

Ich möchte nämlich eine weitere Linie unter diese Linie setzen. Ich denke, ich kann herausfinden, wie man das macht... zumindest werde ich Spaß dabei haben.

die neue Linie wird ein größerer Zeitrahmen sein. Und die 3. Linie wäre ein noch größerer Zeitrahmen.

So sieht Ihr Ea aus, nachdem ich mit ihm gespielt habe. Können Sie mir sagen, wie man das Quadrat in eine gerade Linie bringt. ?

Danke

ps... Ich spiele schon eine Weile damit und kann nicht herausfinden, wie man eine zweite und dritte Linie bekommt und sie gerade macht.

Wenn Sie mir dabei helfen könnten, wäre ich Ihnen sehr dankbar. Die zweite Datei ist mein Versuch, die zweite Zeile zu erstellen.

Dateien:
ashi1_1.mq4  3 kb
ashi1-a.mq4  3 kb