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

 
mktr8591 #:

делайте CopyTicksRange  до цикла

И что, вы хоть вникли в вопрос?
До цикла CopyTicksRange, будет возвращать по одному добавленному элементу на каждый OnTick()
А мне на каждом OnTick() нужны все доступные тики из тестируемого периода.
fxsaber сказал, что оказывается их нужно ещё пробрасывать.
По этому и пришла мысль, пробрасывать все тики в цикле OnInit().
Но чтоб запустить цикл, нужно знать размер всех доступных тиков.
Тупик, тупиковый!

 
Roman #:

И что, вы хоть вникли в вопрос?
До цикла CopyTicksRange, будет возвращать по одному добавленному элементу на каждый OnTick()
А мне на каждом OnTick() нужны все доступные тики из тестируемого периода.
fxsaber сказал, что оказывается их нужно ещё пробрасывать.
По этому и пришла мысль, пробрасывать все тики в цикле OnInit().
Но чтоб запустить цикл, нужно знать размер всех доступных тиков.
Тупик, тупиковый!

То есть, на самом деле, вы хотите получить все тики и цены будущих периодов в начале тестов.

А потом, так как вы уверены, что помыслы у вас чисты, вы будете честно тестироваться без заглядывания в будущее?

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


Почитайте статьи в разделе тестера торговых стратегий, пожалуйста. Без этого будет хождение по граблям и непонимание базовых принципов.
Статьи по MQL5: Тестер
Статьи по MQL5: Тестер
  • www.mql5.com
Статьи по программированию на языке MQL5
 
Roman #:

И что, вы хоть вникли в вопрос?
До цикла CopyTicksRange, будет возвращать по одному добавленному элементу на каждый OnTick()
А мне на каждом OnTick() нужны все доступные тики из тестируемого периода.
fxsaber сказал, что оказывается их нужно ещё пробрасывать.
По этому и пришла мысль, пробрасывать все тики в цикле OnInit().
Но чтоб запустить цикл, нужно знать размер всех доступных тиков.
Тупик, тупиковый!

CopyTickRange возвращает все тики, имеющиеся в истории (т.е. в прошлом). Когда симуляция начинается, все тики в рамках тестера "превращаются" в "будущее".На первом OnTick первый тик переходит из будущего в прошлое (пробрасывается) и попадает в историю, поэтому в ней только один тик, остальные тики вы никак пока не получите. На втором OnTick переходит второй тик и тд.

 
Renat Fatkhullin #:

То есть, на самом деле, вы хотите получить все тики и цены будущих периодов в начале тестов.

А потом, так как вы уверены, что помыслы у вас чисты, вы будете често тестироваться без заглядывания в будущее?

Если вопрос только в экономном расширении и дочитывании только новых данных на онтике, то проблем вообще никаких нет. Если же вы не можете вычитать только новые тики, то это вопрос только к вашей квалификации.

Будущее не нужно отдавать! Отдайте всё прошлое, с даты старта теста до начала имеющейся истории.
То есть без будущего.
А на каждом OnTick(), уже добавляйте по оному тику.

 
Roman #:

Будущее не нужно отдавать! Отдайте всё прошлое, с даты старта теста.
А на каждом OnTick(), уже добавляйте по оному тику.

До первого OnTick нет прошлого , только будущее
 
Roman #:

Будущее не нужно отдавать! Отдайте всё прошлое, с даты старта теста.
А на каждом OnTick(), уже добавляйте по оному тику.

Именно так и работает тестер - на первом тике начинается потиковая работа.

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

 
mktr8591 #:
До первого OnTick нет прошлого , только будущее

Прошлое есть в истории терминала!
Тиковая история называется.
Первоначальную проброску всего рейнджа, именно от туда и делать.

Renat Fatkhullin #:

Именно так и работает тестер - на первом тике начинается потиковая работа.

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

По моим словам вы меня не слышите.
Не будущих, а рейндж прошлых тиков.
Будущее не нужно отдавать! Отдайте всё прошлое, с даты старта теста до начала имеющейся истории.
А на каждом OnTick уже добавлять по одному. Никакого заглядывания.

 
Roman #:

Прошлое есть в истории терминала!
Тиковая история называется.
Первоначальную проброску всего рейнджа, именно от туда и делать.

По моим словам вы меня слышите.
Не будущих, а рейндж прошлых тиков.
Будущее не нужно отдавать! Отдайте всё прошлое, с даты старта теста до начала имеющейся истории.

Уточните пожалуйста примере конкретных дат:

какая у вас дата/время начала истории для теста, дата  старта теста, время первого тика в истори, момент первого OnTick, какой время первого тика в нем (из  CopyTick ).

 
И до какого момента времени хотите получить тики в первом OnTick или OnInit
 
Renat Fatkhullin #:

Наивность в рамках текущей реальности и уровня потребительского экстремизма. О позиции юристов брокера задумайтесь на минутку. 

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

Тема закрыта.

понимаю Вашу позицию. тогда только остается использовать кастомные решения.