Erreurs, bugs, questions - page 1718

 
fxsaber:
Comment désactiver l'enregistrement Unicode dans le méta-éditeur ? Il a besoin de l'ANSI.

Pourquoi ce besoin ?

L'éditeur enregistre automatiquement les fichiers en Unicode si le texte contient des caractères de la plage 128-255.

 
Alexey Da:

Pourquoi ce besoin ?

L'éditeur enregistre automatiquement les fichiers en Unicode si le texte comporte des caractères compris entre 128 et 255.

Tous mes fichiers sont maintenant deux fois plus gros. Je les enregistre dans le bloc-notes en ANSI - ok. J'ouvre ensuite dans l'éditeur de méta et je sauvegarde - unicode à nouveau.

Essayez d'ouvrir et d'enregistrer ce fichier joint.

 
J'ai plusieurs indicateurs avec les mêmes chaînes
#property indicator_separate_window

#property indicator_plots 1
#property indicator_buffers 1

#property  indicator_type1 DRAW_LINE
#property  indicator_style1 STYLE_SOLID
#property  indicator_color1 clrRed

J'ai décidé de les mettre dans mqh et de les lier à "save". Il s'avère que cela ne peut pas être fait - la #propriété ne peut être définie que dans le fichier source mq5.

Pourquoi une telle restriction ?

 

Je ne peux pas joindre de pièces jointes dans les messages privés.

Au moins ex4 de 4,9 Mb

 
fxsaber:
J'ai plusieurs indicateurs qui contiennent les mêmes chaînes de caractères

J'ai décidé de les mettre dans mqh et de les lier à "save". Il s'avère que cela ne peut pas être fait - la #propriété ne peut être définie que dans le fichier source mq5.

Pourquoi une telle restriction ?

En fait, ces propriétés sont des propriétés d'un projet d' indicateur MQL.

Actuellement, le fichier de projet d'un programme MQL est le fichier source *.mq5(4).
En outre, les utilisateurs peuvent utiliser des fichiers *.mqh tiers qui peuvent contenir ces propriétés.
 
Alexey Da:

Pourquoi ce besoin ?

L'éditeur enregistre automatiquement les fichiers en Unicode si le texte contient des caractères de la plage 128-255.

C'est quelque chose de nouveau. Pourquoi ne pas prendre l'encodage des caractères à un octet dans les paramètres du système ? C'est ce qui a été fait par défaut jusqu'à présent.

Là encore, une option pourrait être proposée afin que ceux qui en ont besoin puissent activer le format à deux octets.

 
Ilyas:
En outre, les utilisateurs peuvent utiliser des fichiers *.mqh de tiers, qui peuvent contenir ces propriétés.

Il est possible de les définir dans mqh, mais ils ne seront pas lus comme s'ils n'existaient pas.

 
Karputov Vladimir:
Lorsque nous aurons un exemple, nous regrouperons tout en un seul post : problème, exemple, données du système d'exploitation et du terminal.

C'est fait ! Je suis maintenant sous Win764bit, mais le problème est le même. En temps réel, tout est comme il se doit, mais dans le testeur, dans la visualisation, le point gauche de la ligne reste fermement collé et le point droit bouge.

datetime prevtime=0,
         time_last_bar[1]={0};

bool    New_Bar=false;      // Флаг нового бара
                 
const long            chart_ID=0;        // ID графика 
const string          nname="TrendLine";  // имя линии 
const int             sub_window=0;      // номер подокна 
datetime              time1=0;           // время первой точки 
double                price1=0;          // цена первой точки 
datetime              time2=0;           // время второй точки 
double                price2=0;          // цена второй точки 
datetime prevbar=0;
double cclose[];
datetime ttime[];

//--------------------------------------------------------------------
void Fun_New_Bar()                              // Ф-ия обнаружения ..
  {                                             // .. нового бара
   New_Bar=false;                               // Нового бара нет
   
   CopyTime(Symbol(),Period(),0,1,time_last_bar);
   
   if(time_last_bar[0] != prevtime)                        // Сравниваем время
     {
      prevtime = time_last_bar[0];                         // Теперь время такое
      New_Bar=true;                             // Поймался новый бар
     }
  }


//=============================================================================================================
int OnInit()
  {
    
   CopyTime(Symbol(),Period(),0,1,time_last_bar);
   prevtime = time_last_bar[0];
ArraySetAsSeries(cclose,true);
ArraySetAsSeries(ttime,true);  
ArrayResize(cclose,5);
ArrayResize(ttime,5);   
   
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {  
   ObjectsDeleteAll(0," ",-1,-1);
   Print("------------Работа эксперта завершена!------------"); 
  
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
 Fun_New_Bar();                               // Обращение к ф-ии
 if (New_Bar==false)                          // Если бар не новый..
    return;                                   // ..то уходим
 Print("новый бар !");  

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 


} 
 //--------------------------------------------------------------------------------


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

Bugs, bugs, questions

Alexey Kravchenko, 2016.10.04 09:09

Bonjour !

J'ai un problème que je ne comprends pas.

Je dessine une ligne de tendance normale entre les points de clôture de deux barres précédentes (sur chaque nouvelle barre).

ObjectsDeleteAll(0," ",-1,-1);
ArrayInitialize(cclose,0);
ArrayInitialize(ttime,0);
CopyTime(Symbol(),0,1,2,ttime);
CopyClose(Symbol(),0,1,2,cclose);
price1=cclose[1];
time1=ttime[1];
price2=cclose[0];
time2=ttime[0];

Print("price1=",price1," time1=",time1," price2=",price2," time2=",time2);

//--- создадим трендовую линию по заданным координатам 
   if(!ObjectCreate(chart_ID,nname,OBJ_TREND,sub_window,time1,price1,time2,price2)) 
     { 
      Print(__FUNCTION__, 
            ": не удалось создать линию тренда! Код ошибки = ",GetLastError()); 
      return; 
     } 

Tout fonctionne bien en temps réel. Mais dans le mode de visualisation du testeur, le point gauche de la ligne est attaché au début de la référence et ne bouge pas du tout. Quel est le problème ?

Z.U. Je ne semble pas avoir ce problème avec MT4.


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

Bugs, bugs, questions

Alexey Kravchenko, 2016.10.04 09:57

Il y a un problème avec l'exemple. Le bolt shell lui-même prend plusieurs fichiers. Je vais en faire un plus simple dans la soirée quand je serai à la maison.

Le système d'exploitation est WinXP SP3. Construire 1434

LE 0 14:55:39.873 Terminal MetaTrader 5 build 1434 démarré (MetaQuotes Software Corp.)
DI 0 14:55:39.889 Terminal Microsoft Windows XP (PC basé sur X86), IE 08.00, Intel Pentium Dual E2200 @ 2.20GHz, RAM : 1150 / 2037 Mb, HDD : 74562 / 152625 Mb, GMT+07:00

LJ 0 14:55:39.889 Terminal C:\Program Files\MetaTrader 5

Z.U. En tout cas, en dehors de ces manipulations que j'ai données ci-dessus, rien d'autre n'est fait. Lorsqu'une nouvelle barre est détectée, tout est effacé et une nouvelle ligne est tracée. Mais un exemple complet à compiler, je le ferai.


ж

 
Alexey Kravchenko:

C'est fait ! Je suis maintenant sous Win764bit, mais le problème est le même. En temps réel, tout est comme il se doit, mais dans le testeur, dans la visualisation, le point gauche de la ligne reste fermement fixé et le point droit bouge.


Remerciements. Il y a un peu de méchanceté dans le testeur.
 
Karputov Vladimir:
Confirmé. Il y a de la merde dans le testeur.
Dans le testeur MT5, il y a un désordre total avec le graphique. Les marques des positions d'ouverture et de fermeture apparaissent avec un grand retard. Parfois, lors de la fermeture d'une position, 3 à 5 marqueurs de positions précédentes apparaissent. Globalement, la visualisation du testeur est un bug total...
Raison: