Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 1375

 
int symbols=0;

и после Manual запятая не нужна

 

Добрый день.

При исполнении скрипта идет запись в FILE_BIN.  В процессе отладки хочу проверить, что в него записывается.

Какой программой можно открыть такой файл?

 
sable57fx #:

Какой программой можно открыть такой файл?

Сделайте скрипт, который читает этот файл и пишет в логи терминала
 
Aleksei Stepanenko #:
Сделайте скрипт, который читает этот файл и пишет в логи терминала
Это  будет непременно делаться, но цель в том, чтобы визуально проконтролировать правильность записи.
 
sable57fx #:

Отдельный скрипт как раз и поможет посмотреть что в bin. Второй вариант: пишите параллельно csv файл, специально для просмотра.

 
sable57fx #:

Добрый день.

При исполнении скрипта идет запись в FILE_BIN.  В процессе отладки хочу проверить, что в него записывается.

Какой программой можно открыть такой файл?

Перед записью в файл суньте в переменную то, что будет писаться и её поместите в наблюдение. Пошаговое выполнение даст возможность увидеть что будет записано…

 
Спасибо.  Так и сделаю. 
 
Aleksei Stepanenko #:

и после Manual запятая не нужна

Спасибо

 

Блииннн, ну не могу ни как сообразить. 


В целом задача у меня стоит так. 

Рассчитать цену (H+L)/2 с условиями, что массив цены будет расти в соответствии с появлениями новых баров

- Учитывая что график ограничен в размере 3000 баров

   int start= this.m_rt - this.m_pc;//this.m_rt;
   datetime arr_time[];
   double arr_high[],arr_low[];
//--- устанавливает новый размер в первом измерении массива
   ArrayResize(this.m_pr_hl2,this.m_rt);
   ArrayResize(this.m_tim_pr_hl2,this.m_rt);
   ArrayResize(this.m_high,this.m_rt);
   ArrayResize(this.m_low,this.m_rt);
//--- функция получает в массив
   CopyTime(this.m_symbol, this.m_timeframe, this.m_rt-start, start, arr_time);
   CopyHigh(this.m_symbol, this.m_timeframe, this.m_rt-start, start, arr_high);
   CopyLow(this.m_symbol, this.m_timeframe, this.m_rt-start, start, arr_low);
//--- цена для расчета средних
// start= start>ArraySize(arr_high) ? ArraySize(arr_high) : start;
   for(int b= this.m_rt-start; b < this.m_rt; b++)
      this.m_pr_hl2[b]= (arr_high[b] + arr_low[b]) / 2;
//--- производит копирование одного массива в другой.
   ArrayCopy(this.m_tim_pr_hl2, arr_time, this.m_rt-start, this.m_rt-start);
   ArrayCopy(this.m_high, arr_high, this.m_rt-start, this.m_rt-start);
   ArrayCopy(this.m_low, arr_low, this.m_rt-start, this.m_rt-start);

Четыре дня кручу и не получается!!! ХЕЛП

 
Mikhail Toptunov #:

Блииннн, ну не могу ни как сообразить. 


В целом задача у меня стоит так. 

Рассчитать цену (H+L)/2 с условиями, что массив цены будет расти в соответствии с появлениями новых баров

- Учитывая что график ограничен в размере 3000 баров

Четыре дня кручу и не получается!!! ХЕЛП

ВОО вроде получилось

void CNewBar::PriceHL2()
  {
   int start= this.m_rt - this.m_pc;//this.m_rt;
   datetime arr_time[];
   double arr_high[],arr_low[];
//--- устанавливает новый размер в первом измерении массива
   ArrayResize(this.m_pr_hl2,this.m_rt);
   ArrayResize(this.m_tim_pr_hl2,this.m_rt);
   ArrayResize(this.m_high,this.m_rt);
   ArrayResize(this.m_low,this.m_rt);
//--- флаг элементов массива будет производиться как в таймсериях.
   ArraySetAsSeries(arr_time,true);
   ArraySetAsSeries(arr_high,true);
   ArraySetAsSeries(arr_low,true);
//--- функция получает в массив
   CopyTime(this.m_symbol, this.m_timeframe, 0, start, arr_time);
   CopyHigh(this.m_symbol, this.m_timeframe, 0, start, arr_high);
   CopyLow(this.m_symbol, this.m_timeframe, 0, start, arr_low);
//--- цена для расчета средних
   for(int b= 1; b < start; b++)
      this.m_pr_hl2[this.m_rt-b]= (arr_high[b] + arr_low[b]) / 2;
//--- производит копирование одного массива в другой.
   ArrayCopy(this.m_tim_pr_hl2, arr_time, this.m_rt-start, 0, start);
   ArrayCopy(this.m_high, arr_high, this.m_rt-start, 0, start);
   ArrayCopy(this.m_low, arr_low, this.m_rt-start, 0, start);
  }
Причина обращения: