Hinzufügen von Farbe zu einem Indikator

 

Ich möchte ein rotes (kleines) Quadrat auf das Diagramm drucken, wenn der nächsthöhere Zeitrahmen nach unten geht. Und ein weißes Quadrat, wenn es aufwärts geht.

Wie kann ich das machen? Sobald ich das herausgefunden habe, kann ich andere Zeitrahmen und verschiedene Balken hinzufügen.

Mein bisheriger Code ist:

// 30 min aktuell

double open.30.0 =iCustom(NULL,30,"Heiken Ashi",0,2,0); //Vorherige Eröffnung

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

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

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

Kommentar ("\n 30 min aktueller Auf- oder Abstieg " + Up.30.0 +" "+ Down.30.0);

Aber statt einer "0" oder einer "1" soll der Kommentar ein rotes oder weißes Quadrat oder einen Punkt anzeigen.


Für jede Hilfe wäre ich dankbar... Ich kann nichts finden, indem ich diese Seite oder das Web durchsuche.

 
mrchuckw:

Ich möchte ein rotes (kleines) Quadrat auf das Diagramm drucken, wenn der nächsthöhere Zeitrahmen nach unten geht. Und ein weißes Quadrat, wenn es aufwärts geht.

Wie kann ich das machen? Sobald ich das herausgefunden habe, kann ich andere Zeitrahmen und verschiedene Balken hinzufügen.

Mein Code ist bis jetzt:

// 30 min aktuell

double open.30.0 =iCustom(NULL,30, "Heiken Ashi",0,2,0); //Vorherige Eröffnung

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

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

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

Kommentar ("\n 30 min aktueller Auf- oder Abstieg " + Up.30.0 +" "+ Down.30.0);

Aber statt einer "0" oder einer "1" soll der Kommentar ein rotes oder weißes Quadrat oder einen Punkt anzeigen.


Für jede Hilfe wäre ich dankbar... Ich kann nichts finden, wenn ich diese Seite oder das Internet durchsuche.

Hallo mrchuckw,

Suchen Sie auf dieser Seite und in anderen FX-Foren nach EAs, die ObjectCreate-Code haben...

Sie verwenden ObjectCreate, um farbige Markierungen dort zu platzieren, wo Sie sie haben möchten.

Ich hoffe, das hilft,

Robert


 
Farbindikatoren verwenden zwei Puffer. Setzen Sie einen auf den Wert und den anderen auf den empty_value. Schauen Sie sich den Code einiger Indikatoren in der Codebasis an
 
Danke Robert!
 

Ich verwende den folgenden Code... warum wird kein weißes Rechteck in meinem Diagramm angezeigt?

ObjectCreate("Quadrat",OBJ_RECTANGLE,0,0,0);

ObjectSet("Quadrat",OBJPROP_XDISTANCE,193);

ObjectSet("Quadrat",OBJPROP_YDISTANCE,48);

ObjectSet("Quadrat",OBJPROP_COLOR,White);

 

mrchuckw:

Ich verwende den folgenden Code... warum wird kein weißes Rechteck in meinem Diagramm angezeigt?

ObjectCreate("Quadrat",OBJ_RECTANGLE,0,0,0);

ObjectSet("Quadrat",OBJPROP_XDISTANCE,193);

ObjectSet("Quadrat",OBJPROP_YDISTANCE,48);

ObjectSet("Quadrat",OBJPROP_COLOR,Weiß);

OBJ_RECTANGLE 16 Rectangle. Verwendet 2 Koordinaten. Eine Koordinate ist Zeit und Preis ... also ...

ObjectCreate("square",OBJ_RECTANGLE, 0, datetime time1, double price1, datetime time2, double price2);

ObjectSet("square",OBJPROP_COLOR,White);



Sie müssen die Werte für ... datetime time1, double price1, datetime time2, double price2 eingeben.

Oder vielleicht möchten Sie ein Label, OBJ_LABEL, und dann einen Wingding für das Quadrat verwenden? https://docs.mql4.com/constants/wingdings

 

Ok... denke ich. Ich will nicht, dass es sich nach Datum und Uhrzeit richtet... Glaube ich nicht.

Hier ist, was ich will. Am unteren Rand des Charts, unter dem aktuellen Balken, möchte ich ein Quadrat (Wingding 110 ?), die ich mit füllen kann platzieren

rot füllen kann, wenn der nächste Zeitrahmen nach unten geht, oder mit weiß füllen kann, wenn er nach oben geht.

Wenn dieser Balken schließt und der nächste Balken beginnt, möchte ich, dass das Quadrat unter den früheren Balken und ein neues Quadrat unter den neuen Balken verschoben wird...

macht das Sinn?

Wie würde also die ObjectCreate()-Zeile aussehen? Wie platziere ich sie auf dem Chart, wo ich sie haben möchte, oder sollte ich ein separates Fenster verwenden?

Vielen Dank für Ihre Hilfe.

 
mrchuckw:

Ok... denke ich. Ich will nicht, dass es sich nach Datum und Uhrzeit richtet... Glaube ich nicht.

Hier ist, was ich will. Am unteren Rand des Charts, unter dem aktuellen Balken, möchte ich ein Quadrat (Wingding 110 ?), die ich mit füllen kann platzieren

rot füllen kann, wenn der nächste Zeitrahmen nach unten geht, oder mit weiß füllen kann, wenn er nach oben geht.

Wenn dieser Balken schließt und der nächste Balken beginnt, möchte ich, dass das Quadrat unter den früheren Balken und ein neues Quadrat unter den neuen Balken verschoben wird...

macht das Sinn?

Wie würde also die ObjectCreate()-Zeile aussehen? Wie platziere ich sie auf dem Chart, wo ich sie haben möchte, oder sollte ich ein separates Fenster verwenden?

Vielen Dank für Ihre Hilfe.

Ah OK, Sie wollen also ein Quadrat unter jedem Balken, entweder weiß oder rot, abhängig von einem Indikator ... verwenden Sie keine Objekte, sondern Indikatorpuffer. ( https://docs.mql4.com/customind )

Erstellen Sie 2 Indikatorpuffer, einen für rote Quadrate, einen für weiße Quadrate, stellen Sie die Puffer so ein, dass sie leere Werte haben ( SetIndexEmptyValue( int index, double value) ), um das Quadrat unter dem Balken zu erhalten, verwenden Sie den niedrigen Wert des Balkens - 10 Pips ... das ist im Grunde das, worauf WHRoeder hinaus wollte.

 
Aber wenn ich es 10 Pips unter dem Preis setzen, wird es nicht herumspringen? vielleicht sollte ich es in einem separaten windo setzen. Ich möchte das Quadrat an der gleichen Stelle im Diagramm, egal was die Balken tun.
 
mrchuckw:
Aber wenn ich es 10 Pips unter den Preis setzen, wird es nicht herumspringen? vielleicht sollte ich es in einem separaten Fenster setzen.
Sie können es in ein separates Fenster setzen, wenn Sie wollen ... was ich sagte, war 10 Pips unter dem Low der Bar ... nicht unter dem aktuellen Preis. Der meiste Code, den Sie brauchen, ist allgemein, wenn Sie ihn in einem separaten Fenster machen, ist es einfach, ihn danach in eine Position unter dem Balken zu ändern...
 
OK... lassen Sie mich eine Weile damit spielen. Ich bin Ihnen für jede Hilfe dankbar!