Text in einem Diagramm anzeigen
4 Antworten
Paul
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);
JS17
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?
Mark Fric
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
Brian Caudill
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);
}
stickytrader
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.
Ansicht von 4 Antworten - 1 bis 4 (von insgesamt 4)