Erreurs, bugs, questions - page 974

 
voix_kas:
Ce n'est pas une faute de frappe. En mode visuel, je teste toujours le conseiller expert avec les statistiques du graphique. C'est plus informatif pour moi.
Par tester dans le testeur, voulez-vous dire le mode de visualisation ? Pour autant que je sache, à l'heure actuelle, les objets tels queOBJ_BITMAP_LABEL ne sont pas affichés en mode visualisation, de même que certains autres objets. Il est donc doublement intéressant de voir comment vous avez procédé.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
tol64:
Par test dans le testeur, voulez-vous dire le mode de visualisation ? Pour autant que je sache, à l'heure actuelle, les objets tels queOBJ_BITMAP_LABEL ne sont pas affichés en mode visualisation, de même que certains autres objets. Il est donc doublement intéressant de voir comment vous avez procédé.
Un objet de typeOBJ_BITMAP_LABEL+ResourceCreate en mode visualisation est dessiné sur le graphique. Construire 794.
 
voix_kas:
Un objet de typeOBJ_BITMAP_LABEL+ResourceCreate est rendu sur le graphique en mode visualisation. Bild 794.

Montrez-moi un exemple. Il s'agit de quelques lignes de code. Ou montrez-moi, si vous le voulez bien, ce que vous avez affiché (capture d'écran) en mode visualisation en utilisant ce code :

//+------------------------------------------------------------------+
//|                                                     !expTEST.mq5 |
//|                        Copyright 2013, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2013, MetaQuotes Software Corp."
#property link      "http://www.mql5.com"
#property version   "1.00"
//--- Подключим класс для работы с канвой
#include <Canvas\Canvas.mqh>
//--- Загрузка класса
CCanvas canvas;
//--- Свойства канвы
string            font_name       ="Calibri";                   // Шрифт
color             canvas_bg_color =C'20,20,20';                 // Цвет фона канвы
string            canvas_name     ="canvas";                    // Название канвы
ENUM_COLOR_FORMAT clr_format      =COLOR_FORMAT_ARGB_NORMALIZE; // Компонент альфа-канала игнорируется
//+------------------------------------------------------------------+
//| ИНИЦИАЛИЗАЦИЯ                                                    |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- Установим высоту текста
   canvas.FontSet(font_name,15,FW_NORMAL);  
   SetCanvas();
   return(0);
  }
//+------------------------------------------------------------------+
//| ДЕИНИЦИАЛИЗАЦИЯ                                                  |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   canvas.Destroy();
  }
//+------------------------------------------------------------------+
//| СОБЫТИЕ ТИК ТЕКУЩЕГО СИМВОЛА                                     |
//+------------------------------------------------------------------+
void OnTick()
  {
  }
//+------------------------------------------------------------------+
//| Установить канву                                                 |
//+------------------------------------------------------------------+
void SetCanvas()
  {
   if(ObjectFind(0,canvas_name)<0)
     canvas.CreateBitmapLabel(0,0,canvas_name,0,10,200,200,clr_format);
//---
   ShowInfo();
  }
//+------------------------------------------------------------------+
//| Отображает список                                                |
//+------------------------------------------------------------------+
void ShowInfo()
  {
   canvas.Erase(canvas_bg_color);
//---
   for(int i=10; i<100; i+=15)
     {
      //--- Название показателя
      canvas.TextOut(50,i,"Text"+IntegerToString(i)+" :",ColorToARGB(clrWhite),TA_LEFT|TA_TOP);
     }
//---
   canvas.Update();
  }

//---

Construire 803:

 

Bonsoir !

Où puis-je écrire aux développeurs à propos de leur bug dans MetaTrader5 ?

 
Mikalas:

Bonsoir !

Où puis-je écrire aux développeurs à propos de leur bug dans MetaTrader5 ?

Vous pouvez également écrire ici. Vous pouvez également écrire au Service Desk, il y a un lien dans votre profil sur le côté gauche de la fenêtre.
 
Mikalas:

Bonsoir !

Où puis-je écrire aux développeurs à propos de leur bug dans MetaTrader5 ?

 
tol64:

Montrez-moi un exemple. Il s'agit de quelques lignes de code. Ou montrez-moi, si vous le voulez bien, ce que vous avez affiché (capture d'écran) en mode visualisation en utilisant ce code :

//---

Construire 803:

Le code ci-dessus me donne le même résultat (ne rend pas le bitmap). Bild 794.

Malheureusement, je ne peux pas fournir de contre-argument, car j'ai déjà nettoyé mon code EA du bitmap.

 
voix_kas:

Le code ci-dessus me donne le même résultat (ne rend pas le bitmap). Construire 794.

Malheureusement, je ne peux pas fournir de contre-arguments, car j'ai déjà nettoyé mon code EA du bitmap.

Les contre-arguments n'ont pas d'importance, car cette possibilité n'a été implémentée dans le testeur dans aucune des versions précédentes, y compris la version actuelle(803). On ne voit donc pas comment vous avez pu obtenir le résultat dans le testeur et pourquoi vous ne pouvez pas le reproduire à nouveau si on vous le demande. Veuillez reproduire à nouveau, c'est très intéressant. Personnellement, cela fait deux ans que j'attends que les bitmaps soient enfin réalisés dans le testeur. )))

 
voix_kas:

Peut-être quelqu'un serait-il intéressé par des informations sur les performances des objets graphiques...

...

Qu'est-ce que je peux dire ? Un seul Bitmap fonctionne ( !) un ordre de grandeur plus lentement que 26 étiquettes ordinaires.

...

Je n'ai pas fait de chronométrage particulier, car il est évident que la vitesse diminue d'un ordre de grandeur. Tant dans le testeur qu'en temps réel (lors du défilement du graphique, les saccades sont très évidentes).

Il est dommage qu'aucune preuve de cette affirmation n'ait été donnée.

Par expérience, le bitmap est plus rapide, surtout si vous devez dessiner de grands tableaux, un exemple d'utilisation du bitmap est le verre dans IShift, ou les onglets dans le panneau ChartWall intégré. Je suis en train de convertir l'ensemble de ma bibliothèque d'interfaces en bitmap, afin d'obtenir un panneau d'interface sous la forme d'un seul objet bitmap. L'objectif est d'augmenter la vitesse et la fiabilité.

Notez également que le défilement du graphique ne provoque pas de "survol" ou d'oscillation et que la pile dans IShift est mise à jour plus souvent que les ticks n'arrivent (ce qui signifie que le marché des forts).

 

Je me suis trompé. Les performances des bitmaps sont inférieures à celles des balises de 16 % à 25 %(en fonction du nombre d'éléments), mais pas d'un ordre de grandeur, comme je l'ai écrit précédemment.

Il y avait probablement des erreurs/inefficacités dans le code lors de l'apprentissage de l'outil.

Le code est joint.

tol64

Croyez-moi,je n'ai pas le moindre motif devous décevoir ou de me tromper. Dans ma première expérience, j'ai observé un bitmap dans le testeur. Malheureusement, je ne peux pas le reproduire. :(

Dossiers :