При попытках использовать тиковую историю возникают некоторые нпонятные моменты.
Вот один из них. Предположим, что я не знаю количество тиков истории и хочу скачать все доступные тиковые данные. цепляю на график (в данном случае EURUSD) советник с фрагментом кода:
В результате его работы получаю сообщение о копировании 108725043 тиков. При этом терминал съедает (по данным в диспетчере задач) 5574196КБ оперативной памяти.
Если код слегка изменить:
то в результате его работы будет сообщение о таком же количестве 108725043 скопированных тиков, но терминал при этом будет съедать уже 7321552КБ оперативной памяти.
Если же требуемое количество тиков для копирования указать точно, то варианты фрагментов кода
и
будут работать одинаково.
Чем это вызвано?
Сегодня днем попробую, а не пробовали запустить один и тот же код 2-3 раза подряд?
Пробовал, и несколько раз подряд, и в разной очерёдности.
В документации структура запроса на копирование тиков указана так:
int CopyTicks( string symbol_name, // имя символа MqlTick& ticks_array[], // массив для приема тиков uint flags=COPY_TICKS_ALL, // флаг, определяющий тип получаемых тиков ulong from=0, // дата, начиная с которой запрашиваются тики uint count=0 // количество последних тиков, которые необходимо получить );где
"from
[in] Дата, начиная с которой запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from=0, то отдаются последние count тиков."
А по факту получается, что скопировать какое-либо число (N) тиков возможно только в двух случаях - если сделать запрос на копирование последних N тиков или N тиков от начала имеющейся тиковой истории. В данный момент с сервера можно получить тики с момента 1324252808 в указанном формате даты, что соответствует дате 2011.12.19 00:00. При попытке указать любую другую начальную дату запроса тиков, копирование всё равно будет производиться с даты 1324252808.
Ещё одна непонятка при работе с тиками....
В документации структура запроса на копирование тиков указана так:
где
"from
[in] Дата, начиная с которой запрашиваются тики. Указывается в миллисекундах с 01.01.1970. Если параметр from=0, то отдаются последние count тиков."
А по факту получается, что скопировать какое-либо число (N) тиков возможно только в двух случаях - если сделать запрос на копирование последних N тиков или N тиков от начала имеющейся тиковой истории. В данный момент с сервера можно получить тики с момента 1324252808 в указанном формате даты, что соответствует дате 2011.12.19 00:00. При попытке указать любую другую начальную дату запроса тиков, копирование всё равно будет производиться с даты 1324252808.
Попробуй указать время как должно быть.
int TICKsCopied = CopyTicks(_Symbol, TICKs, COPY_TICKS_ALL, (TimeCurrent()-20)*1000, 100);
Если TimeCurrent() время в секундах с 01.01.1970 то в миллисекундах будет умноженное на 1000. Следовательно вышеприведённый вариант копирует тики за последние 20 секунд.
Попробуй указать время как должно быть.
Если TimeCurrent() время в секундах с 01.01.1970 то в миллисекундах будет умноженное на 1000. Следовательно вышеприведённый вариант копирует тики за последние 20 секунд.
Всем привет! Подскажите как в mt4 получить тики. Нет такой функции CopyTick в mt4. Чем ее можно заменить? Может кто знает дайте ссылку где найти можно.
Всем привет! Подскажите как в mt4 получить тики. Нет такой функции CopyTick в mt4. Чем ее можно заменить? Может кто знает дайте ссылку где найти можно.
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
При попытках использовать тиковую историю возникают некоторые непонятные моменты.
Вот один из них. Предположим, что я не знаю количество тиков истории и хочу скачать все доступные тиковые данные. цепляю на график (в данном случае EURUSD) советник с фрагментом кода:
В результате его работы получаю сообщение о копировании 108725043 тиков. При этом терминал съедает (по данным в диспетчере задач) 5574196КБ оперативной памяти.
Если код слегка изменить:
то в результате его работы будет сообщение о таком же количестве 108725043 скопированных тиков, но терминал при этом будет съедать уже 7321552КБ оперативной памяти.
Если же требуемое количество тиков для копирования указать точно, то варианты фрагментов кода
и
будут работать одинаково.
Чем это вызвано?