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

 

Не подскажите как решить проблемму?
После первого прогона эксперта в тестере (Read=false), создаётся csv файл со статистикой.
в int OnInit() такой код:

  ResetLastError();
  if(Read)
  {
    filehandle=FileOpen(FileName,FILE_READ|FILE_CSV);
  }
  else
  {
    filehandle=FileOpen("razdvigka.csv",FILE_WRITE|FILE_CSV);
  }
Созданный файл хранится в директории: tester\Agent\MQL5\Files

Однако, при втором прогоне  (Read=true). Необходимо считывать данные из этого файла, но файл удаляется.

 
Vitya:

Не подскажите как решить проблемму?
После первого прогона эксперта в тестере (Read=false), создаётся csv файл со статистикой.
в int OnInit() такой код:

Созданный файл хранится в директории: tester\Agent\MQL5\Files

Однако, при втором прогоне  (Read=true). Необходимо считывать данные из этого файла, но файл удаляется.

В этом случае Вам нужно создавать файл с флагом FILE_COMMON. Файл будет создаваться в общей папке терминала.
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
Документация по MQL5: Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала
  • www.mql5.com
Стандартные константы, перечисления и структуры / Состояние окружения / Состояние клиентского терминала - Документация по MQL5
 
tol64:
В этом случае Вам нужно создавать файл с флагом FILE_COMMON. Файл будет создаваться в общей папке терминала.
filehandle=FileOpen(FileName,FILE_READ|FILE_CSV|FILE_COMMON);
Спасибо.
Разобрался.
 
Rosh:
Посмотрите ChartIndicatorAdd
Спасибо!
 
 Сервисдеск, заявка #359447 ощупывается или зря старался?
 
x100intraday:
 Сервисдеск, заявка #359447 ощупывается или зря старался?
Идёт бурное обсуждение. Но пока ответ не готов.
 

Если предположить ,что вот это индикатор )) то первый раз выведет дату,а следующие установки на график ( второй,третьей копии) не выведет дату.

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots   1

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnInit()
  {
    Print(TimeCurrent());
   
   return(0);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,const int prev_calculated,
                const datetime &Time[],
                const double &Open[],
                const double &High[],
                const double &Low[],
                const double &Close[],
                const long &TickVolume[],
                const long &Volume[],
                const int &Spread[])
{
  
  
  
  return(rates_total);
  
}
 
Karlson:

Если предположить ,что вот это индикатор )) то первый раз выведет дату,а следующие установки на график ( второй,третьей копии) не выведет дату.

Сейчас вычислительная часть индикатора удаляется из mql-пространства с задержкой.  как раз на случай повторного использования.

если закидывать один и то же (с теми же параметрами) индикатор на разные (но с одним символом/таймфреймом) чарты - тоже не будет повторной инициализации.

Если после удаления последней копии сходить покурить - тогда будет повторная инициализация при запуске.

Такой вот побочный эффект оптимизации. :)

зы:  КУРЕНИЕ ВРЕДИТ ВАШЕМУ ЗДОРОВЬЮ ! 

;)

 

Уважаемые программисты,

скажите, что больше всего в коде программы на mql5 влияет на скорость? Дело в том, что в процессе создания своей программы и роста объема кода я столкнулся с тем, что скорость существенно уменьшилась. Хотя более объемные по коду стандартные советники из папки Advisors и Examples работают намного быстрее.

В общем,  есть ли на форуме статья или объяснение того, как лучше оформлять структуру кода. Дайте совет начинающему программисту. Спасибо!

 
Alex5757000:

Уважаемые программисты,

скажите, что больше всего в коде программы на mql5 влияет на скорость? Дело в том, что в процессе создания своей программы и роста объема кода я столкнулся с тем, что скорость существенно уменьшилась. Хотя более объемные по коду стандартные советники из папки Advisors и Examples работают намного быстрее.

В общем,  есть ли на форуме статья или объяснение того, как лучше оформлять структуру кода. Дайте совет начинающему программисту. Спасибо!

ИМХО, больше всего на скорость влияют вложенные циклы. Циклы с вложением до третьей глубины это практически предел за которым нужно очень внимательно следить за размерами циклов. Для например возьму свой P4: он работает на частоте 3Гц, на гора выдаёт ~10 лям операций в сек.

Эта цифра означает что циклы с тройной вложенностью 1000х1000х10 будут выполняться 1 сек, сами понимаете если 3-тий цикл увеличить до 100 то получим 10 сек.

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