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

 
Михаил:

Не часто ищу коды стрелок, но в справке их невероятно сложно найти!

Это такая табличка, в которой звёздочки, кружки и т.п.

И поиск что угодно выдаёт, кроме нужного!

Wingdings
 

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

Библиотеки: HistoryTicks

fxsaber, 2020.01.09 14:43

Не заметил, что в КБ версия старая. К сожалению, обновить не получается. Автомат КБ выдает такое
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
В ME все компилируется без ошибок.
 
Stanislav Korotky:

Почему в 3-ей строке:

предупреждение "sign mismatch"?

datetime - это по идее беззнаковое число (8 байт как и ulong). Приведите мне пример отрицательной даты.

наверное потому что нет отдельного типа timestamp и тип datetime служит в том числе и для хранения разницы времени
 
подскажите пожалуйста, какое событие(если есть) генерируется в тестере при нажатии кнопки Стоп?
 
Еще раз пишу помогите!   Не знаю как получить обратно   лучшую связь , смена счета не помогает   
Файлы:
Mc3FTItT2F8.jpg  18 kb
 

При применении  ChartSetSymbolPeriod  в OnInit индикатора при отладке на текущих данных странность - в OnTick() rates_total от старого ТФ, а массивы таймсерий от нового:

datetime shift,arr[],arr2[];
void OnInit()
  {
 if (ChartPeriod()!=PERIOD_D1)
 {
     ChartSetSymbolPeriod(0,Symbol(),PERIOD_D1);
     CopyTime(Symbol(),PERIOD_D1,0,iBars(Symbol(),PERIOD_D1),arr);     
     ChartRedraw();
     Sleep(100);
  }  
 CopyTime(Symbol(),PERIOD_H1,0,iBars(Symbol(),PERIOD_H1),arr2); 
  }

Тут видно Time[x] с Днёвки, а rates_total с H1, при этом в окне отладчика ТФ графика сменился на днёвку.


 
Aleksey Mavrin:

При применении  ChartSetSymbolPeriod  в OnInit индикатора при отладке на текущих данных странность - в OnTick() rates_total от старого ТФ, а массивы таймсерий от нового:

Тут видно Time[x] с Днёвки, а rates_total с H1, при этом в окне отладчика ТФ графика сменился на днёвку.


При смене таймфрейма индикатор полностью пересоздаётся. Т.е., удаляется хэндл предыдущего индикатора, и создаётся хэндл нового.
Но есть одно "НО". Предыдущий индикатор ещё некоторое время присутствует.

Не в этом ли причина...

 
Aleksey Mavrin:

При применении  ChartSetSymbolPeriod  в OnInit индикатора при отладке на текущих данных странность - в OnTick() rates_total от старого ТФ, а массивы таймсерий от нового:

Тут видно Time[x] с Днёвки, а rates_total с H1, при этом в окне отладчика ТФ графика сменился на днёвку.

IndicatorRelease

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
//|                                        Test_IndicatorRelease.mq5 | //|                        Copyright 2010, MetaQuotes Software Corp. | //|                                             https://www.mql5.com | //| Expert initialization function                                   |...
 
Artyom Trishkin:

При смене таймфрейма индикатор полностью пересоздаётся. Т.е., удаляется хэндл предыдущего индикатора, и создаётся хэндл нового.
Но есть одно "НО". Предыдущий индикатор ещё некоторое время присутствует.

Не в этом ли причина...

Да, как я понял по экспериментам, после ChartSetSymbolPeriod  довыполняется OnInit и один раз (в режиме отладки как минимум) выполняется OnCalculate (в этот момент то и отлавливается). после этого индикатор релизится и запускается OnInit уже на новом ТФ. Т.е. В онлайне работе не мешает.

Просто сам факт что в OnCalculate могут прилететь данные разных ТФ я считаю баг, поэтому сюда и написал.

 
Это недоработка ArraySwap?
void OnStart()
{
  int ArrayStatic[1];
  int ArrayDynamic[];
  
  ArrayResize(ArrayDynamic, ArraySize(ArrayStatic));
  
  Print(ArraySwap(ArrayStatic, ArrayDynamic)); // false
}
Причина обращения: