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

 
hoz:


Hmm. Et comment ce chiffre peut-il influencer la collecte de statistiques sur les commandes ?


C'est génial ! Le plus intéressant, c'est que quelqu'un est au courant, bizarrement. Comment quelqu'un aurait-il pu le deviner ?


Si une chouette est testée dans la démo, comment rendre compte de cette commande ? C'est-à-dire le solde, qui est initialement donné sur la démo - ce sera cela... l'UN recherché ? Et ce que nous avons sur le marché réel est ce que nous avons retiré et déposé, non ?

Peut-être est-il possible de prescrire d'une manière ou d'une autre le retrait d'une partie du dépôt, lorsque l'on clôture avec un bon profit, ou le remplissage lorsque l'on a atteint la perte. Je dois vérifier, peut-être que ça existe, hein ?

 
hoz:


Hmm. Et comment ce chiffre peut-il affecter la collecte de statistiques sur les mandats ?


C'est génial ! Le plus intéressant, c'est que quelqu'un est au courant, bizarrement. Comment quelqu'un aurait-il pu le deviner ?


Si une chouette est testée dans la démo, comment rendre compte de cette commande ? C'est-à-dire le solde, qui est initialement donné sur la démo - ce sera cela... l'UN recherché ? Et dans le réel - c'est ce que nous avons retiré et mis sur le dépôt, non ?

Eh bien, pourquoi ne pas vérifier le type 6 dans n'importe laquelle de vos itérations d'ordres et, s'il y en a un, imprimer toutes les données le concernant dans le journal. Je pense que si vous voyez des informations plus claires à leur sujet, vous comprendrez comment les utiliser à votre avantage. Hein ? :))

ZS. Pas pour le plaisir de la peste, mais pour le développement...

 
artmedia70:

Pourquoi ne vérifiez-vous pas le type d'ordre 6 dans n'importe laquelle de vos boucles et, si vous en obtenez un, enregistrez-le. Je pense que lorsque vous verrez des informations plus claires à leur sujet, il sera plus logique pour vous de les utiliser à votre avantage. Hein ? :))

ZS. Pas pour le plaisir de la peste, mais pour le développement...



Je le ferai quand je finirai le code actuel (c'est-à-dire, afficher dans le journal tous les paramètres de l'ordre ? dans le testeur aussi ?) Bien que si ce n'est qu'une opération non commerciale, alors distraitement étrange tout cela.

Au fait, j'ai réparé la fonction de recherche des commandes. Rien n'a changé. Le nombre minimum de tous les ordres et le nombre d'ordres en attente est de 1. Même lorsqu'il n'y a aucun ordre sur le marché. Voici le code :

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                 |
//+-------------------------------------------------------------------------------------+
void FindOrders(int& t, int& p)
{
   int total = OrdersTotal() - 1;
   t = 0;
   p = 0;
   for (int i=total; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderType() > 1 || OrderType() < 6)
      {
          p++;
      }
      t++;
      pr ("FindOrders(): " + "t = " + t);
      pr ("FindOrders(): " + "p = " + p);
   }
}

Le type 6 a déjà été exclu. Il n'y a pas de remise à zéro pour une raison quelconque. Qu'est-ce qui ne va pas ? Tout ce genre de choses a déjà bien fonctionné auparavant. Le code est d'une simplicité primitive.

 
hoz:


Je vais faire quand je complète le code actuel (je veux dire, afficher dans le journal tous les paramètres de l'ordre ? dans le testeur, aussi ?) Bien que si ce n'est pas seulement les opérations de négociation, puis distraitement étrange tout cela.

Au fait, voici une correction pour la fonction de recherche de commandes. Rien n'a changé. La valeur minimale du nombre de tous les ordres, et du nombre d'ordres en général, est d'au moins 1. Même lorsqu'il n'y a pas du tout d'ordres sur le marché. Voici le code :

Le type 6 a déjà été exclu. Il n'y a pas de remise à zéro pour une raison quelconque. Qu'est-ce qui ne va pas ? Tout ce genre de choses a déjà bien fonctionné auparavant. Le code est d'une simplicité primitive.


if (OrderType() > 1 && OrderType() < 6)
 
artmedia70:


si (OrderType() > 1 && OrderType() < 6)


C'est déjà un signe de somnolence apparemment.

Mais là encore, ce n'est pas vraiment le sujet. J'utilise le hibou dans le testeur. Dans la capture d'écran, comme vous pouvez le voir, il n'y a pas d'ordres en attente ou d'ordres au marché.

Tant la fonction séparée que le commentaire standard que j'ai dupliqué la fonction séparée pour afficher les valeurs requises montrent qu'il y a des ordres au marché et des ordres en attente en permanence.

Voici comment fonctionne la fonction :

//+-------------------------------------------------------------------------------------+
//| Поиск своих ордеров                                                                 |
//+-------------------------------------------------------------------------------------+
void FindOrders(int& t, int& p)
{
   int total = OrdersTotal() - 1;
   t = 0;
   p = 0;
   for (int i=total; i>=0; i--)
   {
      if (!OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) continue;
      if (OrderSymbol() != Symbol()) continue;
      if (OrderMagicNumber() != i_magic) continue;
      if (OrderType() > 1 && OrderType() < 6)
      {
          p++;
      }
      t++;
      Comment("t = ", t, "p = ", p);
      pr ("FindOrders(): " + "t = " + t);
      pr ("FindOrders(): " + "p = " + p);
   }
}

Je l'appelle dès le début, où les valeurs initiales des compteurs sont également remises à zéro :

int start()
{
   if (g_lastBarTime == Time[0])         // На текущем баре все необходимые действия..
       return (0);                               // ..уже были выполнены
   
   int oTotal = 0, oPending = 0;
   
   FindOrders(oTotal, oPending);
   
   int signal = GetGeneralSignal(oTotal);
   
   if (signal != SIGNAL_NO)
   {
       if (!Trade(signal))
       return(0);
   }
   else
 

aidez-moi à trouver mon erreur))

if(to1<tc&&mag==11&&total>0&&tip==OP_BUYSTOP){

RefreshRates() ;

double st=NormalizeDouble(Ask+delta*Point-StopLoss*Point,Digits) ;

double tp=NormalizeDouble(Ask+TakeProfit*Point+delta1*Point,Digits) ;

si (OrderModify(ticket,Ask+delta*Point,3,st,tp))

{to1=tc ; Print("BUY STOP1 MOD : ");}

}

Erreur OrderModify 130


 
Où se trouve OrderSelect()?
 
Pourquoi ne puis-je pas suivre les fils de discussion du forum et pourquoi ne puis-je pas recevoir de messages dans ma boîte de réception ?
 
JLY:
Pourquoi ne puis-je pas suivre les fils de discussion du forum, les messages ne parvenant pas à mon courrier électronique ?

Ce serait mieux s'ils le faisaient comme dans le forum MQL5, les nouveaux messages dans les fils de discussion favoris seraient affichés avec un astérisque en haut près du profil.

 
Quelqu'un peut-il me dire s'il existe une fonction qui mesure le temps entre le moment où un ordre d'ouverture de position est envoyé et celui où il est accepté par le serveur du courtier ? J'ai un EA qui tourne sur un VPS, je cherchais un endroit moins cher (pas nécessairement plus proche du courtier) et je me demandais combien de temps ce délai prenait.