Bonjour à tous,
J'ai essayé un peu de me mettre au MQL 5. J'ai voulu faire un petit bout de code qui me place un ordre BUY STOP et un ordre SELL STOP.
J'ai réussi à faire marcher le BUY STOP qui est bien placé comme je veux, mais par contre, le SELL STOP ne fonctionne pas. Voici le code que j'utilise.
La première moitié fonctionne... je pensais qu'en calquant le Sell stop sur le Buy stop, ça marcherai, mais visiblement pas... le Sell limit fonctionne par contre. La deuxième partie de code me retourne une erreur 4756, soit un problème dans les paramètres de l'ordre, mais je ne vois pas où est le soucis.Code:int err; bool ok = true; MqlTradeRequest request; MqlTradeResult result; if(m_achat && m_achat2) { //Information d'ordres. request.action = TRADE_ACTION_PENDING; request.type = ORDER_TYPE_BUY_STOP; request.symbol = Symbol(); request.magic = m_magic; request.price = m_plusHaut; request.volume = m_lots; request.tp = m_plusHaut + m_limit*m_symbol.Point(); request.sl = m_plusHaut - m_stop*m_symbol.Point(); request.deviation = 50; request.type_filling = ORDER_FILLING_AON; request.expiration = TimeCurrent()+24*60*60; request.comment = "Ordre d'achat - Expers High Low"; ok = OrderSend(request,result); if(!ok) { err = GetLastError(); Print("Erreur ordre achat (",err,")"); } } MqlTradeRequest request2; MqlTradeResult result2; if(m_vente && m_vente2) { //Informations d'ordre. request2.action = TRADE_ACTION_PENDING; request2.type = ORDER_TYPE_SELL_STOP; request2.symbol = Symbol(); request2.magic = m_magic; request2.price = m_plusBas; request2.volume = m_lots; request2.tp = m_plusBas - m_limit*m_symbol.Point(); request2.sl = m_plusBas + m_stop*m_symbol.Point(); request2.deviation = 3; request2.type_filling = ORDER_FILLING_AON; request2.expiration = TimeCurrent()+24*60*60; request2.comment = "Ordre de vente - Expert High Low"; ok = OrderSend(request2,result2); if(!ok) { err = GetLastError(); Print("Erreur ordre vente (",err,")"); } }
Une idée?
Merci,
Cam'
![]() |
|


LinkBack URL
About LinkBacks
Répondre avec citation