Affichage des résultats 1 à 2 sur 2
  1. #1
    Nouveau membre
    Date d'inscription
    June 2010
    Messages
    3
    Pouvoir de réputation
    5

    [MQL5] Problème ordre Sell stop [MQL5] Problème ordre Sell stop

    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.

    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,")");
          }
       }
    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.

    Une idée?

    Merci,

    Cam'

  2. #2
    Nouveau membre
    Date d'inscription
    June 2010
    Messages
    3
    Pouvoir de réputation
    5

    Mise à jour pour ceux que ça intéresse ^^.
    Le code ci-dessus fonctionne bien en réalité. C'est juste que lorsque j'ai fait mes tests, l'écart entre le sell stop et le cours actuel était trop faible... du coup l'ordre était refusé.

    Voilà, problème résolu.

    Cam'

Discussions similaires

  1. ordre stop besoin d'aide
    Par sigmound dans le forum Novice sur le Forex
    Réponses: 4
    Dernier message: 26/02/2010, 18h48
  2. Sell Stop et Buy stop sur MT4
    Par nickleus dans le forum Programmation
    Réponses: 2
    Dernier message: 05/01/2010, 08h03
  3. Buy et Sell avec Trailing Stop et TP
    Par furious8 dans le forum Programmation
    Réponses: 1
    Dernier message: 16/07/2009, 15h16
  4. Ordre stop ou take profit exécuté plateforme fermée?
    Par gizmo dans le forum Novice sur le Forex
    Réponses: 3
    Dernier message: 02/02/2009, 18h19
  5. Error Opening SELL ordre:130
    Par pinklady1972 dans le forum Systèmes de Trading Auto
    Réponses: 0
    Dernier message: 04/11/2008, 16h02

Plan du site |