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

 
solnce600:

C'est justement ça .... Je me suis déjà creusé la tête.

Est-ce que j'ai mal deviné la SECONDE CONDITION ?


J'ai écrit un exemple SANS votre code. Voici un exemple où il y a des accolades { } et où il n'y en a pas... J'ai écrit quelles lignes seront exécutées et quand. Je voulais juste que tu comprennes comment organiser la logique dans ton code. VOUS N'AVEZ PAS D'ACCOLADES... Voyez donc dans mon exemple ce qui se passe dans ce cas.

Vous n'avez pas besoin de deviner !!!!!!!!!!!!!!. Essayez juste de comprendre...

 
artmedia70:

J'ai écrit un exemple SANS votre code. Voici un exemple où il y a des accolades { } et où il n'y en a pas... J'ai écrit quelles lignes seront exécutées et quand. Je voulais juste que tu comprennes comment organiser la logique dans ton code. VOUS N'AVEZ PAS D'ACCOLADES... Voyez donc dans mon exemple ce qui se passe dans ce cas.

Vous n'avez pas besoin de deviner !!!!!!!!!!!!!!. Essayez juste de comprendre...


Merci beaucoup. Demain, à tête reposée, j'essaierai de mettre les choses en perspective.
 

Bonsoir, pourriez-vous me dire comment réaliser la tâche suivante ?

Il y a une entrée dans une transaction à certaines conditions. Ensuite vient l'action, mais voici le problème, comment faire pour que l'action ne s'ouvre pas si le prix est plus proche qu'une certaine distance de la transaction précédente. Si le prix est plus proche de l'entrée précédente (peu importe qu'il s'agisse de la première ou de 5, 10, etc.) de plus de 30 pips, l'ordre ne doit pas être ouvert.

Merci pour les réponses.

 
teplovoz:

Bonsoir, pourriez-vous me dire comment réaliser la tâche suivante ?

Il y a une entrée dans une transaction à certaines conditions. Ensuite vient l'action, mais voici le problème, comment faire pour que l'action ne s'ouvre pas si le prix est plus proche qu'une certaine distance de la transaction précédente. Si le prix est plus proche de l'entrée précédente (peu importe qu'il s'agisse de la première ou de 5, 10 etc.) de plus de 30 pips, l'ordre suivant ne doit pas être ouvert.

Merci pour vos réponses.

Entre le marché et la position la plus proche, je suppose que oui.

Fonction

//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает расстояние в пунктах между рынком и ближайшей       |
//|             позицей                                                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ("" или NULL - текущий символ)          |
//|    op - торговая операция          (    -1      - любая позиция)           |
//|    mn - MagicNumber                (    -1      - любой магик)             |
//+----------------------------------------------------------------------------+
int DistMarketAndPos(string sy="", int op=-1, int mn=-1) {
  double d, p;
  int i, k=OrdersTotal(), r=1000000;

  if (sy=="" || sy=="0") sy=Symbol();
  p=MarketInfo(sy, MODE_POINT);
  if (p==0) if (StringFind(sy, "JPY")<0) p=0.0001; else p=0.01;
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if ((OrderSymbol()==sy) && (op<0 || OrderType()==op)) {
        if (mn<0 || OrderMagicNumber()==mn) {
          if (OrderType()==OP_BUY) {
            d=MathAbs(MarketInfo(sy, MODE_ASK)-OrderOpenPrice())/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
          if (OrderType()==OP_SELL) {
            d=MathAbs(OrderOpenPrice()-MarketInfo(sy, MODE_BID))/p;
            if (r>d) r=NormalizeDouble(d, 0);
          }
        }
      }
    }
  }
  return(r);
}

Appelez

if(DistMarketAndPos()>30)
   {
//открываемся
   }
 
r772ra:
entre le marché et la position la plus proche, je suppose que oui.

Je comprends la logique, mais comment calculer le prix d'ouverture de la dernière transaction ?
 
Addition ci-dessus
 
Je comprends que le prix est renvoyé par OrderOpenPrice()
Je comprends que l'ordre peut être sélectionné avec la fonction OrderSelect(), mais comment sélectionner ce dernier ?
 
r772ra:
Addendum ci-dessus

n'a pas compris...
 
teplovoz:

Je ne comprends pas...


Comprendre quoi, exactement ?

 
r772ra:


Qu'est-ce que c'est exactement ?


Que voulez-vous dire par l'ajout ci-dessus ?

En général, la signification est :

if(Bid<=(N-30*Point) && une autre condition)

{

Ouvrez un ordre de vente;

}

N est le prix ouvert du dernier ordre - comment le connaître ?