Rejoignez notre page de fans
- Vues:
- 149
- Note:
- Publié:
-
Besoin d'un robot ou d'un indicateur basé sur ce code ? Commandez-le sur Freelance Aller sur Freelance
Bonjour à tous,
Il s'agit d'une mise à jour de la"Stratégie de rupture simple mais efficace". Dans ce code, j'ai ajouté quelques fonctions d'aide pour les défis des sociétés de conseil.
En général, pour réussir un challenge prop firm, vous devez satisfaire trois critères principaux :
- Profit cible
- Ne pas dépasser la perte journalière maximale
- Ne pas dépasser la perte maximale
Dans ce code, j'ai inclus deux fonctions qui vérifient "Target profit" et "Almost violating maximum daily loss" pour sortir automatiquement de toutes les positions et supprimer tous les ordres en attente. La "perte maximale" dépend vraiment de votre stratégie et de votre gestion du risque, elle ne sera donc pas mentionnée dans ce script MQL5.
//+------------------------------------------------------------------+ //| Fonctions d'assistance de la société d'investissement| //+------------------------------------------------------------------+ // Supprimer tous les ordres en attente et sortir de toutes les positions 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); } } // Vérifier si nous avons atteint l'objectif de profit bool isPassed() { return AccountInfoDouble(ACCOUNT_EQUITY) > PASS_CRITERIA; } // Vérifier si nous sommes sur le point de dépasser la perte journalière maximale 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; // Solde actuel double current_balance = AccountInfoDouble(ACCOUNT_BALANCE); // Obtenir les transactions fermées d'aujourd'hui 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) { // Date d'obtention de l'offre MqlDateTime deal_time; TimeToStruct(HistoryDealGetInteger(ticket, DEAL_TIME), deal_time); // Vérifier l'heure de la transaction 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; }
Les paramètres que nous devons spécifier sont les suivants :
input string dd = "-------------PROP FIRM CHALLENGE-----------------"; input bool isChallenge = false; input double PASS_CRITERIA = 110100.; input double DAILY_LOSS_LIMIT = 4500.;
J'espère que vous trouverez des valeurs dans ce script.
Traduit de l’anglais par MetaQuotes Ltd.
Code original : https://www.mql5.com/en/code/49713
XMA_Ichimoku
Moyenne mobile dont l'algorithme de calcul est similaire à celui des moyennes de l'indicateur Ichimoku Kinko Hyo.
Ultra Momentum
Cet indicateur est basé sur les lectures de l'indicateur technique Momentum et l'analyse de ses nombreuses lignes de signal.
Click on the market chart to create a price alert
C'est une première pour MetaTrader 5. Vous pouvez désormais cliquer sur le graphique pour créer des alertes de prix.
3XMA_Ishimoku
Un indicateur dont les idées de construction rappellent beaucoup l'indicateur Ichimoku Kinko Hyo.