MetaTrader5
Proffessor v3 : Votre Expert en Trading pour MetaTrader 5
L'auteur de l'idée : vitalyAuteur du code MQL5 : barabashkakvnLa stratégie de trading est assez simple. Une position d'achat ou de vente est ouverte et protégée par un ordre d'arrêt en attente à une distance de Delta 1. Ensuite, un grille composée d'ordres en attente Limit ou Stop est créée à une distance de Delta 2 les uns des autres. Le nombre d'ordres en attente dans chaque direction est défini dans Max Lines. Les ordres en attente (Buy Limit, Sell Limit, Buy Stop et Sell Stop) sont configurés via une seule fonction PendingOrder, à laquelle un type d'ordre (order_type), un volume (volume), un stop loss (sl) et un take profit (tp) sont passés.//+------------------------------------------------------------------+
//| Ordre en attente |
//+------------------------------------------------------------------+
void PendingOrder(ENUM_ORDER_TYPE order_type,double volume,double price,double sl,double tp)
{
sl=m_symbol.NormalizePrice(sl);
tp=m_symbol.NormalizePrice(tp);
if(m_trade.OrderOpen(m_symbol.Name(),order_type,volume,0.0,
m_symbol.NormalizePrice(price),m_symbol.NormalizePrice(sl),m_symbol.NormalizePrice(tp)))
{
if(m_trade.ResultOrder()==0)
{
Print("#1 ",EnumToString(order_type)," -> false. Code de résultat : ",m_trade.ResultRetcode(),
", description du résultat : ",m_trade.ResultRetcodeDescription());
PrintResultTrade(m_trade,m_symbol);
}
else
{
Print("#2 ",EnumToString(order_type)," -> true. Code de résultat : ",m_trade.ResultRetcode(),
", description du résultat : ",m_trade.ResultRetcodeDescription());
PrintResultTrade(m_trade,m_symbol);
}
}
else
{
Print("#3 ",EnumToString(order_type)," -> false. Code de résultat : ",m_trade.ResultRetcode(),
", description du résultat : ",m_trade.ResultRetcodeDescription());
PrintResultTrade(m_trade,m_symbol);
}
//---
}
Lorsque l'objectif de profit Profit Close est atteint, fermez toutes les positions et supprimez tous les ordres en attente. Vous pouvez également fermer toutes les positions et supprimer les ordres en attente si vous perdez plus que le Loss Close (si vous définissez Loss Close à 0.0, le paramètre est désactivé).Le fonctionnement de l'EA (ouverture de positions et mise en place d'ordres d'attente protecteurs) s'effectue dans l'intervalle horaire de travail de Start hour à End hour (Start hour peut être inférieur à End hour ou le dépasser).Idée principaleAnalyse de la valeur ADX sur le timeframe Work TimeFrame. Si l'ADX est inférieur à 40, cela est considéré comme plat, et des ordres en attente Limit sont placés. Sinon, des ordres en attente Stop sont utilisés ;Si DI+ est supérieur à DI-, achetez, sinon, vendez.Les meilleurs résultats d'optimisation des deux paramètres (Current bar ADX de 0 à 2, pas 1 et Work TimeFrame de M1 à H1)EURUSD, Current bar ADX 0, Work TimeFrame H1USDJPY, Current bar ADX 2, Work TimeFrame M1Dans le cas de l'EURUSD, Current bar ADX 0, Work TimeFrame H1, mais le paramètre Loss Close est réglé à "0.0"et USDJPY, Current bar ADX 2, Work TimeFrame M1, mais le paramètre Loss Close est réglé à "0.0"
2018.10.26