"Apprenez à l'EA ! !! [il a effectué le nombre de transactions (pas d'ordres) que je souhaitais pendant l'intervalle que j'ai spécifié].

 
Bonne journée ! !! Dites-moi, M. le programmeur, est-il possible d'"apprendre" à un conseiller expert à effectuer un certain nombre de transactions?
 
BeerGod:
sur un certain laps de temps ou le nombre total de positions ouvertes au même moment ?

L'intervalle de temps y a déjà été défini. J'ai besoin qu'il effectue le nombre requis de transactions (pas d'ordres) pendant l'intervalle que j'ai spécifié.
 
sergeev:

Veuillez répéter la question dans une déclaration détaillée.


Par exemple, si mon EA ouvre un ordre, un certain temps s'écoule et tous les ordres sont fermés (il y a un résultat). Si l'EA ouvre à nouveau un ordre, un certain temps s'écoulera et l'ordre sera fermé (nous avons obtenu le résultat). Et l'EA ne s'ouvre plus, c'est-à-dire qu'il se déconnecte. Et comme je l'ai dit précédemment, l'intervalle de temps de l'EA est réglable, ce qui signifie que vous pouvez définir le nombre de transactions dans cet intervalle de temps. Dans les paramètres du conseiller expert, dans la fenêtre des options, vous devriez voir une option supplémentaire, où vous pouvez définir le nombre de transactions (à ne pas confondre avec le nombre d'ordres ouverts).
 

La méthode la plus simple et la plus directe consiste à examiner l'ensemble de l'historique des commandes et à compter le nombre de commandes passées dans un intervalle de temps donné. Le test serait lent, mais s'il est effectué, il devrait l'être juste avant l'ouverture de l'ordre (après toutes les vérifications d'ouverture), afin de ne pas parcourir inutilement l'historique.

 
Rapitvina:

L'intervalle de temps y est déjà défini. J'ai besoin qu'il réalise le nombre requis de transactions (pas de commandes) dans le délai que j'ai spécifié.
Il ne doit pas dépasser le nombre requis (facile à faire) - ou ne pas être inférieur au nombre requis (alors nous avons des problèmes avec les conditions d'entrée) ?
 
Rich:
Devrait-il y avoir un nombre maximum (facile à faire) ou un nombre minimum (les conditions d'entrée ne sont alors pas claires) ?

Qu'est-ce qui n'est pas clair ? Les conditions d'entrée sont définies par l'intervalle de temps......
 
Rapitvina:

Il doit s'engager autant que je le veux.

:) Peut-il le faire ?
 
Integer:

:) Peut-il le faire ?

Oui, il peut. Il le fait tous les jours, il suffit d'appuyer soi-même sur le bouton ON/OFF.
 
Rapitvina:

Il le fera. Il le fait tous les jours, il suffit d'appuyer sur le bouton ON/OFF lui-même.


Voici la fonction de Yi Kim

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

  if (sy=="0") sy=Symbol();
  for (i=0; i<k; i++) {
    if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
      if (OrderSymbol()==sy || sy=="") {
        if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
          if (op<0 || OrderType()==op) {
            if (mn<0 || OrderMagicNumber()==mn) {
              if (t<OrderOpenTime()) t=OrderOpenTime();
            }
          }
        }
      }
    }
  }
  return(TimeCurrent()-t);
}

Appel d'un conseiller.

If(SecondsAfterOpenLastPos()>300) //300- 5 минут,600- 10 минут И.Т.Д
régler l'heure que vous voulez........., non, pas celui-là ?

 
r772ra:
mettre le bon moment ........., non, pas celui-là ?


non, vous avez besoin d'une fonction qui compte le nombre d'ordres sur une plage de temps donnée.
 
sergeev:

Non, vous avez besoin d'une fonction qui compte le nombre de commandes sur une période donnée.

Non, il n'a pas besoin de compter les commandes dans le champ du terminal ; toutes les commandes sont fermées.