Antwort

Text in einem Diagramm anzeigen

4 Antworten

Paul

Abonnent, bbp_participant, Gemeinschaft, 7 Antworten.

Profil besuchen

vor 10 Jahren #111323

Hier finden Sie einen Code, mit dem Sie bis zu 6 Textzeilen in einem Diagramm anzeigen können, was sehr praktisch für die Anzeige von Variablen beim Live-Test von EAs ist.

Kopieren Sie die ObjectCreate-Zeilen und die entsprechenden ObjectSetText-Zeilen und fügen Sie sie in das Feld Befehl der benutzerdefinierten Aktion ein.
Wenn Sie beispielsweise nur zwei Textzeilen benötigen, kopieren Sie ObjectCreate("Zeile1" und 2) und ObjectSetText("Zeile1 und 2") und fügen Sie sie ein, was zu vier benutzerdefinierten Aktionsbefehlen führt.

 

Passen Sie die folgenden Daten in den ObjectSetText-Zeilen an:
Mein Etikett" ist ein Textetikett für die Daten, die Sie anzeigen möchten.
Meine Variable" ist die Variable, deren Daten Sie anzeigen möchten.
Achten Sie darauf, die Syntax der übrigen Zeilen genau so zu belassen, wie dargestellt.

 

Das beigefügte Bildschirmfoto sollte dies verdeutlichen.

 

Zum Wohl,

Paul

 

ObjectCreate("Line1", OBJ_LABEL, 0, 0 , 0); ObjectSet("Line1", OBJPROP_CORNER, 0); ObjectSet("Line1", OBJPROP_XDISTANCE, 10); ObjectSet("Line1", OBJPROP_YDISTANCE, 130);

 

ObjectCreate("Line2", OBJ_LABEL, 0, 0 , 0); ObjectSet("Line2", OBJPROP_CORNER, 0); ObjectSet("Line2", OBJPROP_XDISTANCE, 10); ObjectSet("Line2", OBJPROP_YDISTANCE, 150);

 

ObjectCreate("Line3", OBJ_LABEL, 0, 0 , 0); ObjectSet("Line3", OBJPROP_CORNER, 0); ObjectSet("Line3", OBJPROP_XDISTANCE, 10); ObjectSet("Line3", OBJPROP_YDISTANCE, 170);

 

ObjectCreate("Line4", OBJ_LABEL, 0, 0 , 0); ObjectSet("Line4", OBJPROP_CORNER, 0); ObjectSet("Line4", OBJPROP_XDISTANCE, 10); ObjectSet("Line4", OBJPROP_YDISTANCE, 190);

 

ObjectCreate("Line5", OBJ_LABEL, 0, 0 , 0); ObjectSet("Line5", OBJPROP_CORNER, 0); ObjectSet("Line5", OBJPROP_XDISTANCE, 10); ObjectSet("Line5", OBJPROP_YDISTANCE, 210);

 

ObjectCreate("Line6", OBJ_LABEL, 0, 0 , 0); ObjectSet("Line6", OBJPROP_CORNER, 0); ObjectSet("Line6", OBJPROP_XDISTANCE, 10); ObjectSet("Line6", OBJPROP_YDISTANCE, 230);

 

ObjectSetText("Line1", "My Lable 1: " + my variable 1, 10, "Arial", White);

 

ObjectSetText("Line2", "My Lable 2: " + my variable 2, 10, "Arial", White);

 

ObjectSetText("Line3", "My Lable 3: " + my variable 3, 10, "Arial", White);

 

ObjectSetText("Line4", "My Lable 4: " + my variable 4, 10, "Arial", White);

 

ObjectSetText("Line5", "My Lable 5: " + my variable 5, 10, "Arial", White);

 

ObjectSetText("Line6", "My Lable 6: " + my variable 6, 10, "Arial", White);

0

JS17

Kunde, bbp_participant, Gemeinschaft, 73 Antworten.

Profil besuchen

vor 10 Jahren #122023

Toller Beitrag, vielen Dank 🙂

 

Nur eine kurze Frage, wenn ich darf, Ihr Beitrag sagt bis zu 6 Zeilen, ist 6 Zeilen eine Grenze innerhalb der Programmiersprache?

0

Mark Fric

Administrator, sq-ultimate, 2 Antworten.

Profil besuchen

vor 10 Jahren #122090

Nein, es gibt keine Begrenzung für die Anzahl der Textobjekte, die Sie anzeigen können.

 

Sie müssen nur weitere Textobjekte mit ObjectCreate() erstellen und können dann deren Wert mit ObjectSetText() setzen.

 

Mark
StrategyQuant Architekt

0

Brian Caudill

Kunde, bbp_participant, Gemeinschaft, 0 Antworten.

Profil besuchen

vor 5 Jahren #234676

Hier ist ein einfaches Verfahren, um beliebig viele Objekte zum Diagramm hinzuzufügen

int n=8;//ändern Sie diese Zahl in die Anzahl der Objekte, die Sie erstellen möchten
int distance_horizontal=10;//die horizontale Position
int distance_between_verticle=40;//der Abstand zwischen den einzelnen Objekten
int top_offset = 100; //Wie weit vom oberen Rand entfernt sollen die Objekte gedruckt werden (wenn sie nicht direkt am oberen Rand des Diagramms liegen sollen).
int text_color= clrAntiqueWhite; //die Farbe, die der Text in den Feldern haben soll
for(int i=0;i<n;i++){
ObjectCreate("Line "+i, OBJ_LABEL, 0, 0 , 0);
ObjectSet("Line "+i, OBJPROP_CORNER, 0);
ObjectSet("Line "+i, OBJPROP_XDISTANCE, distance_horizontal);
ObjectSet("Line "+i, OBJPROP_YDISTANCE, (distance_between_verticle * i)+ top_offset);
ObjectSetText("Line "+i, "My Lable "+i, 10, "Arial", White);
}

0

stickytrader

Abonnent, bbp_participant, 38 Antworten.

Profil besuchen

vor 4 Jahren #249063

Vielen Dank für die gemeinsame Nutzung dieser benutzerdefinierten Funktion. Gibt es eine Lösung, um Text auf dem Chart für die Backtesting anzeigen? zum Beispiel anstelle der Zeichnung Pfeil auf Charts drucken "Buy Signal" auf Backtest.

0

Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)