Тиковая история - страница 4

 
Tapochun:

Способ... не очень, Вы не находите!? 

Ну это первое, что пришло в голову.
 
Vasiliy Sokolov:
Предложение разработчикам: в структуру MqlTick ввести более точный формат времени, что бы у каждого тика было количество миллисекунд.
Без этого не имеет смысла все это начинать, если я хочу одновременно анализировать историю по нескольким инструментам, ведь без этого я не увижу последовательность взаимовлияния инструментов друг на друга.
 
Renat Fatkhullin:

Все приходит, просто на первом вызове происходит запуск подкачки, а последующие вызовы проходят мгновенно.

Вот пример:

Запрос  2 000 000 тиков:

Файлы тиков лежат тут, так что их можно легко переносить (ибо они будут огромными):
10-20 мб на месяц. Запрашивал 20 000 000 тиков, а файлов только до мая текущего года. Однако...
 
Oleg Tsarkov:
От брокеров глубокой обычной истории не дождешься. Они на пятерке научились превращать минутки в часы и если жалуешься на это, отвечают, что не в состоянии себе позволить нагружать сервер гигабайтами исторических данных. Какие уж тут тики...
Почивший в бозе RVD позволял качать тиковую историю больше, чем на год.
 
Теперь не нужны сборщики тиков - тиковая история доступна в терминале.
 
Tapochun:
10-20 мб на месяц. Запрашивал 20 000 000 тиков, а файлов только до мая текущего года. Однако...

Все верно, 20 000 000 тиков - это примерно (все зависит от символа) до 15 мая 2015 года.

2015.10.15 16:03:08.585 CopyTicks (EURGBP,M1)   Тик 19999999: 2015.10.15 16:03:04 bid: 0.73775 last: 0.0
2015.10.15 16:03:08.585 CopyTicks (EURGBP,M1)   Тик 0: 2015.05.15 16:00:47 bid: 0.72077 last: 0.72077
2015.10.15 16:03:08.585 CopyTicks (EURGBP,M1)   Получено тиков: 20000000 код ошибки: 0
Запрашивайте больше.
 
Renat Fatkhullin:

Все верно, 20 000 000 тиков - это до 15 мая 2015 года.

Запрашивайте больше.
Оператива дала понять, что она кончилась. Терминал потреблял 1.5 - 2 гб. Скриптом проверял сколько сможет. С шагом в 100000.
 
Tapochun:
Оператива дала понять, что она кончилась. Терминал потреблял 1.5 - 2 гб. Скриптом проверял сколько сможет. С шагом в 100000.

Каким именно скриптом? Покажите код, пожалуйста.

Может просто не освобождали(явно или косвенно) ранее занятую память?

 
Renat Fatkhullin:

Все верно, 20 000 000 тиков - это до 15 мая 2015 года.

Запрашивайте больше.
Да, хорошо бы добавить перегрузку CopyTicks() так же, как и остальных Copy.. функций. Чтобы можно было получать с даты по дату. Сейчас, например, нельзя получить тики с начала текущего дня до текущего момента.
 
Renat Fatkhullin:

Каким именно скриптом?

Может просто не освобождали ранее занятую память?

Скорее всего, сам написал. Гм, а как тут можно освободить ранее занятую память?

MqlTick array[];
int value = inpStep;
int num = 0;
while( num >= 0 )
   {
    num = CopyTicks( _Symbol, array, COPY_TICKS_ALL, 0, value );
    if( num > 0 )
      {
       value += inpStep;
       Print( ": Получено тиков: ",value );
       continue;
      }
    else
      {
       Print( "Максимально доступно ",value-inpStep," тиков! Шаг = ",inpStep );
       break;
      }
   }