Если параметры не указаны. Мы же не о параметрах ведём речь, а о размере максимального копирования. И там чётко написано, не более 2000. И это видимо только для терминала. Опять недосказанность! А для тестера возможно и больше как оказывается из приведённой выше ссылке. Вопрос то не в этом был.
Компилятор понимает как к j присвоить 123 и если успешно присвоено, продолжить
Аналог
if((j=123)==123)
Согласен. Слово "ошибка" нужно взять в кавычки. Но конечная ситуация (падение терминала) от этого не изменяется, и пусть это не будет ошибкой для компилятора, но где-то,вероятно, нет проверки последствий ошибки.
Сейчас, чтоб пробросить исторические тики, нужно начальную дату (Старт тест) установить на начало имеющейся истории терминала. На скрине от балды поставил 1970 год для примера. И в коде самому обрабатывать момент, с какого времени начинается реальный тест, ввиду проброски данных потиково. Чтоб потом можно было корректно использовать CopyTicksRange. Когда ожидалось, что CopyTicksRange не такой глупый, и пробросит сам историю от даты начала тестового интервала. Например от 2022.08.22 и до начала тиковой истории терминала. А дальше с приходом OnTick увеличивать окно рейнджа, и перекидывать туда прошедший тик тестера.
Набросал простой советник, который копирует каждый тик последние 150000 тиков.
Там где есть реальные исторические тики - с первого бара копирует все 150000 тиков. Не понимаю суть проблемы.
там, где нет реальных исторических тиков, там тестер начинает их эмулировать с момента старта тестера, что логично. Это дает возможность определить программно, что реальных исторических данных нет, а осуществляется их эмуляция.
Вообщем, тестер работает с тиками так, как ожидал и так, как должно быть.
Попробовал ваш советник на 2х брокерах - на бирже (на Si) и на MetaquotesDemo (EURUSD). В обоих случаях нет никаких 150000, на первом OnTick 1, и тд.
Вопрос - а где и по каким инструментам есть реальные истор. тики?
не встречал отдельной функции для получения информации о стартовой дате истории тиков. Может ее и не существут. Но можно попробовать загрузить всю историю тиков и время нулевого тика и будет этой стартовой датой. Да - грузится не быстро. Но в тестере как раз и можно понять благодаря этой фичи, есть ли в данный момент времени исторические данные или происходит их эмуляция (если тиков нет до момента старта терминала). Понятное дело, что у разных брокеров своя история. Реальная история тиков может быть меньше года, если брокер молодой. Нельзя загрузить то, чего нет, а можно только сэмулировать. Чем тестер и занимается, но с момента тестового стартового интервала.
ЗЫ И вы не забывайте, что бесплатная реальная тиковая история - это большая плюшка от MQ
запускаю одиночное тестирование на EURUSD на MQ-Demo с 27.08.2009 по 28.08.2009
В логе следующие строки:
2022.08.2918:43:39.127 MetaTester 5 started on 127.0.0.1:30002022.08.2918:43:39.139 cloud network mode is off
2022.08.2918:43:39.139 initialization finished
2022.08.2918:43:39.582 login (build 3409)
2022.08.2918:43:39.6004412 bytes of account info loaded
2022.08.2918:43:39.6001478 bytes of tester parameters loaded
2022.08.2918:43:39.600196 bytes of input parameters loaded
2022.08.2918:43:39.60510390 bytes of symbols list loaded (1247 symbols)
2022.08.2918:43:39.605 expert file added: Experts\Tests\TestTimeTicks.ex5. 10345 bytes loaded
2022.08.2918:43:39.6181517 Mb available, 18 blocks setfor ticks generating
2022.08.2918:43:39.618 initial deposit 10000.00 USD, leverage 1:1002022.08.2918:43:39.622 successfully initialized
2022.08.2918:43:39.62218 Kb of total initialization data received
2022.08.2918:43:39.657 EURUSD: symbol to be synchronized
2022.08.2918:43:39.658 EURUSD: symbol synchronized, 3720 bytes of symbol info received
2022.08.2918:43:39.659 EURUSD: history synchronization started
2022.08.2918:43:39.661 EURUSD: load 27 bytes of history data to synchronize in0:00:00.0012022.08.2918:43:39.661 EURUSD: history synchronized from2008.01.02 to 2022.08.262022.08.2918:43:39.662 EURUSD: ticks synchronization started
2022.08.2918:43:39.663 EURUSD: load 34 bytes of tick data to synchronize in0:00:00.0002022.08.2918:43:39.663 EURUSD: history ticks synchronized from2022.08.26 to 2022.08.262022.08.2918:43:39.945 EURUSD,M1: history cache allocated for582024 bars and contains 580995 bars from2008.01.0209:01 to 2009.08.2623:592022.08.2918:43:39.945 EURUSD,M1: history begins from2008.01.0209:012022.08.2918:43:39.948 EURUSD,M1 (MetaQuotes-Demo): generating based on real ticks
2022.08.2918:43:39.948 EURUSD,M1: testing of Experts\Tests\TestTimeTicks.ex5 from2009.08.2700:00 to 2009.08.2800:00 started
2022.08.2918:43:39.994 EURUSD : real ticks begin from2022.08.2600:00:00, every tick generation used
Вот эта строка - EURUSD : real ticks begin from 2022.08.26 00:00:00.
Причем здесь 26.08.2022? Посмотрел историю тиков по символу - тики есть как минимум с 01.08.2022.
Нет. Читайте внимательно.
Если параметры не указаны.
Мы же не о параметрах ведём речь, а о размере максимального копирования.
И там чётко написано, не более 2000. И это видимо только для терминала.
Опять недосказанность!
А для тестера возможно и больше как оказывается из приведённой выше ссылке.
Вопрос то не в этом был.
Что будет в j ?
123
Если параметры не указаны.
Мы же не о параметрах ведём речь, а о размере максимального копирования.
И там чётко написано, не более 2000.
Нет ограничения. И это согласуется с Документацией. Мне неизвестны причины, почему делаете иную трактовку написанного.
Если параметры не указаны.
Мы же не о параметрах ведём речь, а о размере максимального копирования.
И там чётко написано, не более 2000.
Вы сами себе противоречите.
Если count ==3000, то вернет 3000.
Это не ошибка
if(j=123)
Компилятор понимает как к j присвоить 123 и если успешно присвоено, продолжить
Аналог
if((j=123)==123)
Согласен. Слово "ошибка" нужно взять в кавычки. Но конечная ситуация (падение терминала) от этого не изменяется, и пусть это не будет ошибкой для компилятора, но где-то,вероятно, нет проверки последствий ошибки.
Вы сами себе противоречите.
Если count ==3000, то вернет 3000.
Да, точно.
Я почему-то для без параметров привёл документацию.
А максимальный возврат с параметром не учёл.
Проблема вопроса вообще не об этом была.
А о тестере, и проброске исторических тиков.
"Старт тест" начало интервала в настройках теста.
Сейчас, чтоб пробросить исторические тики, нужно начальную дату (Старт тест) установить на начало имеющейся истории терминала.
На скрине от балды поставил 1970 год для примера.
И в коде самому обрабатывать момент, с какого времени начинается реальный тест, ввиду проброски данных потиково.
Чтоб потом можно было корректно использовать CopyTicksRange.
Когда ожидалось, что CopyTicksRange не такой глупый, и пробросит сам историю от даты начала тестового интервала.
Например от 2022.08.22 и до начала тиковой истории терминала.
А дальше с приходом OnTick увеличивать окно рейнджа, и перекидывать туда прошедший тик тестера.
Набросал простой советник, который копирует каждый тик последние 150000 тиков.
Там где есть реальные исторические тики - с первого бара копирует все 150000 тиков. Не понимаю суть проблемы.
там, где нет реальных исторических тиков, там тестер начинает их эмулировать с момента старта тестера, что логично.
Это дает возможность определить программно, что реальных исторических данных нет, а осуществляется их эмуляция.
Вообщем, тестер работает с тиками так, как ожидал и так, как должно быть.
Там где есть реальные исторические тики - с первого бара копирует все 150000 тиков. Не понимаю суть проблемы.
там, где нет реальных исторических тиков, там тестер начинает их эмулировать с момента старта тестера, что логично.
Попробовал ваш советник на 2х брокерах - на бирже (на Si) и на MetaquotesDemo (EURUSD). В обоих случаях нет никаких 150000, на первом OnTick 1, и тд.
Вопрос - а где и по каким инструментам есть реальные истор. тики?
Попробовал ваш советник на 2х брокерах - на бирже (на Si) и на MetaquotesDemo (EURUSD). В обоих случаях нет никаких 150000, на первом OnTick 1, и тд.
Вопрос - а где и по каким инструментам есть реальные истор. тики?
не встречал отдельной функции для получения информации о стартовой дате истории тиков. Может ее и не существут.
Но можно попробовать загрузить всю историю тиков и время нулевого тика и будет этой стартовой датой.
Да - грузится не быстро.
Но в тестере как раз и можно понять благодаря этой фичи, есть ли в данный момент времени исторические данные или происходит их эмуляция (если тиков нет до момента старта терминала).
Понятное дело, что у разных брокеров своя история. Реальная история тиков может быть меньше года, если брокер молодой.
Нельзя загрузить то, чего нет, а можно только сэмулировать. Чем тестер и занимается, но с момента тестового стартового интервала.
ЗЫ
И вы не забывайте, что бесплатная реальная тиковая история - это большая плюшка от MQ
Обратил внимение на следующую вещь:
запускаю одиночное тестирование на EURUSD на MQ-Demo с 27.08.2009 по 28.08.2009
В логе следующие строки:
Вот эта строка - EURUSD : real ticks begin from 2022.08.26 00:00:00.
Причем здесь 26.08.2022? Посмотрел историю тиков по символу - тики есть как минимум с 01.08.2022.
Что я упустил?