Ошибки, баги, вопросы - страница 1165

 

Здравствуйте. Нужна помощь. Может, кто подскажет, как уменьшить размер шрифта на графике тестера стратегий, чтобы он не закрывал график и помещался целиком на графике, как на  картинке ниже (вариант №2):

 
Akromix:

Здравствуйте. Нужна помощь. Может, кто подскажет, как уменьшить размер шрифта на графике тестера стратегий, чтобы он не закрывал график и помещался целиком на графике, как на  картинке ниже (вариант №2):

Попробуйте в настройках Windows выбрать стандартный размер системного шрифта, или даже уменьшить его.
 
marketeer:
Попробуйте в настройках Windows выбрать стандартный размер системного шрифта, или даже уменьшить его.
При таких изменениях уменьшается только шрифт с названием окна терминала, но на графике тестера шрифт не уменьшается.
 
barabashkakvn:

При фиксации изменений в MQL5 Storage возникла ошибка 170004. Наблюдаю такое уже второй раз.

Ну видимо обновиться надо перед коммитом.
 
TheXpert:
Ну видимо обновиться надо перед коммитом.
Это рецепт? Такое помогает? Просто с утра обновился с хранилища, потом полдня работал и вот при фиксации такая ошибка № 170004.
 
barabashkakvn:
Это рецепт? Такое помогает? Просто с утра обновился с хранилища, потом полдня работал и вот при фиксации такая ошибка № 170004.
Ну если пишет что репозиторий неактуальный, то логично попробовать его обновить.
 
TheXpert:
Ну если пишет что репозиторий неактуальный, то логично попробовать его обновить.
Такое ощущение, что еще один компьютер обновил моё хранилище, пока я работал. Я конечно после возникновения ошибки пробовал обновиться. Не помогло.
 

Скорее вопрос:

Ищу существующую GV терминала по имени. Через неё в индикатор передаётся ID графика, на котором работает советник. Индикатор висит на другом символе. Т.е., хочу в индикатор передать ID графика, на котором работает управляющий советник. Ищу так:

   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

вот что мне пишет терминал:


Как только ни пытался считать переменную. И сразу в строку, чтоб просто в журнал вывести, и в переменные различных типов - всё одно. На 2 разница.

Что не так?

 
artmedia70:

Скорее вопрос:

Что не так?

Еще бы посмотреть код, который в переменную пишет (особенно, когда и как часто это происходит).
 
marketeer:
Еще бы посмотреть код, который в переменную пишет (особенно, когда и как часто это происходит).

Просто. В 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);
   }
//+------------------------------------------------------------------+

Как-то так ...

Причина обращения: