Toute question des nouveaux arrivants sur MQL4 et MQL5, aide et discussion sur les algorithmes et les codes. - page 727

 
Igor Makanu:

S'il s'agit d'augmenter la taille du lot d'un nouvel ordre par rapport à la taille maximale des ordres déjà ouverts, alors lors du comptage des ordres, n'oubliez pas la taille maximale des ordres.

comme ça :

J'ai fait compter les lots. Je voudrais que le pas augmente également à chaque transaction. Par coefficient

 
Carcass77:

J'ai les lots qui comptent. J'aimerais que le pas augmente à chaque transaction. Par le coefficient.

C'est la deuxième fois que vous écrivez sur "l'étape magique" et nous devons deviner quelle est cette étape ! )))

Si nous parlons des prix d'ouverture des ordres "extrêmes" et que vous voulez placer de nouveaux ordres par rapport aux prix d'ouverture de ces ordres, alors le principe est le même, lors du recalcul des ordres, recherchez les prix d' ouverture maximum/minimum par type d'ordre, en gros :

int NumberOfOrders(int magic_,double &openpricemaxbuy_,double &openpriceminsell_)
  {
   int i,ot,buy_=0,sell_=0,k=OrdersTotal();
   openpricemaxbuy_=0.0; openpriceminsell_=0.0;
   for(i=0; i<k; i++)
     {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
        {
         ot=OrderType();
         if((OrderMagicNumber()==magic_) && (OrderSymbol()==_Symbol))
           {
            if(ot==OP_BUY) { buy_++;  openpricemaxbuy_  = fmax(openpricemaxbuy_,OrderOpenPrice());  }
            if(ot==OP_SELL){ sell_++; openpriceminsell_ = fmin(openpriceminsell_,OrderOpenPrice()); }
           }
        }
     }
   return(buy_+sell_);
  }



ZZY : si nous parlons d'ordres fermés, le code sera différent, et le principe d'énumération des ordres est légèrement différent - recherchez un ordre avec le temps de fermeture maximum et retenez ses paramètres.

 

Bonjour à tous. Pouvez-vous me dire pourquoi la fonction d'impression ne fonctionne pas dans l'indicateur.

//+------------------------------------------------------------------+
//|                                                        test3.mq4 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
       Print("Hello");
       Print("---- First indicator -----");

   
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 
Alexander Mikryukov:

Bonjour à tous. Pouvez-vous me dire pourquoi la fonction d'impression ne fonctionne pas dans l'indicateur.

il n'y a aucune raison pour que cela ne fonctionne pas, voir le journal de bord des experts pour vos messages

 
Igor Makanu:

aucune raison de ne pas travailler, regardez dans le journal de bord des experts pour vos messages

Ouais, stupide. Merci.

 
Bonne nuit ! Pouvez-vous me dire s'il est possible de gérer plusieurs comptes avec un seul script ? Merci !
 
Maxim Voronin:
Bonne nuit ! Pouvez-vous me dire s'il est possible de gérer plusieurs comptes avec un seul script ? Merci !

Vous pouvez, mais pas avec un script, avec un conseiller. Les comptes doivent être gérés dans des terminaux différents...

 
Vladimir Pastushak:

Vous pouvez, mais pas avec un script, avec un conseiller. Les comptes doivent être gérés dans des terminaux différents...

Continuez si vous le voulez bien
 
Maxim Voronin:
Continuez si vous le voulez bien

Vous écrivez une EA qui peut communiquer avec d'autres terminaux, les copieurs sont un exemple pour vous.

C'est simple, un EA transmet quelque chose et le reçoit dans un autre terminal...

 

INIT_PARAMETERS_INCORRECT

Conçu pour indiquer au programmeur un jeu incorrect de paramètres d'entrée, la chaîne de résultats comportant ce code de retour sera mise en évidence en rouge dans le tableau d'optimisation générale.

Les tests ne seront pas effectués pour cet ensemble de paramètres du conseiller expert.



Quelque chose n'est pas mis en évidence en rouge.

Est-ce le cas pour tout le monde ?


c'est le code dans OnInit :
int OnInit()
{

if (Koef2<=Koef) return(INIT_PARAMETERS_INCORRECT); 

return(INIT_SUCCEEDED);


Et dans le journal, il écrit des erreurs comme celles-ci :



Raison: