Erreurs, bugs, questions - page 398

 

Dans plusieurs builds récentes (dont la 458), deux problèmes de testeurs ont été observés de manière constante sur l'une des deux machines :

1) Erreur de démarrage de l'agent :

EM 0 Core 1 11:44:11 processus d'agent démarré
QN 0 Core 1 11:44:11 se connectant à 127.0.0.1:3000
KI 0 Core 1 11:44:15 connecté
HO 2 Core 1 11:44:17 erreur de synchronisation de l'agent du testeur
GM 2 Core 1 11:44:17 déconnecté
LK 0 Core 1 11:44:17 connexion fermée

CQ 0 Tester 11:44:14 MetaTester 5 build 450 (16 mai 2011)
MP 0 Server 11:44:14:14 MetaTester 5 démarré sur 127.0.0.1:3000
LI 0 Startup 11:44:14 initialisation terminée
MR 2 127.0.0.1 11:44:18 fermer le socket
EI 0 127.0.0.1 11:44:18 connexion (build 450)
EJ 0 Tester 11:44:19 Agent de test arrêté

2) Le terminal ne répond pas (sablier) pendant environ 30 secondes lorsqu'on entre dans l'onglet "agents".

On suppose que les problèmes sont liés au processeur à un seul cœur ou à l'absence d'agents distants (à distance).

 
stringo:
En fait, la version 458 a déjà été publiée.

donc oui... Mais le problème demeure :

2011.05.27 19:19:57 Core 2 agent lent échoué
2011.05.27 19:19:57 Core 2 connexion fermée
2011.05.27 19:19:57 Core 2 agent trop lent. Le temps d'occupation est de 3703 ms. Le temps moyen est de 915 ms.
2011.05.27 19:19:55 Core 1 agent lent échoué
2011.05.27 19:19:55 Core 1 connexion fermée
2011.05.27 19:19:55 Core 2 synchronisation commune terminée
2011.05.27 19:19:54 Core 1 agent trop lent. Le temps d'occupation est de 3672 ms. Le temps moyen est de 915 ms.
2011.05.27 19:19:53 iRU1 agent lent échoué
2011.05.27 19:19:53 iRU1 connexion fermée
2011.05.27 19:19:53 Core 2 autorisé (agent build 458)
2011.05.27 19:19:53 Core 2 connecté
2011.05.27 19:19:53 iRU1 agent trop lent. Le temps d'occupation est de 3672 ms. Le temps moyen est de 915 ms.

 
MONTEGRO:

alors oui... Mais le problème demeure :

Continuons à réfléchir.
 

Veuillez clarifier les nuances suivantes :

1. algorithme de vérification/traitement pour SL/TP lors de l'envoi d'une transaction supplémentaire. Clarification par l'exemple.

Remarque : toutes les demandes de transaction ont le paramètre ORDER_FILLING_AON ; il y a déjà une position longue.

Scénario 1. Je veux en acheter d'autres (bien sûr, pour le même symbole). J'envoie une transaction avec un volume supplémentaire et un SL/TP ajusté. Si la demande est exécutée avec succès, le résultat sera : lot supplémentaire + SL/TP mis à jour ?

Scénario n°2. Je veux vendre. Je soumets une transaction avec un lot plus petit sans spécifier de SL/TP (SL/TP = 0). La position restante verra son lot réduit + SL/TP supprimé ?

Scénario #3. Même scénario que le scénario n°2, mais en essayant de fixer des limites SL/TP (sciemment impossibles pour une position longue). Résultat ?

2. algorithme pour vérifier le volume d'une transaction. clarifiez-le avec un exemple.

Y aura-t-il des changements dans la combinaison "lot minimal/étape de lot minimal" ?

Remarques : Toutes les demandes de transaction ont le paramètre ORDER_FILLING_CANCEL ouORDER_FILLING_RETURN; il y a déjà une position longue de 1.0 ; lot min.= 0.1 ; pas min.= 0.01 ;

Scénario 1. J'essaie de sortir du marché (fermer une position existante avec une transaction inverse de la même taille). Le marché est un marché de nouvelles, donc j'essaie de retirer au moins un peu (ORDER_FILLING_CANCEL ou ORDER_FILLING_RETURN), car le montant total a des requotes. La transaction est partiellement à 0,99 lot. Par conséquent, pour fermer complètement la position, je dois envoyer une transaction avec 0,01 lot, alors que je ne peux pas - le lot minimum est de 0,1. C'est-à-dire, dois-je d'abord ajouter 0.09 lot pour obtenir 0.1 et ensuite essayer de le fermer (déjà avec ORDER_FILLING_AON) ?

Scénario n°2. Lorsqu'une transaction a été partiellement clôturée et que le volume de la position restante est inférieur à l'étape minimale (clôture partielle à 0,999 lot, et 0,001 lot reste "suspendu"). Une telle situation se produira-t-elle ?

P.S. Idéalement, j'aimerais voir une logique unifiée de mise en ordre qui "fermerait" tous les cas théoriquement possibles. Je ne l'ai pas trouvé dans la documentation, peut-être l'ai-je manqué...

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
uncleVic:

Il n'y a pas d'erreur dans la bibliothèque. Le travail avec des données d'indicateur à l'aide de la classe présente deux subtilités (qui ne sont peut-être pas entièrement décrites dans l'aide).

1. Afin de rendre les données de l'indicateur disponibles par le biais de la classe, cette dernière doit copier ces données à partir de l'indicateur. Pour ce faire, appelez la méthode Refresh(int) si vous avez le moindre soupçon que les données ont changé. Dans votre cas :

2. Pour que les données des indicateurs soient disponibles dans la classe à une "profondeur" suffisante, vous devez définir la taille des tampons (par défaut, la taille du tampon est de 256). Pour ce faire, après avoir créé l'objet, appelez la méthode BufferResize(int). Dans votre cas :

Désolé si c'est confus. Je répondrai aux questions supplémentaires.

Pouvez-vous me donner au moins un code simple d'indicateur utilisant la bibliothèque standard, à cause du manque de documentation et d'exemples, je ne peux pas comprendre comment cela fonctionne. Par exemple, il dessine des flèches vertes sous chaque barre lorsque tenkan sen>kijun sen et sont au-dessus du nuage et des flèches rouges lorsque tenkan sen<kijun sen et sont en dessous du nuage.
Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 

Flexibilité des paramètres de l'interface - il y a une suggestion pour rendre mt5 plus flexible pour l'utilisateur, en termes de paramètres pour l'affichage des noms de symboles, plus spécifiquement - la possibilité de renommer n'importe quel c.-à-d. pas - pas gbpusd - mais ... - Par exemple - pas gbpusd mais ... livre", ainsi que la division des barres telles que - la monnaie et la flèche vers le bas, les métaux, les actions, ce qui n'aurait pas été tout dans une pile, dans la barre de division peut même ajouter des icônes mini, comme la monnaie, le signe d'un quid ou un petit papier vert, les métaux - bien or petites barres, etc Approx. une telle flexibilité des paramètres des couleurs, des ardoises et des volets disponibles dans la plate-forme "Pro Trader", j'espère ne pas sonner comme la publicité, parce que le vôtre au texte bien sûr plus facile et mieux... :)
Il serait également intéressant de pouvoir modifier l'arrière-plan, sous le symbole dans la liste des symboles, ainsi que le changement de couleur, par exemple une mise en évidence importante un fond noir et une police blanche, moyenne, bleue et blanche et totalement sans importance, car il y a du noir sur du blanc ...

 
Graff:
Pouvez-vous me donner au moins le code le plus simple d'un indicateur utilisant la bibliothèque standard, à cause du manque de documentation et d'exemples, je n'arrive pas à comprendre comment cela fonctionne. Par exemple, il dessine des flèches vertes sous chaque barre lorsque tenkan sen>kijun sen et sont au-dessus du nuage et des flèches rouges lorsque tenkan sen<kijun sen et sont en dessous du nuage.
Joignez votre "poisson" et, brièvement, vos souhaits. Si possible (je ne peux pas vous promettre de le faire rapidement), j'y jetterai un coup d'œil.
 

papaklass:

Algorithme 2 :

1. clôturer les positions en multiples du volume minimum autorisé. Votre exemple de 0,99 lot n'est pas possible, car le lot minimum est de 0,1 lot. D'autres participants au marché fixent leurs ordres comme des multiples de 0,1 lot. Votre exemple n'est donc pas possible.

2. Voir le point 1.

Vous voulez donc dire que si après l'exécution de l'ordre le volume de la position devient inférieur au minimum, alors cet ordre sera rejeté.

Sur les serveurs MQ, le pas=lot minimum=0.01. Existe-t-il d'autres exemples où le pas<lot minimum ? Pour vérifier le comportement du terminal.

Vous ne pouvez pas attendre de réponse de la part des développeurs.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Graff:
Pouvez-vous me donner au moins le code le plus simple d'un indicateur utilisant la bibliothèque standard, à cause du manque de documentation et d'exemples, je n'arrive pas à comprendre comment cela fonctionne. Par exemple, il dessine des flèches vertes sous chaque barre lorsque tenkan sen>kijun sen et sont au-dessus du nuage et des flèches rouges lorsque tenkan sen<kijun sen et sont en dessous du nuage.

cet exemple de travail avec bibla - juste construire la ligne tenkan
A partir de là, il vous sera plus facile d'ajouter 4 autres tampons par analogie et de les analyser (pour les flèches).

Remarque : il existe au moins deux autres façons de prendre les valeurs de la mémoire tampon de l'indicateur que celle présentée ci-dessus. Celui qui est montré n'est pas le seul possible

#property indicator_chart_window
#property indicator_buffers  1
#property indicator_plots    1
#property indicator_color1   clrRed
#property indicator_type1    DRAW_LINE

#include <Indicators\Trend.mqh>  // подключили библу

input int tenkan=9;
input int kijun=26;
input int senkou=52;

CiIchimoku ichi; // объект индюка
int h; // его хендл

double Tenkan[]; // буфер для тенкана
//------------------------------------------------------------------
int OnInit()
{
  SetIndexBuffer(0, Tenkan, INDICATOR_DATA);
  ArraySetAsSeries(Tenkan, true);

  ichi.Create(Symbol(), Period(), tenkan, kijun, senkou); // создали буфера
  h=ichi.Handle(); // получили хендл
  return(0);
}
//------------------------------------------------------------------
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[])
{
  ichi.Refresh(0); // обновили индюк

  if(BarsCalculated(h)<rates_total) return(0); // если расчет не нужен
        
  int to_copy; // определяем число баров для копирования
  if(prev_calculated>rates_total || prev_calculated<=0) to_copy=rates_total; 
  else { to_copy=rates_total-prev_calculated; to_copy++; }

  // Номера буферов: 0 - TENKANSEN_LINE, 1 - KIJUNSEN_LINE, 2 - SENKOUSPANA_LINE, 3 - SENKOUSPANB_LINE, 4 - CHINKOUSPAN_LINE.
  if (CopyBuffer(h,0, 0,to_copy, Tenkan)<=0) { Print("ошибка"); return(0); }

  return(rates_total);
}
 
uncleVic:

il y a un défaut dans les classes et l'aide - les drapeaux de la fonction Refresh ne sont pas décrits