Questions des débutants MQL5 MT5 MetaTrader 5 - page 317

 
artmedia70:
//+------------------------------------------------------------------+
//|                                                    trendyxV1.mq5 |
//+------------------------------------------------------------------+
#include <Canvas\Canvas.mqh>
CCanvas LomLine;
int KoorX[4]={100,200,350,480};
int KoorY[4]={100,150,380,150};
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   LomLine.Destroy();
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   LomLine.CreateBitmapLabel("trendyx",0,0,800,800,COLOR_FORMAT_ARGB_RAW);
   LomLine.PolylineAA(KoorX,KoorY,ColorToARGB(clrRed, 155),STYLE_SOLID);
   LomLine.Update();

  }
//+------------------------------------------------------------------+

,.

 
pako:

,.

 
EA a arrêté d'ouvrir des positions à cause de "invalid integer number as parameter 9 for 'OrderSend' function". Quelqu'un peut-il expliquer ce que c'est ? Vraisemblablement, cela était dû à une mise à jour du terminal MT4.
 
Katerina:
EA a arrêté d'ouvrir des positions à cause de "invalid integer number as parameter 9 for 'OrderSend' function". Quelqu'un peut-il expliquer ce que c'est ? C'est probablement dû à la mise à jour du terminal MT4.
Veuillez joindre le code où la fonction"OrderSend" est appelée. Il semblerait que le nombre magique ne soit pas fixé correctement.
 
Ah, bien, je l'ai déjà réparé. Merci pour vos commentaires.
 
Je me demande si on peut ajouter une animation au graphique dans MQl5, comme un type qui tape sur les bougies, sur le signal de l'indicateur ou juste parce que...
 
aleks557:
Je me demande si vous pouvez ajouter une animation au graphique dans MQl5, comme un type qui tape sur le chandelier, sur le signal de l'indicateur ou juste comme ça.
L'animation devra être créée manuellement à partir des nombreuses images .bmp alternées. Ils sont généralement dessinés sur un kanvas à partir d'un ensemble de points.
 
barabashkakvn:
L'animation devra être créée manuellement à partir de nombreuses images .bmp successives. Ou dessinez à partir d'un tableau de points sur la toile.

Salutations, Petit Nain, où est "KANVAS" ? Je sais que l'animation est faite dans Photoshop, mais "KANVAS" n'a pas été, comment acheter un billet là-bas ?

Parce que google m'a conduit à une sorte de produit laitier.

 
aleks557:

Salutations, Petit Nain, où est "KANVAS" ? Je sais que l'animation est faite dans Photoshop, mais "KANVAS" n'a pas été, comment acheter un billet là-bas ?

Je ne sais pas, mais j'ai cherché sur Google et j'ai trouvé un produit laitier.

CCanvas estune classe permettant de créer des graphiques personnalisés.

Exemples d'utilisation, le chemin depuis MetaEditor : ...\MQL5\Scripts\Examples\Canvas\

 
aleks557:
Je me demande si vous pouvez ajouter une animation dans MQl5 à un graphique ?

En voici d'autres :

Forum sur le trading, les systèmes de trading automatisés et les tests de stratégies de trading

Questions des nouveaux venus

Renat, 2012.10.20 14:30

Saviez-vous qu'il y a un soupçon de backbuffering dans nos kanvases et qu'il y a un lien avec un objet à l'écran ?

Nous pouvons dessiner des cadres parfaitement, rapidement et sans artefacts. Jetez un coup d'œil à l'exemple vidéo basé sur la génération de séquences d'images dans OpenCL Test.

Utilisez une bonne tactique :

  1. Créer un objet graphique Étiquette Bitmap sur le graphique

       string objname ="OpenCL_"+IntegerToString(ChartID());
       string resname ="::Mandelbrot_"+IntegerToString(ChartID());
    //--- creating the object for graphics display
       ObjectCreate(0,objname,OBJ_BITMAP_LABEL,0,0,0);
       ObjectSetInteger(0,objname,OBJPROP_XDISTANCE,4);
       ObjectSetInteger(0,objname,OBJPROP_YDISTANCE,26);
    

  2. Créer une ressource graphique vide en mémoire et la lier à un objet précédemment créé :

    //--- create initial empty picture
       uint buf[];
    
       ArrayResize(buf,SIZE_X*SIZE_Y);
       ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
       ObjectSetString(0,objname,OBJPROP_BMPFILE,resname);
    
    C'est là que la magie opère. L'objet graphique reçoit une liaison directe avec la ressource graphique. Et cette liaison est intelligente avec la mise en cache, car elle a été spécifiquement créée pour une pagination rapide et la gestion du backbuffer.

  3. Vous pouvez maintenant dessiner facilement dans votre tampon sans vous soucier de vous lier à un objet à l'écran.

    //--- рисуем что хотим в buf
    ....
    
  4. Et maintenant il est temps d'afficher à l'écran ce bitmap mis à jour

          //--- saving the frame in memory and drawing it
          ResourceCreate(resname,buf,SIZE_X,SIZE_Y,0,0,SIZE_X,COLOR_FORMAT_XRGB_NOALPHA);
          ChartRedraw();
    
    Pour ce faire, nous "reconstruisons" la ressource (aucune reconstruction n'a lieu en réalité, car toutes les tailles sont les mêmes), nous y copions le nouveau bitmap, et les compteurs de changement de cette ressource sont incrémentés.

    Notez que l'objet graphique objname lui-même n'est pas touché de quelque manière que ce soit, car il est déjà associé à la ressource.

    Ensuite, nous appelons Screen Redraw via ChartRedraw qui nécessite le dessin de l'objet graphique. Il est lié à notre ressource qu'il contrôle en utilisant le compteur d'altération du bitmap. Si le compteur de changement du bitmap enregistré dans l'objet graphique ne coïncide pas avec le compteur de la ressource, le bitmap sera automatiquement copié dans l'objet graphique et visualisé de manière protégée. Si, en revanche, les compteurs correspondent, l'image est rendue sans changement.

Il s'agit d'une méthode simple de travail sûre (à partir de l'accès simultané de MQL5 et du système de rendu du terminal lui-même) et rapide avec les cadres de rendu.

Vous devez l'essayer.