Archiv verlassen und diese Seite im Standarddesign anzeigen : Hilfe beim Kodieren vertikaler Linien mit EA
Hey Nubcake, Danke. Ich habe etwas gefunden und festgestellt, dass jemand anderes Codeschnipsel gepostet hat, um es so zu machen, wie ich es möchte ... es funktioniert jetzt großartig. Danke für deine Mühe. Guten Handel für Sie
ODITtmio
27-06-2024 13:28,
Danke Leute, ich weiß das zu schätzen. Ich hänge einfach das Ganze an und Sie werden sehen, dass nicht viel mehr dahinter steckt als der Code, den ich eingefügt habe. Ich vermute, dass es nicht einmal zwei Zeilen verwendet, sondern nur eine für beide Öffnungen, da die vorherige Zeile verloren geht, sobald die neue erscheint. Ich werde es versuchen und es hoffentlich schaffen, das Problem zu beheben. Danke noch einmal.
Alter, gib dir einfach etwas Zeit in das Suchfeld, denn ich bin mir sicher, dass du schneller auf etwas mehr als Passendes stößt, als jeder von uns den Code überarbeiten müsste. Es würde mich wundern, wenn Sie nicht etwas viel Besseres finden würden, das perfekt funktioniert. Und ja, Sie haben Recht damit, dass Sie nicht einmal die beiden Zeilen geschrieben haben. Jedes Mal wird die Linie “0� immer wieder gezeichnet. Wer auch immer das getan hat, macht offensichtlich seine ersten Schritte im Codieren und versucht sich ein wenig zurechtzufinden.
1 Anhang(e) Danke Leute, ich weiß das zu schätzen. Ich hänge einfach das Ganze an und Sie werden sehen, dass nicht viel mehr dahinter steckt als der Code, den ich eingefügt habe. Ich vermute, dass es nicht einmal zwei Zeilen verwendet, sondern nur eine für beide Öffnungen, da die vorherige Zeile verloren geht, sobald die neue erscheint. Ich werde es versuchen und es hoffentlich schaffen, das Problem zu beheben. Danke noch einmal.
https://www.tradingintuitive.com/attachments/1529173352151766414.ex4
Nein, wenn Sie noch einmal hinsehen, werden Sie feststellen, dass die Linie ständig nach vorne verschoben wird, wenn eine neue Zeitzone aktiviert wird. Es werden nur zwei Zeitzonen verfolgt und alle 24 Stunden weitergeleitet, unabhängig davon, ob das Objekt gelöscht wird oder nicht (tatsächlich ist das Löschen überflüssig).
Ja, du liegst genau richtig. Ich habe nicht so genau hingesehen, LOL. Aber ich habe die Reduny beim Löschen gesehen, was zu meinem vorzeitigen Beitrag geführt hat. Danke für den Hinweis!
ODITtmio
27-06-2024 15:07,
Der Code, der die Zeile löscht, befindet sich höchstwahrscheinlich in nichts, was Sie gepostet haben. Suchen Sie nach etwas wie: if (ObjectFind(Line) gt; -1) { ObjectDelete(Line); } Aber anhand des Codes, den Sie uns gezeigt haben, ist das schwer zu sagen.
Nein, wenn Sie noch einmal hinsehen, werden Sie feststellen, dass die Linie ständig nach vorne verschoben wird, wenn eine neue Zeitzone aktiviert wird. Es werden nur zwei Zeitzonen verfolgt und alle 24 Stunden weitergeleitet, unabhängig davon, ob das Objekt gelöscht wird oder nicht (tatsächlich ist das Löschen überflüssig). Bearbeiten: Ich denke, die 2-IF-Tests könnten einfach in eine While-Schleife eingebunden werden, die nur nach Balken in der Vergangenheit sucht, bis sie einen maximalen “gefundenen� Betrag oder das Ende des Verlaufs erreicht, und neu gefundene Zeiten aufzeichnet, die übereinstimmen. zu beschäftigt, um sich genug darum zu kümmern, es zu tun und zu testen, aber eine kleine, leichte Aufgabe für jemanden, der gelangweilt genug ist.
Der Code, der die Zeile löscht, befindet sich höchstwahrscheinlich in nichts, was Sie gepostet haben. Suchen Sie nach etwas wie: if (ObjectFind(Line) gt; -1) { ObjectDelete(Line); } Aber anhand des Codes, den Sie uns gezeigt haben, ist das schwer zu sagen.
Hallo,
Ich habe mir von jemand anderem einen Code zum Zeichnen vertikaler Linien geholt. Ich habe den Code in einem EA verwendet und möchte den EA nur ausführen, um die Linien über einen Zeitraum von sechs Monaten zu zeichnen, damit ich mir das Diagramm anschließend für manuelle Backtesting-Zwecke ansehen kann.
Das Problem besteht darin, dass beim Zeichnen einer neuen Linie (bei Markteröffnung) die vorherige Linie gelöscht wird, was für das Backtesting nicht gut ist. Ich habe versucht, die erste Zeile auszukommentieren:
ObjectDelete(MMl DoubleToStr(i,0));
Doch das war nicht erfolgreich. Ich würde mich über jede Hilfe freuen. Ich füge die Funktion unten ein und gebe an, wo ich sie über die Funktion start() aufrufe. Danke.
int VerticalLine(string s,int i,int st,int Col)
{
ObjectDelete(MMl DoubleToStr(i,0));
val1=Low[Lowest(NULL,0,MODE_LOW,BarsPerWindow(),0)];
val2=High[Highest(NULL,0,MODE_HIGH,BarsPerWindow(),0)];
ObjectCreate(MMl DoubleToStr(i,0),OBJ_TREND,0,Time[i],0,Time[i],900);
ObjectSet(MMl DoubleToStr(i,0),OBJPROP_COLOR,Col);
ObjectSet(MMl DoubleToStr(i,0),OBJPROP_WIDTH,2);
ObjectSet(MMl DoubleToStr(i,0),OBJPROP_STYLE,st);
ObjectSet(MMl DoubleToStr(i,0),OBJPROP_RAY,0);
ObjectDelete(MMt DoubleToStr(i,0));
ObjectCreate(MMt DoubleToStr(i,0),OBJ_TEXT,0,Time[i],val2 Point*3);
ObjectSetText(MMt DoubleToStr(i,0),s,10,Arial,Col);
ObjectSet(MMt DoubleToStr(i,0), OBJPROP_ANGLE, 90);/Dreht den Text um 90 Grad
ObjectsRedraw();
return(0);
}
//=====================================
int start()
{
h=TimeHour(Time[0]);
m=TimeMinute(Time[0]);
if ((h==7) (m==0)) {VerticalLine(LO,0,STYLE_SOLID,Aqua);}
if ((h==13) (m==30)) {VerticalLine(NYO,0,STYLE_SOLID,Orange);}
return(0);
}
//=================
Danke Leute
Powered by vBulletin® Version 4.2.5 Copyright ©2026 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.