Auteur de l'idée — John Smith, auteur du code MQL5 — barabashkakvn.
Cet Expert Advisor (EA) est configuré pour trader la paire USDJPY sur le timeframe H1.
L'EA utilise deux moyennes mobiles, un MACD et un CCI. La fonction OnTradeTransaction est utilisée pour obtenir le moment d'ouverture des positions.
Tous les indicateurs sont récupérés à partir de la barre avec l'index 1.
//--- Configuration des Indicateurs CAMELHIGHP1=iMAGet(handle_iMA_PRICE_HIGH,1); CAMELLOWP1=iMAGet(handle_iMA_PRICE_LOW,1); // MACDSP1=iMACDGet(SIGNAL_LINE,1); MACDSP2=iMACDGet(SIGNAL_LINE,2); // MACDHP1=iMACDGet(MAIN_LINE,1); MACDHP2=iMACDGet(MAIN_LINE,2); // CCIP1=iCCIGet(1);
Un contrôle approprié est effectué pour vérifier si une position a déjà été ouverte sur la barre actuelle, ce qui évite de vérifier toutes les positions (car d'autres EAs peuvent être en cours d'exécution sur le même compte de trading).
Le moment d'ouverture des positions est contrôlé dans OnTradeTransaction. Si une fermeture de position est enregistrée, le temps d'ouverture sera réinitialisé :
//+------------------------------------------------------------------+ //| Fonction TradeTransaction | //+------------------------------------------------------------------+ void OnTradeTransaction(const MqlTradeTransaction &trans, const MqlTradeRequest &request, const MqlTradeResult &result) { //--- obtenir le type de transaction en tant que valeur d'énumération ENUM_TRADE_TRANSACTION_TYPE type=trans.type; //--- si la transaction est le résultat de l'ajout de la transaction à l'historique if(type==TRADE_TRANSACTION_DEAL_ADD) { long deal_entry =0; long deal_time =0; string deal_symbol =""; long deal_magic =0; if(HistoryDealSelect(trans.deal)) { deal_entry=HistoryDealGetInteger(trans.deal,DEAL_ENTRY); deal_time=HistoryDealGetInteger(trans.deal,DEAL_TIME); deal_symbol=HistoryDealGetString(trans.deal,DEAL_SYMBOL); deal_magic=HistoryDealGetInteger(trans.deal,DEAL_MAGIC); } else return; if(deal_symbol==m_symbol.Name() && deal_magic==m_magic) { if(deal_entry==DEAL_ENTRY_OUT) { m_last_close_time=(datetime)deal_time; } else if(deal_entry!=DEAL_ENTRY_OUT) { m_last_close_time=0; } } } }
Articles connexes
- Utiliser MQL5 Wizard pour Créer un Expert Advisor Basé sur les Modèles de Chandeliers Englobants et MFI
- Développez un Expert Advisor avec MQL5 : Signaux de Trading 3 Corbeaux Noirs / 3 Soldats Blancs + RSI
- Découvrez l'Expert Advisor exp_iCustom_v5 pour MetaTrader 4
- Découvrez le Système de Trading Exp_XPeriodCandle_X2 pour MetaTrader 5
- Découvrez CoensioTrader1V06 : Votre nouvel allié sur MetaTrader 5