[ARCHIVE !] Toute question de débutant, pour ne pas encombrer le forum. Professionnels, ne passez pas à côté. Nulle part sans toi - 4. - page 426

 
Reshetov:

C'est impossible. Seulement en bouclant un par un avec OrderSelect().

Pouvez-vous me dire comment calculer le volume total de tous les ordres (lots) en passant par chaque ordre dans une boucle utilisant OrderSelect()?
 
Elektronik:
Veuillez me dire comment calculer le volume total de tous les ordres (lots) en utilisant la boucle OrderSelect() qui parcourt chaque ordre pièce par pièce).
Commencer une variable avec le volume total en lots et l'initialiser à 0
  1. Parcourir les commandes en boucle
  2. Après chaque OrderSelect(), vous augmentez la valeur de la variable de la valeur OrderLots().

Une fois la boucle terminée, la variable contiendra le volume total de toutes les commandes recherchées.

 
Elektronik:
Veuillez me dire comment calculer le volume total de tous les ordres (lots) en passant par chaque ordre individuellement avec OrderSelect().
//+----------------------------------------------------------------------------+
//|  Автор    : Ким Игорь В. aka KimIV,  http://www.kimiv.ru                   |
//+----------------------------------------------------------------------------+
//|  Версия   : 19.02.2008                                                     |
//|  Описание : Возвращает сумму лотов открытых позиций                        |
//+----------------------------------------------------------------------------+
//|  Параметры:                                                                |
//|    sy - наименование инструмента   ( ""  - любой символ,                   |
//|                                     NULL - текущий символ)                 |
//|    op - торговая операция          ( -1  - любая позиция)                  |
//|    mn - MagicNumber                ( -1  - любой магик)                    |
//+----------------------------------------------------------------------------+
double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
  double l=0;
  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) {
              l+=OrderLots();
            }
          }
        }
      }
    }
  }
  return(l);
}
 


merci pako:

l'a fait :)

int start()
{
int i=0;
double lots=0;
int kollots=0;
int nets=0;
int netp=0;
for(i=0; i<OrdersTotal(); i++)
{
if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;kollots=kollots+1;if(OrderStopLoss()<=0) nets=nets+1; if(OrderTakeProfit()<=0) netp=netp+1;
if((OrderType()==OP_BUY)){lots=lots+OrderLots();}
if((OrderType()==OP_SELL)){lots=lots-OrderLots();}
}
Comment("Общий объем: "+ DoubleToStr(lots,2));
}

N'EST-CE PAS ?

 
Elektronik:



faites en sorte que

//+------------------------------------------------------------------+
//|                                                     lots_kol.mq4 |
//|                      Copyright © 2011, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp."
#property link      "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int init()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
int start()
  {
//----
  GetAmountLotFromOpenPos(); 
//----
   return(0);
  }
//+------------------------------------------------------------------+
double GetAmountLotFromOpenPos(string sy="", int op=-1, int mn=-1) {
  double l=0;
  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) {
              l+=OrderLots();
            }
          }
        }
      }
    }
  }
  Comment("Количество лотoв                ",l);
  return(l);
}

так сделай

 

Bon après-midi, messieurs.

Je suis un débutant et j'ai une question : comment optimiser correctement mon robot ?

Je sais sur quels boutons et cases à cocher je dois appuyer pour exécuter un testeur de stratégie.

Je me demande comment déterminer la période pour laquelle il faut l'optimiser et combien de temps l'EA fonctionnera "bien".

Comment pouvons-nous le calculer ? Il n'y a pas que la méthode d'introspection qui peut fonctionner...

 
impus:

Bon après-midi, messieurs.

Je suis un débutant et j'ai une question : comment optimiser correctement mon robot ?

Je sais quels boutons et cases à cocher doivent être activés pour exécuter un testeur de stratégie.

Je me demande comment déterminer la période pour laquelle il faut l'optimiser et combien de temps l'EA fonctionnera "bien".

Comment pouvons-nous le calculer ? Il n'y a pas que la méthode d'introspection qui peut fonctionner...

Effectuez une recherche dans votre localité en tapant "tests avant" ou "OOS". Il a été discuté à de nombreuses reprises.
 
impus:

Bon après-midi, messieurs.

Je suis un débutant et j'ai une question : comment optimiser correctement mon robot ?

Je sais quels boutons et cases à cocher doivent être activés pour exécuter un testeur de stratégie.

Je me demande comment déterminer la période pour laquelle il faut l'optimiser et combien de temps l'EA fonctionnera "bien".

Comment pouvons-nous le calculer ? Il n'y a pas que la méthode d'introspection qui peut fonctionner...

Si vous ne comprenez pas comment optimiser un EA, n'effectuez pas l'optimisation, mais mettez de l'ordre dans votre TS et trouvez quels paramètres doivent être optimisés.
 
Reshetov:
Effectuez une recherche dans votre localité en tapant "tests avant" ou "OOS". Il a été discuté à de nombreuses reprises.
Merci. Je vais m'en occuper.
 
impus:

Bon après-midi, messieurs.

Je suis un débutant et j'ai une question : comment optimiser correctement mon robot ?

Je sais quels boutons et cases à cocher doivent être activés pour que le testeur de stratégie fonctionne.

Je me demande comment déterminer la période pour laquelle il faut l'optimiser et combien de temps l'EA fonctionnera "bien".

Comment pouvons-nous le calculer ? Il n'y a pas que la méthode d'introspection qui peut fonctionner...

Voir les références (de mon (septième sur la page) post) ici, en particulier : "Robert Pardo "Développer, tester et optimiser les systèmes de trading pour le trader en bourse".