Mon compte
Déjà membre ? S'identifier
Non inscrit ? S'inscrire
 
+ Répondre à la discussion
Affichage des résultats 1 à 8 sur 8
  1. #1
    Membre lvl 25 ericbully est sur la route de la réputation...
    Date d'inscription
    October 2009
    Localisation
    Lyon
    Messages
    30
    Pouvoir de réputation
    5

    Plusieurs ordres à la fois avec 6 EA différents Plusieurs ordres à la fois avec 6 EA différents

    Comment faire ?

    J'ai un EA pour chaque paire (6 paires).
    Je voudrais que chaque EA déclenche 1 ordre et un seul par paire, avec donc un potentiel de 6 ordres ouverts à la fois.

    C'est là où je bloque. J'utilise la fonction OrdersTotal() , mais du coup je peux avoir 6 ordres à la fois pour la même paire (ce que je ne veux pas) et 0 ordres pour les 5 paires restantes.
    Ce doit être un problème courant ça ?

    Quelqu'un à une idée sur le code à utiliser , merci d'avance.

    total=OrdersTotal();
    if(total<6)
    {

  2. #2
    Membre Star vamm972 est actif et passionnant vamm972 est actif et passionnant Avatar de vamm972
    Date d'inscription
    November 2008
    Localisation
    quebec
    Messages
    1 429
    Pouvoir de réputation
    24

    Citation Envoyé par ericbully Voir le message
    Comment faire ?

    J'ai un EA pour chaque paire (6 paires).
    Je voudrais que chaque EA déclenche 1 ordre et un seul par paire, avec donc un potentiel de 6 ordres ouverts à la fois.

    C'est là où je bloque. J'utilise la fonction OrdersTotal() , mais du coup je peux avoir 6 ordres à la fois pour la même paire (ce que je ne veux pas) et 0 ordres pour les 5 paires restantes.
    Ce doit être un problème courant ça ?

    Quelqu'un à une idée sur le code à utiliser , merci d'avance.

    total=OrdersTotal();
    if(total<6)
    {
    je suis pas un pro en prog , je sais pas si ca peut t'aider , de plus j'ai pas la suite de ton code alors pour moi c'est très difficile , mais voici un exemple de ce que j'utilise pour clôturer mes ordres de la paire ou est posé l'EA

    //-------------------------------------
    int CloseBuyOrders(int MagicNumber)
    {
    int total=OrdersTotal();
    for (int cnt=total-1;cnt>=0;cnt--)
    {
    OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES);
    if (OrderSymbol() != Symbol() || OrderMagicNumber() != MagicNumber) continue;
    if(OrderMagicNumber()==MagicNumber&&OrderSymbol()= =Symbol())
    {
    if(OrderType()==OP_BUY)
    {
    OrderClose(OrderTicket(),OrderLots(),Bid,3,Lime);
    }
    }
    }
    return(0);
    }
    //------------------------------------

    si tu contrôle par magicnumber et symbol , je pense que ton pb va être résolu

    un ami m'avait pondu ce code qui marche super bien pour le nb de trade par paire

    avant le passage des ordres il faut mettre ca

    if(counttradesBUY() < maxtrade)

    if(counttradesSELL() < maxtrade)


    et tu déclare maxtrade comme ceci

    extern double maxtrade = 30;

    après les passage d'ordre on met ca

    //fonction comptages des trades ouverts pour la paire

    int counttradesBUY() {
    int i = 0;
    int count = 0;
    for(i=0; i<OrdersTotal(); i++)
    {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

    if((OrderType()== OP_BUY) && (OrderSymbol() == Symbol()))
    {
    count++;
    continue;
    }

    }
    return(count);
    }

    int counttradesSELL() {
    int i = 0;
    int count = 0;
    for(i=0; i<OrdersTotal(); i++)
    {
    OrderSelect(i, SELECT_BY_POS, MODE_TRADES);

    if((OrderType()== OP_SELL) && (OrderSymbol() == Symbol()))
    {
    count++;
    continue;
    }

    }
    return(count);
    }
    Dernière modification par vamm972 ; 08/11/2009 à 21h08.

  3. #3
    Membre lvl 25 Mikeni est sur la route de la réputation... Avatar de Mikeni
    Date d'inscription
    March 2009
    Localisation
    Toulouse - France
    Messages
    43
    Pouvoir de réputation
    5

    Salut ,

    il faut utiliser la fonction OrdersHistoryTotal() pour pouvoir travailler sur plusieurs paires avec un EA placé sur une paire.

    OrdersTotal() ne donne des infos que sur les trades de la paire sur laquelle est placée l'EA.

    bonne prog !

  4. #4
    Membre Star vamm972 est actif et passionnant vamm972 est actif et passionnant Avatar de vamm972
    Date d'inscription
    November 2008
    Localisation
    quebec
    Messages
    1 429
    Pouvoir de réputation
    24

    Citation Envoyé par Mikeni Voir le message
    Salut ,

    il faut utiliser la fonction OrdersHistoryTotal() pour pouvoir travailler sur plusieurs paires avec un EA placé sur une paire.

    OrdersTotal() ne donne des infos que sur les trades de la paire sur laquelle est placée l'EA.

    bonne prog !
    ou alors appeler le symbol de la paire de cette manière "EURUSD" , plutôt que symbol() , cette méthode permet aussi de passer des ordres en triangulation de paire , ex: signal buy sur EURUSD et achat sur USDJPY en même temps ou l'inverse ex: buy EURUSD et sell USDJPY

    tu connais bien la prog mikeni ?
    et en passant très belle photo de profil

  5. #5
    Membre lvl 75 fxconfidential deviendra bientot célèbre... Avatar de fxconfidential
    Date d'inscription
    April 2008
    Localisation
    Barcelone
    Messages
    84
    Pouvoir de réputation
    10

    Si tu disposes d'un EA différent pour chaque paire, pourquoi ne pas utiliser un magic number différent tu vérifies avec une boucle for si il existe un trade en cours sur cette paire.

    Si trade existe alors tu n'autorises pas de trade supplémentaire.

    Dis nous en plus sur ton programme car je vois pas vraiment où se situes ton problème.

    Bonne soirée

  6. #6
    Membre lvl 25 ericbully est sur la route de la réputation...
    Date d'inscription
    October 2009
    Localisation
    Lyon
    Messages
    30
    Pouvoir de réputation
    5

    Merci de vos réponses.

    Mon EA ci-joint marche bien, mais en fait il est limité à un ordre au total ( total=OrdersTotal(); if(total<1) ) alors que j'en voudrais un pour chaque paire.
    Je vais essayer ce que vous m'avez dit, mais c'est vrai que j'ai du mal avec la programmation, faut que je m'y mette, quoi...

    J'ai mis le code en pièce jointe, si vous voulez y jetez un œil.
    J'ai tout de même noté que j'ai squeezé la partie du style " for(cnt=0;cnt<total;cnt++) " que je retrouve dans de nombreux EA et qui semble être la clé de mon problème.

    Bonne journée.
    Fichiers attachés

  7. #7
    Membre lvl 25 Mikeni est sur la route de la réputation... Avatar de Mikeni
    Date d'inscription
    March 2009
    Localisation
    Toulouse - France
    Messages
    43
    Pouvoir de réputation
    5

    je rectifie :
    OrdersHistoryTotal() donne accès à tous les ordres fermés du compte, ce qui ne nous interesse pas pour le problème posé. Cette fonction est interessante pour faire des statistiques sur les stratégies par exemple.

    On peut utiliser OrdersTotal() pour travailler sur les ordres en cours ou en attente (pending orders).

    Pour faire la distinction entre les paires, on peut utiliser OrderSymbol() que l'on peut comparer avec Symbol() ou "EURUSD", "EURJPY", etc...

  8. #8
    Membre lvl 25 ericbully est sur la route de la réputation...
    Date d'inscription
    October 2009
    Localisation
    Lyon
    Messages
    30
    Pouvoir de réputation
    5

    Après de nombreuses heures de réflexion, ça y est j'ai trouvé . Les réponses m'ont mis sur la piste.
    J'ai repris mon EA et "épuré" au maximum pour mieux comprendre.

    J'ai rajouté le code suivant avant le passage d'ordre :

    int OrderForThisSymbol=0;
    for(int x=0;x<OrdersTotal();x++)
    {
    OrderSelect(x, SELECT_BY_POS, MODE_TRADES);
    if(OrderSymbol()==Symbol()) OrderForThisSymbol++;
    }//end for
    if( OrderForThisSymbol==0)
    {


    Ca semble fonctionner jusqu'à présent.

    J'ai pu aussi laisser la fonction total=OrdersTotal();
    if(total<4)
    qui me rassure et limite le nombre d'ordre au total en cas d'emballement d'un des EA.

    Bonne journée.

Discussions similaires

  1. plusieurs ordres antagonistes sur la meme paire
    Par titi1969 dans le forum Broker Forex
    Réponses: 4
    Dernier message: 31/08/2011, 00h19
  2. lancer 2 ordres sur 2 paires differentes avec un seul ea sur Metatrader
    Par raf34 dans le forum Systèmes de Trading Auto
    Réponses: 5
    Dernier message: 20/07/2009, 00h07
  3. Différents indicateurs avec alerte sonore MT4
    Par stemaie dans le forum Trading Divers
    Réponses: 8
    Dernier message: 13/10/2008, 07h24
  4. les differents ordres sur le forex
    Par bagatel dans le forum Novice sur le Forex
    Réponses: 2
    Dernier message: 24/08/2008, 16h50
  5. EUR/USD - Va rebondir plusieurs fois sur les 1.5400
    Par Saxo Banque dans le forum Analyses Forex professionnelles
    Réponses: 0
    Dernier message: 13/06/2008, 10h00

Ajouter aux Favoris | Plan du site | Archives | Forex | Contact