und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
- Ansichten:
- 79
- Rating:
- Veröffentlicht:
-
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Hallo zusammen,
Dies ist ein Update der"Simple Yet Effective Breakout Strategy". In diesem Code habe ich einige Hilfsfunktionen für Prop Firm Challenges hinzugefügt.
Im Allgemeinen müssen Sie drei Hauptkriterien erfüllen, um eine Prop-Firm-Challenge zu bestehen:
- Zielgewinn
- Nicht gegen den maximalen Tagesverlust verstoßen
- Nicht gegen den maximalen Verlust verstoßen
In diesem Code habe ich zwei Funktionen eingebaut, die auf "Zielgewinn" und "Beinahe Verletzung des maximalen Tagesverlustes" prüfen, um automatisch alle Positionen zu beenden und alle ausstehenden Aufträge zu löschen. Der "maximale Verlust" hängt wirklich von Ihrer Strategie und Ihrem Risikomanagement ab und wird daher in diesem MQL5-Skript nicht erwähnt.
//+------------------------------------------------------------------+ //| Prop Firm Helper Functions| //+------------------------------------------------------------------+ // Alle ausstehenden Aufträge löschen und alle Positionen auflösen void ClearAll(string message) { Comment(message); for (int i = OrdersTotal() - 1; i >= 0; i--) { ulong orderTicket = OrderGetTicket(i); if (OrderSelect(orderTicket)) { trade.OrderDelete(orderTicket); } } for (int i = PositionsTotal() - 1; i >= 0; i--) { ulong posTicket = PositionGetTicket(i); trade.PositionClose(posTicket); } } // Prüfen Sie, ob wir das Gewinnziel erreicht haben bool isPassed() { return AccountInfoDouble(ACCOUNT_EQUITY) > PASS_CRITERIA; } // Prüfen Sie, ob wir kurz davor sind, den maximalen Tagesverlust zu verletzen bool isDailyLimit() { MqlDateTime date_time; TimeToStruct(TimeCurrent(), date_time); int current_day = date_time.day, current_month = date_time.mon, current_year = date_time.year; // Aktueller Saldo double current_balance = AccountInfoDouble(ACCOUNT_BALANCE); // Abrufen der heute abgeschlossenen Geschäfte PL HistorySelect(0, TimeCurrent()); int orders = HistoryDealsTotal(); double PL = 0.0; for (int i = orders - 1; i >= 0; i--) { ulong ticket=HistoryDealGetTicket(i); if(ticket==0) { Print("HistoryDealGetTicket failed, no trade history"); break; } double profit = HistoryDealGetDouble(ticket,DEAL_PROFIT); if (profit != 0) { // Datum und Uhrzeit des Geschäftsabschlusses abrufen MqlDateTime deal_time; TimeToStruct(HistoryDealGetInteger(ticket, DEAL_TIME), deal_time); // Überprüfung der Geschäftszeit if (deal_time.day == current_day && deal_time.mon == current_month && deal_time.year == current_year) { PL += profit; } else break; } } double starting_balance = current_balance - PL; double current_equity = AccountInfoDouble(ACCOUNT_EQUITY); return current_equity < starting_balance - DAILY_LOSS_LIMIT; }
Die Parameter, die wir angeben müssen, sind:
input string dd = "-------------PROP FIRM CHALLENGE-----------------"; input bool isChallenge = false; input double PASS_CRITERIA = 110100.; input double DAILY_LOSS_LIMIT = 4500.;
Ich hoffe, Sie finden Werte in diesem Skript.
Übersetzt aus dem Englischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/en/code/49713
Wahrscheinlichkeitstheorie Expert Advisor für Forex
Berater für Wahrscheinlichkeitstheorie
Babi Ngepet
Ich teile meinen Code für den Expert Advisor Babi Ngepet
Click on the market chart to create a price alert
Dies ist eine Premiere für MetaTrader 5. Jetzt können Sie auf den Chart klicken, um Kurswarnungen zu erstellen.
Count consecutive no. of bull or bear bars
Beispielcode zum Zählen der aufeinanderfolgenden Bullen- und Bärenbalken.