|
Programmierung MQL4 Hier gehts rund ums Programmieren in MQL4. |
|
Themen-Optionen | Thema durchsuchen | Ansicht |
|
|||
Trademanger
Hallo zusammen,
kennt von euch vielleicht einer einen "vernünftigen" Trademanger? Mir geht es eigentlich nur um eine einzige Funktion. Und zwar sollen bestehende Positionen beim erreichen des beim platzieren der Order angegbenen TP um 50% reduziert werden und für die verbleibenden 50% der TP verdoppelt. Zudem der SL auf BE nachgezogen. Ich würde mich auch freuen wenn mir jemand einen Tipp geben könnte wie ich sowas programmieren kann. Hilfe bei der Logik! |
|
|||
Hallo,
zu den 2 TakeProfits: du könntest ja generell 2 Positionen eröffnen mit jeweils der halben Lotsize. Dann kannst du für die beiden Positionen getrennte TP's festlegen. Das wäre meiner Meinung die einfachste Lösung. ---Leopold--- |
|
|||
Zum BE: Ich möchte sowieso eine Funktion zum nachziehen auf BE schreiben. Wenn es sich ausgeht werd ich diese heute nachmittag schreiben und diese dann posten. Meine Herangehensweise wäre wenn ein vielfaches des Risikos erreicht ist, wird der Stop auf BE nachgezogen.
---Leopold--- |
|
|||
Hallo,
so hab das mal geschrieben. Code:
void Check_BreakEvenLevels (int EA_ID, double Faktor_BreakEvenLevel) { ResetLastError(); for (int i = OrdersTotal() - 1; i >= 0; i--) { bool Order_Select = OrderSelect(i, MODE_TRADES); if (Order_Select == True) { if (OrderMagicNumber() == EA_ID && OrderType() <= 1) { double OpenPrice = OrderOpenPrice(), StopLossPrice = OrderStopLoss(); if (OrderType() == OP_BUY && StopLossPrice != 0 && StopLossPrice < OpenPrice) { double BreakEvenLevel = OpenPrice + ((OpenPrice - StopLossPrice) * Faktor_BreakEvenLevel); if (Bid >= BreakEvenLevel) { bool Order_Modify = OrderModify(OrderTicket(), OpenPrice, OpenPrice, OrderTakeProfit(), 0); if (Order_Modify == False) Print("Fehler bei OrderModify. Ticket: ", OrderTicket(), "Error: ", GetLastError()); } } else if (OrderType() == OP_SELL && StopLossPrice != 0 && StopLossPrice > OpenPrice) { double BreakEvenLevel = OpenPrice - ((StopLossPrice - OpenPrice) * Faktor_BreakEvenLevel); if (Ask <= BreakEvenLevel) { bool Order_Modify = OrderModify(OrderTicket(), OpenPrice, OpenPrice, OrderTakeProfit(), 0); if (Order_Modify == False) Print("Fehler bei OrderModify. Ticket: ", OrderTicket(), "Error: ", GetLastError()); } } } //Ende Kontrolle MagicNumber } //Ende Kontrolle OrderSelect } //Ende For-Schleife Orders } //Ende Funktion Check_BreakEvenLevels Vielleicht kannst du das mal testen. mfg Leopold Geändert von Leopold (21.07.17 um 14:31 Uhr) |
Lesezeichen |
Stichworte |
manager, mql4, programmierung, programmierung metatrader, programmierung mql4, trade manager, trademanager |
|
|