Toute question de débutant, afin de ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 6. - page 502

 

if(!ExistPositions(Symbol(),-1,44444))OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point,44444)

poprobuj

 
Zver4991:


il faudrait donc vérifier s'il n'y a pas de positions ouvertes avec cet assistant, quelle que soit l'heure d'ouverture..... une simple limite sur l'assistant....toast

if(ExistPositions(NULL,-1,44444,-1)==false)//s'il n'y a pas de positions ouvertes avec ce nombre magique, alors vérifiez.......

.... ou peut-être que je ne comprends pas.... j'ai -1 parce que je ne me soucie pas de savoir quand une position s'est ouverte ..... de toute façon elle ne s'ouvrira que sur une nouvelle barre et quand l'ancienne sera fermée parce que les conditions spécifient que la position ne peut s'ouvrir que s'il n'y a pas de positions ouvertes avec ce nombre magique

pour faire encore plus simple : ouvrir une position et attendre qu'elle se ferme.... quand il se ferme puis s'ouvre à nouveau et il ne faut certainement pas ouvrir sur chaque barre une position avec un tel magicien.... il est vérifié à nouveau s'il n'y a pas de positions ouvertes avec un tel magicien.


Mettez donc 0 dans le dernier paramètre, pour que le moment où la position est ouverte n'ait pas d'importance.
 
r772ra:

Alors mettez 0, dans le dernier paramètre, pour que ça n'ait pas d'importance quand la position s'est ouverte.

J'ai fait cela et cela n'a pas aidé, il génère toujours une position sur chaque barre.
 
gince:

if(!ExistPositions(Symbol(),-1,44444))OpenPosition(Symbol(),OP_BUY,0.1,Ask-sl*Point,Ask+tp*Point,44444)

poprobuj


cela ne fonctionne pas non plus, il faut toujours tamponner un commerce sur chaque barre.
 
Zver4991:

ça ne sert à rien d'avoir toujours un tampon sur chaque barre.

j'ai trouvé l'erreur..... tout est dans le symbole j'étais en train de paramétrer que je ne me soucie pas du symbole à rechercher tant qu'il n'est pas avec ce magicien mais quand j'ai paramétré que le symbole actuel est ok pour commencer.... bien que ce soit étrange parce que s'il n'est pas sur le symbole actuel et qu'il est sur un autre alors nous n'aurions pas à ouvrir l'affaire jusqu'à ce qu'il se ferme sur l'autre symbole avec ce magicien
 
Comment puis-je introduire un paramètre tel que l'angle d'une moyenne mobile avec certains paramètres dans un EA ?
 
Comment puis-je empêcher que la limite soit fixée si elle l'est déjà ?
 
Profitov:
Comment puis-je introduire un paramètre tel que l'angle d' une moyenne mobile avec certains paramètres dans un EA ?

Cela dépend de ce qu'il faut piquer ;)))
 
woin2110:
Comment puis-je empêcher que la limite soit fixée si elle l'est déjà ?

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 12.03.2008                                                     |
//|  Описание : Возвращает флаг существования ордеров.                         |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   (""   - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - операция                   (-1   - любой ордер)                    |
//|    mn - MagicNumber                (-1   - любой магик)                    |
//|    ot - время открытия             ( 0   - любое время установки)          |
//+----------------------------------------------------------------------------+
bool ExistOrders(string sy="", int op=-1, int mn=-1, datetime ot=0) {
  int i, k=OrdersTotal(), ty;
 
  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      ty=OrderType();
      if (ty>1 && ty<6) {
        if ((OrderSymbol()==sy || sy=="") && (op<0 || ty==op)) {
          if (mn<0 || OrderMagicNumber()==mn) {
            if (ot<=OrderOpenTime()) return(True);
          }
        }
      }
    }
  }
  return(False);
}
 
Merci beaucoup.
Raison: