Erreurs, bugs, questions - page 111

 
sergeev:

tout correspondait.

2010.08.28 20:57:09 Servis (EURUSD,H1) L1=6653490000 L2=6653490000 L3=6653490000 M1=6653490000
2010.08.28 20:57:09 Servis (EURUSD,H1) A=665349 B=665349 C=665349
2010.08.28 20:57:09 Servis (EURUSD,H1) --- OnInit() --- 1 --- !


et mon M1 ne correspondait pas.

PQ      0       Servis (EURUSD,H8)      22:06:24        --- OnInit() --- 1 --- !!!  Старт  подготовки начальных параметров  !!!
LE      0       Servis (EURUSD,H8)      22:06:24         A=100652  B=100652  C=100652
CP      0       Servis (EURUSD,H8)      22:06:24         L1=1006520000   L2=1006520000   L3=1006520000   M1=4294966006
 
sergey1294:

Selon la raison pour laquelle vous avez besoin du premier chiffre, vous pouvez essayer ceci

Oui, c'est plus facile comme ça, tu n'as même pas besoin de mettre des guillemets supplémentaires à la fin.
return(StringToTime((string)str.year+"."+(string)str.mon+".01 00:00"));
 
SHOOTER777:

Une fois de plus, je fais appel aux esprits curieux !

Le code est joint.

Si je comprends la programmation, cela devrait être L1 = L2 = L3 = M1. Et vous ?

Au début, le compilateur se plaignait de l'absence de "#import "lbS7N_Servis.ex5".

Après avoir supprimé cette ligne, il s'est éteint :

2010.08.28 22:19:51 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=6617010000 M1=1016990000
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) A=101699 B=101699 C=661701
2010.08.28 22:19:51 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Quand j'ai remplacé le numéro de compte dans le code par le mien, j'ai obtenu :

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) L1=1016990000 L2=1016990000 L3=1016990000 M1=1016990000

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) A=101699 B=101699 C=101699

2010.08.28 22:26:46 Servis[1] (EURUSD,H1) --- OnInit() --- 1 --- !

Serveur MQ, construction 316.

 
sergey1294:

et mon M1 ne correspondait pas

situation unique... :(
 
Pourquoi SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), renvoie-t-il zéro ?
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Информация об инструменте - Документация по MQL5
 
sergeev:
Une situation unique... :(

Et il y a jusqu'à trois situations uniques. Ce sont ceux qui ont été détectés. Et combien sont non détectés ?

Et avec cet état de fait, MetaQuotes commence le championnat 2010 dans un mois ?

Oh, MetaTrader 5 a beaucoup de choses "étranges" à découvrir...

 
Kos:
Pourquoi SymbolInfoDouble(Symbol(),SYMBOL_VOLUME_LIMIT), renvoie zéro ?

En outre, la version qui renvoie une indication de réussite (désignée par 2. dans l'aide . Renvoie vrai ou faux en fonction du succès de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable de destination, passée par référence par le dernier paramètre.) Signale le succès de l'appel :

void OnStart()
{
  double SymbolVolumeLimit1 = SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT);
  double SymbolVolumeLimit2 = DBL_MAX;

  Print("Symbol() = ", Symbol(), ", bool SymbolInfoDouble() = ", SymbolInfoDouble(Symbol(), SYMBOL_VOLUME_LIMIT, SymbolVolumeLimit2));
  Print("SymbolVolumeLimit1 = ", SymbolVolumeLimit1, ", SymbolVolumeLimit2 = ", SymbolVolumeLimit2);
}

/* Вывод в лог (хронология - сверху вниз):
JN      0       1 (EURUSD,M15)  02:41:18        Symbol() = EURUSD, bool SymbolInfoDouble() = true
JJ      0       1 (EURUSD,M15)  02:41:18        SymbolVolumeLimit1 = 0, SymbolVolumeLimit2 = 0
*/

La deuxième version de SymbolInfoDouble() a retourné vrai, c'est-à-dire qu'elle a été exécutée avec succès. Vous pouvez également le voir dans la variable SymbolVolumeLimit2 qui était initialement initialisée avec DBL_MAX mais a reçu 0 après avoir appelé SymbolInfoDouble().

Et comment, selon MetaQuotes, dans de telles conditions, les Expert Advisors devraient-ils se baser sur les valeurs renvoyées par ces fonctions, au lieu d'utiliser des valeurs codées en dur ?

 

Qui a utilisé la fonction OrderCheck.

C'est une construction :

           MqlTradeRequest request;
           request.action=TRADE_ACTION_DEAL;
           request.symbol=_Symbol;
           request.volume=volume_exe;
           request.price=SymbolInfoDouble(_Symbol, SYMBOL_ASK);
           request.sl=0;
           request.tp=0;
           request.deviation=SymbolInfoInteger(_Symbol, SYMBOL_SPREAD)*2;
           request.type=ORDER_TYPE_BUY;
           request.type_filling=ORDER_FILLING_CANCEL;
           MqlTradeResult result;
           OrderCheck(request, result);
           if(OrderSend(request, result)==false)

Lors de la compilation, j'obtiens une erreur : 'result' - la conversion des paramètres n'est pas autorisée.

Si vous supprimez OrderCheck, tout se compile normalement et la position s'ouvre dans le testeur.

 

Voici ce que c'est...

Alert(" прибыль=",ПросчетПрибылизаПериод(D'2010.08.01 00:00:00'));


double ПросчетПрибылизаПериод(datetime датаначалапросчетаприбыли)
  {
   int i;
   double прибыльзапериод;
   ulong тикет;
   HistorySelect(датаначалапросчетаприбыли,TimeCurrent());
   //HistorySelect(D'2010.08.20 00:00:00',D'2010.08.20 23:59:00');
   for(i=1;i<=HistoryDealsTotal();i=i+1)
     {
      тикет=HistoryDealGetTicket(i);
      if(HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_IN || HistoryDealGetInteger(тикет,DEAL_TYPE)==DEAL_ENTRY_STATE)
         continue;
      прибыльзапериод=прибыльзапериод+HistoryDealGetDouble(тикет,DEAL_PROFIT)+HistoryDealGetDouble(тикет,DEAL_COMMISSION)+HistoryDealGetDouble(тикет,DEAL_SWAP);
     }
   return(прибыльзапериод);
  }

Il doit compter les bénéfices des transactions à partir de la date spécifiée. Il donne un résultat complètement différent de ce qu'il est en réalité. Par exemple, j'ai obtenu 611 au lieu d'un résultat d'environ 2000. J'ai commencé à vérifier par jour (ligne commentée). Il y a ( !!) des jours où le résultat est le même, mais généralement il n'est pas ce qu'il devrait être...(je n'ai pas pu trouver de régularité). Et le débogueur produit le même cycle exact pour toute la quantité de transactions. Bien que je ne puisse retracer que ce nombre de transactions car aucune valeur n'est affichée pour les autres variables, à l'exception des variables int (l'expression n'a pas pu être évaluée).

Est-ce que ce code est correct, et est-ce que j'utilise correctement le débogueur... ?

 
SHOOTER777:

Merci. Je contacterai les développeurs à ce moment-là.

Bonjour ! Décrivez votre situation en détail dans le servicedesk, où vous spécifiez le numéro de construction, le système d'exploitation, le débit binaire et joignez le code.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5