|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Erst mal vielen Dank nochmals. Ich habe es mittlerweile gecheckt und habe die Linie auch zum bewegen gebracht wie ich es will.
Jetzt stehe ich aber vor ein neuen Problem. Ich habe mir über den Comment die "double Variabel" der Linie auslesen lassen und gesehen, dass diese Variabel eine wechselnde Zahlenfolge zeigt, statt den aktuellen Kurswert der Linie, was für mich wichtig wäre. Um z.B. mit der Line eine Order zu öffnen oder zu schließen würde ich den Kurswert der Linie benötigen um diese mit der aktuellen Ask- oder Bid-Line abzugleichen, damit ich eine Signal setzen kann. Soweit zumindest meine Logik. Glaube ich ..... Hilfe ...Wer hat eine Rat??? Woher bekomme ich den aktuellen Kurswert der zu bewegenden Linie her bzw. wie kann ich diese als richtige double Variabel speichern lassen? |
|
|||
Oh oh, dein Linienwert sieht ja mal garnicht richtig aus.
Ich frage mich, wie du diesen Wert angezeigt bekommst, also was steht da vom Code her? Um den Preis der Linie abzufragen, kannst du Code:
ObjectGetDouble(ChartID,"ObjectName",OBJPROP_PRICE); Code:
ObjectGetDouble(0,"Bid-Linie",OBJPROP_PRICE); Code:
NormalizeDouble(ObjectGetDouble(0,"Bid-Linie",OBJPROP_PRICE),_Digits) |
|
|||
ich bitte um Entschuldigung wenn ich leider sagen muss, dass ich eher ein blutiger Anfänger bin was das programmieren angeht. Ich habe zwar schon in kurzer Zeit so einiges zum laufen gebracht aber mir fehlt noch viel dazu.
@next user....danke dir auch für die Hilfe aber damit kann ich derzeit nicht viel anfangen, weil das Code-schnipsel sind, wo ich nicht weis wo ich die einfügen soll oder wie ich damit den Wert auslesen kann. Ich sehe nur über den Comment für die Linie, dass wenn jedes mal die Linie (in meinen Fal)l nach unten bewegt sich eine Reihe von Zahlen wirrlos ändert. Hier der Code als Beispiel: PHP-Code:
|
|
|||
Ich habe den Fehler gefunden
Code:
Comment(StringFormat("Account = %G EUR \nLots = %G\n Bid-Line = %d",Account,Lots,Bid_Line)); |
|
|||
Kein Problem, fängt ja jeder klein an.
Zu meinem Codeschnipsel mal ein kleines Beispiel: Code:
//Aktuellen Ask-Preis ermitteln double a_ask = SymbolInfoDouble(Symbol(),SYMBOL_ASK); ObjectCreate(0,"Bid_Linie",OBJ_HLINE,0,0,a_ask); //Aktuellen Preis der Linie ermitteln und speichern double aktueller_LinienPreis = ObjectGetDouble(0,"Bid-Linie",OBJPROP_PRICE); Da du gefragt hast, wie du den Wert deiner Linie auslesen kannst, habe ich dir den Code gegeben. Aber wenn du nur, wie zu sehen, die Variable mit dem Wert nur mit Bid/Ask vergleichst, brauchst du den Wert ja nicht ermitteln. Zu deinem Code, es wäre besser, wenn du ObjectDelete() und ObjectCreate() nicht ständig aufrufst. OnTick() wird ja bei jeder Kursveränderung aufgerufen (bei jedem Tick halt). Es ist einfach sinnlos, sein Objekt zu löschen und neu zu zeichnen. Vor allem rufst du ObjectDelete und ObjectCreate nicht erst nach einer Bedingung, sondern immer auf. Also auch wenn der Kurs in die andere Richtung geht, löscht und erstellst du deine Linie neu, obwohl diese sich nicht geändert hat. An der stelle wäre es so besser: Code:
void OnTick() { if(runter == 0) { if(Bid_Line > Bid) { Bid_Line = Bid; ObjectMove(0,"Bid_Linie",0,0,Bid_Line); } } double Account= AccountEquity(); Comment(StringFormat("Account = %G EUR \nLots = %G\n Bid-Line = %d",Account,Lots,Bid_Line)); } Außerdem würde ich dir mal die Funktion OnInit() empfehlen. Diese wäre gut, um alle Standard-Einstellungen und Initialisierungen vorzunehmen. Sie wird automatisch aufgerufen, sobald dein EA startet (wie der Name sagt "initialisieren"). Was deine Lots angeht, so können bei verschiedenen Symbolen(Währungspaare, Indices, ect.) unterschiedliche, minimale Lots sein(z.b beim einen 0.01, beim anderen 0.10). Da solltest du deine Lot-Variable vielleicht besser mit Zitat:
|
|
|||
@Richi777
Den Wert der Linie auslesen brauchst Du nur, wenn Du eine Linie auch manuell verschieben können möchtest und der EA die verschobene Linie benutzen soll (in der Art, wie Du auch beim händischen Handel im MT4 den SL und den TP verschieben kannst). Wenn Du das nicht möchtest, dann kannst Du es genau so machen, wie next_user geschrieben hat. |
Lesezeichen |
Stichworte |
hline, horizontale line, horizontale linie, linie, mql4, programmierung, programmierung metatrader, programmierung mql4, stop, trailing, trailingstop |
|
|