Affichage des résultats 1 à 4 sur 4
  1. #1
    Membre lvl 5
    Date d'inscription
    July 2009
    Messages
    10
    Pouvoir de réputation
    6

    Comment imposer un temp entre 2 ordres ? Comment imposer un temp entre 2 ordres ?

    Bonjour,

    Auriez-vous une idée pour imposer un temp mini entre 2 prises d'ordre ?
    J'ai essayé ça, mais ça ne fonctionne pas !
    Merci pour vos idées


    if(Ordertotal()==0)
    CheckForOpen(); //fonction avec conditions d'ouverture de position
    else
    CheckForClose(); //fonction avec conditions de fermeture de position

    if(OrdersTotal()==1)
    {if(TimeCurrent()-LastOrderOpenTime<=time)return(0); // time=variable à entrer dans les paramètres
    CheckForOpen();
    else
    CheckForClose();}

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

    Bonjour,

    Je ne suis pas expert en mql4 et je ne voit pas trop ce que tu cherche, cependant, il y a une fonction qui permet d'imposer un moment de pause dans ton programme, il s'agit de la fonction sleep(temps en milisecondes)

    void Sleep(int milliseconds)

    Moi.

  3. #3
    Membre Star Avatar de vamm972
    Date d'inscription
    November 2008
    Localisation
    quebec
    Messages
    1 485
    Pouvoir de réputation
    25

    voila ce que j'utilise dans tous mes EA et ca marche très bien

    bool EachTickMode = True;

    extern int Temporisation = 3; // Délai (compté en nombre de bougies) avant de pouvoir re-passer un ordre


    double Delai;


    ///////////////////////////////////// a mettre avant init ///////////////////////////////
    //------------------------------
    double Lots,Lotsbuy,Lotssell;
    //+------------------------------------------------------------------+
    //| Calcul du délai de carence |
    //+------------------------------------------------------------------+
    void Tempo()
    {
    if (Delai <= CurTime()) Delai=0;
    return;
    }
    void SetDelai()
    {
    Delai=CurTime()+(Temporisation*Period()*60);
    return(0);
    }

    int init() {

    BarCount = Bars;
    if (EachTickMode) Current = 0; else Current = 1;

    return(0);
    }


    ///////////////////////////// dans start ////////////////////////
    Tempo ();
    if (EachTickMode && Bars != BarCount) TickCheck = False;




    //// contrôle du délais avant le passage d'ordre //////////////////
    //Buy---------------------------------------------------------------------
    if (Delai!=0) return(0);
    if (Order == SIGNAL_BUY && ((EachTickMode && !TickCheck) || (!EachTickMode && (Bars != BarCount)))) {

    {
    Ticket = OrderSend(Symbol(), OP_BUY, LotSize, Ask, Slippage, 0, 0, EAName + "-" + nbtrade , MagicNumber, 0, Lime);

    if(Ticket > 0) {
    if (OrderSelect(Ticket, SELECT_BY_TICKET, MODE_TRADES)) {
    Print("BUY order opened : ", OrderOpenPrice());
    SetDelai();
    } else {
    Print("Error opening BUY order : ", GetLastError());
    }
    }
    if (EachTickMode) TickCheck = True;
    if (!EachTickMode) BarCount = Bars;
    return(0);
    }
    }

  4. #4
    Membre lvl 5
    Date d'inscription
    July 2009
    Messages
    10
    Pouvoir de réputation
    6

    Merci Vamm972, c'est exactement ce que je cherche
    Je vais tester, on verra bien

    @+

Discussions similaires

  1. Confirmation manuelle des ordres
    Par jl83 dans le forum Programmation
    Réponses: 2
    Dernier message: 12/07/2010, 14h03
  2. identification des ordres en cours
    Par TAAD dans le forum Programmation
    Réponses: 3
    Dernier message: 24/03/2010, 23h08
  3. Comment gérer les ordres ouvert
    Par dudu22 dans le forum Programmation
    Réponses: 0
    Dernier message: 02/07/2009, 14h44
  4. rapidité d'execution des ordres
    Par cris38 dans le forum Broker Forex
    Réponses: 0
    Dernier message: 27/08/2008, 18h48

Plan du site |