Подсчет среднего хода цены старшего таймфрейма через младший

 
Столкнулся с проблемой подсчета среднего хода цены на месячном ТФ в тестере стратегий, т.е. отсутствует история месячных котировок. Их вообще можно както загрузить?
 

неужели ни у кого нет идей?

Как вариант сохранил месячные котировки в CSV. Осталось их сконвертировать в FXT. Но что-то ни один скрипт из найденных не работает правильно. 
Есть у когото подобный опыт конвертации?
CSV прикладываю

Файлы:
 
peterlogin:

неужели ни у кого нет идей?

Как вариант сохранил месячные котировки в CSV. Осталось их сконвертировать в FXT. Но что-то ни один скрипт из найденных не работает правильно. 
Есть у когото подобный опыт конвертации?
CSV прикладываю

в 4-рке отключаем автопрокрутку и жмем "Home"

если не помогает - меню Сервис\Архив Котировок\

 
Renat Akhtyamov:

в 4-рке отключаем автопрокрутку и жмем "Home"

если не помогает - меню Сервис\Архив Котировок\

к сожалению это не приведет к появлению месячной истории в формате fxt для тестера.

В общем пришлось искать максимумы и минимумы через D1. 

 
peterlogin:

к сожалению это не приведет к появлению месячной истории в формате fxt для тестера.

В общем пришлось искать максимумы и минимумы через D1. 

ничего не сделав отвечать не надо, т.к. не правда

история будет в терминале

в тестере МТ4 MN1 нет

 

На сколько помню, доступ к недельному и месячному таймфрейму из тестере когда-то был. Наверняка и сейчас есть.

Тестировать на W1 и MN1 нет возможности, но получать данные от туда, при тестировании на меньших таймреймах, должно быть возможным.

 
peterlogin:

неужели ни у кого нет идей?

Как вариант сохранил месячные котировки в CSV. Осталось их сконвертировать в FXT. Но что-то ни один скрипт из найденных не работает правильно. 
Есть у когото подобный опыт конвертации?
CSV прикладываю

Идеи есть, но они несколько в другом русле. Сохранить в csv в нормальном виде, чтобы каждая строка содержала 5 значений. Причем время писать в формате datetime, т.е., как целое число.

В эксперте прочитать файл в два двумерных массива. Первый массив называется "ключ сортировки". Он состоит из двух столбцов. В первый пишется время, во второй номер строки массива, содержащей значения OHLC, соответствующие этому времени. Сортируем массив "ключ сортировки" по возрастанию по первому измерению.

Теперь, с помощью ArrayBsearch() по времени открытия свечи (или любого времени внутри искомого интервала) всегда можем найти нужную котировку. Номер строки достаем из второго столбца массива "ключ сортировки".

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Свойства графиков
  • www.mql5.com
Признак отрисовки ценового графика. Если установлено значение false, то отключается отрисовка любых атрибутов ценового графика и устраняются все отступы по краям графика: шкалы времени и цены, строка быстрой навигации, метки событий Календаря, значки сделок, тултипы индикаторов и баров, подокна индикаторов, гистограммы объёмов и т.д...
 
Renat Akhtyamov:

ничего не сделав отвечать не надо, т.к. не правда

история будет в терминале

в тестере МТ4 MN1 нет

Если бы в тестере можно было бы выбрать MN1 я бы сюда не писал. Вопрос то и был как ее получить, чтобы значения функции типа Highest (..., PERIOD_MN1 ...) в тестере заработали.


Mislaid:

Идеи есть, но они несколько в другом русле. Сохранить в csv в нормальном виде, чтобы каждая строка содержала 5 значений. Причем время писать в формате datetime, т.е., как целое число.

В эксперте прочитать файл в два двумерных массива. Первый массив называется "ключ сортировки". Он состоит из двух столбцов. В первый пишется время, во второй номер строки массива, содержащей значения OHLC, соответствующие этому времени. Сортируем массив "ключ сортировки" по возрастанию по первому измерению.

Теперь, с помощью ArrayBsearch() по времени открытия свечи (или любого времени внутри искомого интервала) всегда можем найти нужную котировку. Номер строки достаем из второго столбца массива "ключ сортировки".

Ваш вариант - подойдет. Конечно придется обновлять CSV файл.

Я решил задачу поиска мин / макс месяца через дневные свечи. Правда пришлось заморочиться с високосными годами и выходными днями.

Всем спасибо за советы

 
Определитесь, тестировать вы собрались на MN1, или же только данные нужны. К данным доступ есть,
 
Dmitry Fedoseev:
Определитесь, тестировать вы собрались на MN1, или же только данные нужны. К данным доступ есть,

тестирую я на M5, но мне нужны максимумы минимумы месяца.

#property strict
int OnInit()
  {
   int shift = 1;
   double res = iHigh(Symbol(), PERIOD_MN1, shift);
   if (res == 0) 
      Print("GetLastError=",GetLastError());
   else
      Print("Hi shift("+string(shift)+")=",res);

   return(INIT_SUCCEEDED);
  }

это код советника в тестере возвращает ошибку:

2019.10.26 12:54:08.064 2019.09.12 00:00:00  1 EURUSD.I,M5: GetLastError=4074

4074

ERR_NO_MEMORY_FOR_HISTORY

Не хватает памяти для исторических данных


я эту ошибку связал с тем что нет истории месячной в формате FXT. Если это не так, т.е. история должна браться из HST, то не понятно почему она не находиться и где он ее ищет. Месячный график в терминале отображается.  

 
Попробуйте тоже самое, но в OnTick().