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

 
Sergey Dzyublik:

Как тогда называется эта операция?

Эта операция никак теперь (1589+) не называется. Думаю, когда Вы вникните, откуда здесь Warning

template <typename T>
T Func(){
  T Res;
  return(Res);
}

template <typename T>
void Func( T Value ){
  T Res = (int)Value; // implicit conversion from 'number' to 'string'
}

void OnStart()
{
  Func<string>(); 

  Func(0);
}

тогда поймете, о какой проблеме идет речь.

 

Просьба в логах оптимизатора показывать диапазон и шаг оптимизируемых параметров.

А так же в логах агентов такие строки

NS      0       14:11:00.853    Tester  756 : passed in 0:00:04.789
MJ      0       14:11:03.447    Tester  757 : passed in 0:00:02.574
RM      0       14:11:05.860    Tester  758 : passed in 0:00:02.340

сопровождать информацией по соответствующему прогону - имя советника и его входные параметры.

 
Если здесь удалить строку
#define TYPETOBYTES_FULL_SLOW

то влючаются новые union-ы, увеличивая время компиляции в два раза.

'TypeToBytes_ExampleScript.mq5' TypeToBytes_ExampleScript.mq5
'TypeToBytes.mqh'       TypeToBytes.mqh
0 error(s), 0 warning(s), compile time: 3195 msec

Три секунды на небольшой код - это нормально?

При этом debug-версия

0 error(s), 0 warning(s), compile time: 108 msec

в 30 раз быстрее подготавливается.

Возможно ли быстро компилировать в дебаг-версию, но при этом не запускать саму отладку - для самопроверки?

 

Не знаю как так получилось, но получилось вот так:


 
Комбинатор:

Не знаю как так получилось, но получилось вот так:

Ты должен кому-то написать. Просто обязан, иначе никак )))
 
Andrey Khatimlianskii:
Ты должен кому-то написать. Просто обязан, иначе никак )))
Этого мало. После подобного нужно женится, не иначе.)))
 
В нынешних реалиях это нормально?
void OnStart()
{
  MqlTick Tick;
  
  Tick = (MqlTick)Tick; // cannot cast 'MqlTick' to 'MqlTick'
}
 

категорически приветствую!

помогите решить проблемку.

есть вот такой код, т.е. открываем новый чарт по обзору рынка и рисуем на нем объект.

пока в обзоре мало тикеров,проблем нет.

затем,чем больше окон открывается,тем медленее открывается следующее окно.

когда время открытия чарта достигает 3000мс!! = 3с, ChartOpen возвращает 0, хотя в итоге чарт окрывается,но !! у нас же есть условие - рисовать объект на новом чарте, если ChartOpen вернул 0,то мы не можем получить ID чарта,чтобы именно на нем нарисовать объект, хоть чарт и открылся в итоге,но мы не знаем его ID.

Попытался решить проблему васянским способом,тупо врубив Sleep 4с, но все равно, при колве чартов около 60,даже это не спасает. И это я еще выпилил аттач шаблона с индюками,как в начале планировал.

Если закомментить Sleep,то трэш,угар и содомия,начнутся гораздо раньше.

2017.04.29 12:50:12.563 открытие множества чартов с созданием объектов (EURUSD,H1)      Чарт 131379294082473728 открывался = 2480.0
2017.04.29 12:50:12.563 открытие множества чартов с созданием объектов (EURUSD,H1)      Раз тут открылся чарт #Wheat_N7 должен нарисовать объект 
2017.04.29 12:50:12.673 открытие множества чартов с созданием объектов (EURUSD,H1)      На символе номер = 57 #Wheat_N7 создано объектов = 1
2017.04.29 12:50:12.673 открытие множества чартов с созданием объектов (EURUSD,H1)      На символе номер = 57 #Wheat_N7 на самом деле создано объектов = 1
2017.04.29 12:50:19.753 открытие множества чартов с созданием объектов (EURUSD,H1)      Не удалось открыть чарт № = 58 тикер = #AUS200 за время = 3003.0
2017.04.29 12:50:26.623 открытие множества чартов с созданием объектов (EURUSD,H1)      Чарт 131379294223977200 открывался = 2794.0
2017.04.29 12:50:26.623 открытие множества чартов с созданием объектов (EURUSD,H1)      Раз тут открылся чарт #Belgium20 должен нарисовать объект 

Памяти отжирает терминал порядка 700мб, еще 1300 свободно,т.е. дело не в ресурсах. Колво баров на чарте выставлено 5000.

Не удалось открыть чарт № = 58 тикер = #AUS200

Однако чарт открылся, но его ID неизвестен.

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property strict
#property script_show_inputs
input string nametemplate="zz.tpl";
input int    limit=1000;
int symopen,objquant;
double close[];
datetime time[];
string namesym;
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   ArrayInitialize(time,0);
   ArrayInitialize(close,0);
   long chart_id=ChartFirst(),chart_id_prev;
   for(int c2=0; c2<SymbolsTotal(true)-1; c2++)
     {
      int Q=0;
      objquant=0;
      chart_id_prev=chart_id;
      ArrayFree(close);
      ArrayFree(time);
      ArrayResize(close,limit);
      ArrayResize(time,limit);
      int время=CopyTime(namesym,0,1,limit,time);
      int цена=CopyClose(namesym,0,1,limit,close);
      namesym=SymbolName(c2,true);
      ulong start=GetMicrosecondCount();
      chart_id=ChartOpen(namesym,0);
      ulong finish=GetMicrosecondCount();
      Sleep(4000);
      if( chart_id==0 )
        {
         Print("Не удалось открыть чарт № = ",c2," тикер = ",namesym," за время = ",
               NormalizeDouble((finish-start)/1000,3));
         continue;
        }
      Print("Чарт ",chart_id," открывался = ",NormalizeDouble((finish-start)/1000,3));
      symopen=1;
      //      ChartApplyTemplate(chart_id,nametemplate);
      Print("Раз тут открылся чарт ",namesym," должен нарисовать объект ");
      //Sleep(100);
      ResetLastError();
      bool objcreated=ObjectCreate(chart_id,"name"+namesym+string(c2),OBJ_RECTANGLE,0,time[5],close[5],time[15],close[15]);
      if(objcreated==true) objquant++;
      else Print("Ошибка создания объекта = ",GetLastError());
      Print("На символе номер = ",c2," ",namesym," создано объектов = ",objquant);
      int total=ObjectsTotal(chart_id,0,-1);
      Print("На символе номер = ",c2," ",namesym," на самом деле создано объектов = ",total);
     }
   return;
  }

//+------------------------------------------------------------------+
 
kaus_bonus:

помогите решить проблемку.

Написать GetNewChartID().
 
fxsaber:
Написать GetNewChartID().


для этого же и есть ChartOpen, должен возвращать ID нового чарта,но не делает этого

можете помочь,развив свою мысль?

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