Erreurs, bugs, questions - page 1165

 
Akromix:

Bonjour. J'ai besoin d'aide. Quelqu'un peut-il suggérer comment réduire la taille de la police sur le graphique du testeur de stratégie de sorte qu'elle ne couvre pas le graphique et s'adapte entièrement au graphique, comme dans l'image ci-dessous (option 2) :

Essayez de sélectionner la taille de police standard du système dans les paramètres de Windows, ou même de la réduire.
 
marketeer:
Essayez de sélectionner la taille de police standard du système dans les paramètres de Windows, ou même de la réduire.
Cette modification réduit uniquement la police avec le nom de la fenêtre du terminal, mais la police n'est pas réduite dans le graphique du testeur.
 
barabashkakvn:

Lors de la validation des modifications dans MQL5 Storage, l'erreur 170004 s'est produite. C'est la deuxième fois que je vois ça.

Je suppose que je dois faire une mise à jour avant de m'engager.
 
TheXpert:
Eh bien, apparemment, vous devez mettre à jour avant de vous engager.
C'est une ordonnance ? Est-ce que ça aide ? Je viens de mettre à jour depuis le stockage dans la matinée, puis j'ai travaillé pendant une demi-journée et voici l'erreur#170004 lors de la validation.
 
barabashkakvn:
C'est une ordonnance ? Est-ce que ce genre de choses aide ? Je viens de faire une mise à jour du dépôt le matin, puis j'ai travaillé pendant une demi-journée et j'ai réussi à corriger l'erreur#170004.
Eh bien, s'il est dit que le référentiel n'est pas à jour, il est logique d'essayer de le mettre à jour.
 
TheXpert:
Eh bien, s'il est dit que le référentiel n'est pas à jour, il est logique d'essayer de le mettre à jour.
On dirait qu'un autre ordinateur a mis à jour mon référentiel pendant que je travaillais. J'ai bien sûr essayé de faire une mise à jour après que l'erreur se soit produite. Ça n'a pas aidé.
 

C'est plutôt une question :

Recherche d'un GV existant du terminal par son nom. Grâce à lui, l'ID du graphique sur lequel l'EA fonctionne est transmis à l'indicateur. L'indicateur est suspendu à un autre symbole. C'est-à-dire que je veux passer à l'indicateur l'ID du graphique sur lequel le conseiller expert est exécuté. Je le cherche comme ça :

   for(int i=0; i<GlobalVariablesTotal(); i++) {
      string gv_name=GlobalVariableName(i);
      if(StringFind(gv_name,"Multick")<0) continue;
      if(StringFind(gv_name,"chart_id")>0) {
         Print("Нашли такую переменную: "+gv_name);
         string xxx=IntegerToString(long(GlobalVariableGet(gv_name)));
         Print("Значение в ней = "+xxx);
         }
      }
   //2014.07.05 01:54:06.111    ChartsAgent NZDUSD,H1: ID главного = 130392553686025168
   //                                                а истинный ID = 130392553686025170

C'est ce que me dit le terminal :


J'ai essayé de lire la variable. Je l'ai mis directement dans la chaîne et je l'ai mis dans le journal, ainsi que dans des variables de différents types - tout cela est identique. C'est deux choses différentes.

Qu'est-ce qu'il y a ?

 
artmedia70:

C'est plutôt une question :

Qu'est-ce qu'il y a ?

J'aimerais également voir le code qui écrit dans la variable (en particulier quand et à quelle fréquence cela se produit).
 
marketeer:
J'aimerais également voir le code qui écrit dans la variable (en particulier quand et à quelle fréquence cela se produit).

Simple. Dans OnInit()

   symbol=Symbol();
   tf=Period();
   other.initNames(symbol,tf,Prefix,Magic);  // Создаём префикс и магик

// -------------------------------------------------------------

//----------------------------
   string gv_chart_id_name=Prefix+"_chart_id";
   long chart_id=get.GetChartID(symbol);
   if(chart_id>=0) GlobalVariableSet(gv_chart_id_name,chart_id); // chart_id==0 в тестере
   else graph.Message("Чё-та нету chart_id : Symbol()="+symbol+", chart_id="+IntegerToString(chart_id));
//----------------------------

// -------------------------------------------------------------

//+------------------------------------------------------------------+
   void COtherClass::initNames(string sy, int timeframe, string &prefix, int &mn) {
      string postf="_r", nm=WindowExpertName();
      if(IsDemo()) postf="_d";
      if(IsTesting()) postf="_t";
      if(IsVisualMode()) postf="_v";
      if(IsOptimization()) postf="_o";
      prefix=nm+"_"+sy+"-"+get.GetNameTF(timeframe)+postf;  
      mn=GetMagic(nm+sy,Period()); 
      }
//+------------------------------------------------------------------+
//+------------------------------------------------------------------+
   long CGetDataClass::GetChartID(string sy) {
      long id=-1, currChart,prevChart=ChartFirst();
      int i=0,limit=300;
      if(ChartSymbol(prevChart)==sy) id=prevChart;
      else {
         while(i<limit) {
            currChart=ChartNext(prevChart); 
            if(currChart<0) break;          
            if(ChartSymbol(currChart)==sy) {
               id=currChart;
               break;
               }
            prevChart=currChart;
            i++;
            }
         }
      return(id);
   }
//+------------------------------------------------------------------+

Quelque chose comme ça ...

 

artmedia70:

Et imprimer l'identifiant immédiatement, tant qu'il est en long et non converti ?

La variation globale est un type double, éventuellement une valeur arrondie dans la fenêtre