Обсуждение статьи "Разработка системы репликации - Моделирование рынка (Часть 23): ФОРЕКС (IV)"

 

Опубликована статья Разработка системы репликации - Моделирование рынка (Часть 23): ФОРЕКС (IV):

Теперь создание происходит в той же точке, где мы преобразовывали тики в бары. Таким образом, если в процессе преобразования что-то пойдет не так, мы сразу же заметим ошибку. Это связано с тем, что тот же код, который размещает на графике 1-минутные бары при быстрой перемотке, также используется для системы позиционирования и для размещения баров при обычной перемотке. Другими словами, код, который отвечает за эту задачу, больше нигде не дублируется. Таким образом, мы получаем гораздо более совершенную систему как для поддержания, так и для улучшения.

В предыдущей статье "Разработка системы репликации - Моделирование рынка (Часть 22): ФОРЕКС (III)", мы внесли некоторые изменения в систему, чтобы тестер мог генерировать информацию на основе BID, а не только на основе LAST. Но данные модификации меня не удовлетворили, и причина проста: мы так дублируем код, а это меня совершенно не устраивает.


Однако, поскольку код для статьи уже был готов, а статья была почти завершена, я оставил всё так, как есть, но это меня очень беспокоило. Нет никакого смысла в том, чтобы код работал в одних ситуациях и не работал в других. Даже отлаживая код и пытаясь найти причину ошибки, я так и не смог ее обнаружить. Но, оставив код без внимания на одно мгновение и взглянув на схему системы (да, вы всегда должны пытаться использовать схему для ускорения написания кода), я заметил, что могу внести некоторые изменения, чтобы избежать дублирования кода. И что еще хуже, код фактически дублировался. Это и стало причиной проблемы, которую я не смог решить. Но решение есть, и мы начнем эту статью с решения данной проблемы, поскольку ее наличие может сделать невозможным правильное написание кода тестера для работы с рыночными данными, как это происходит на ФОРЕКС.

Автор: Daniel Jose

 

Здравствуйте, уважаемый Даниил,

Поздравляю вас с этой замечательной системой, которую вы разработали.

Я столкнулся с некоторыми проблемами при тестировании вашей системы, и мне нужна ваша помощь.

Во-первых, я сохранил тиковые данные за месяц и поставил их на воспроизведение. Однако на 1-минутном таймфрейме при воспроизведении через месяц при изменении пина на слайдере количество отображаемых свечей не соответствует положению пина на слайдере, я показал это в приложенном видео. Я довел пин до конца, но свечи повторяются только на небольшом количестве 1-минутных баров (около 20 баров).

Второе - мне нужно изменить эту систему так, чтобы движение баров было как в Strategy Tester, т.е. положение пина отражало скорость отображения баров, или у меня была возможность двигаться бар за баром, как на сайте TradingView. Ваша система устроена таким образом, что ее можно изменить вот так????.

Я был бы благодарен, если бы вы могли меня направить.

Искренне Ваш,

Файлы:
Part_23.gif  811 kb
 
Philip Tweens количестве 1-минутных баров (около 20 баров).

Второй момент - мне нужно изменить эту систему так, чтобы движение баров было как в Strategy Tester, т.е. положение пина отражало скорость отображения баров, или у меня была возможность двигаться бар за баром, как на сайте TradingView. Ваша система устроена таким образом, что ее можно изменить вот так????

Я был бы благодарен, если бы вы могли меня направить.

Искренне Ваш,

Ладно, давайте по частям, как сказал бы JACK...😁👍

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

Что касается первого вопроса: возможно, вы не совсем поняли, как будет происходить воспроизведение/симуляция. Забудьте на время о слайдере. Когда вы воспроизводите систему, она получает данные, которые были загружены, в виде тиков или баров, и отображает их на графике в виде баров, основываясь на времени в 1 минуту. Это происходит независимо от времени графика, которое вы хотите использовать. Поэтому данные в файле следует воспринимать как 1-минутные бары. Не стоит рассматривать данные в файле как отдельные данные. Это приложение не воспринимает их таким образом. Оно всегда будет интерпретировать бары, даже двухчасовые, как 1-минутные бары. Всегда.

Если вы используете бары, приложение автоматически заметит это и создаст моделирование таким образом, чтобы каждый бар был длиной примерно 1 минута. Создавая столько тиков, сколько необходимо для правильного отображения значений на графике. Если данные в файле представляют собой тики, система будет запускать каждый тик с приблизительным интервалом, определенным между ними, см. предыдущие статьи, чтобы понять это. Этот интервал может составлять от нескольких миллисекунд до нескольких часов. Но при этом все, что попадает в этот интервал, будет расцениваться как аукцион или остановка торгов. Поэтому если вы используете данные с интервалом более суток или 24 часов, приложение, скорее всего, не сможет правильно распознать бары. Это происходит, если вы используете ползунок для поиска новой точки исследования. По этой причине следует избегать использования данных с временным интервалом более одного дня.

Помните, что приложение разработано для использования во времени, эквивалентном реальному времени. Другими словами, короткие периоды. Чтобы ввести в исследование длинные периоды. Если вам нужно использовать среднее значение или индикатор, который требует построения большого количества баров. Вы НЕ ДОЛЖНЫ использовать эти данные в повторе или симуляторе. Вы должны использовать их в качестве предыдущих баров. Это первый момент, который вы должны постараться понять.

Что касается второго вопроса: вы представляете, что ползунок будет искать определенную точку. Это действительно так, но не так, как вы хотите или представляете. Чтобы лучше понять это, посмотрите предыдущие статьи, в которых слайдер был реализован. Там вы подробно увидите, как он на самом деле ищет определенную позицию. Но в этом вопросе вы путаете использование элемента управления. Поскольку вы также поднимаете идею, что он может быть использован для изменения скорости, с которой строятся бары. Это совсем не так. Построение графика, которое вы замечаете, когда перетаскиваете контроллер, а затем нажимаете кнопку воспроизведения, происходит на более высокой скорости. На самом деле это иллюзия, созданная приложением. Чтобы показать, как создавались столбики до того момента, когда вы указали на начало симуляции или воспроизведения, чтобы вы могли провести свое исследование.

Мой совет: внимательно прочитайте предыдущие статьи, и если у вас возникнут вопросы, пишите их в комментариях. Так вам будет гораздо проще понять, что происходит на самом деле и как использовать приложение с пользой для пользователя. Если у вас есть вопросы, вы можете задать их в комментариях ... 😁👍

 
daniel jose # :

Ладно. Давайте разложим все по полочкам, как сказал бы Джек...😁👍

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

По поводу первого вопроса: возможно, вы не совсем поняли, как будет происходить воспроизведение/симуляция. Забудьте на время о слайдере. Когда вы нажимаете кнопку воспроизведения, система получает загруженные данные в виде тиков или баров и отображает их на графике в виде баров, основанных на времени в 1 минуту. Это не зависит от того, какой таймфрейм вы хотите использовать. По этой причине данные, которые должны быть в файле, следует воспринимать как бары длительностью 1 минута. Вы не должны рассматривать данные файла как отдельные данные. Потому что это приложение не воспринимает их таким образом. Оно всегда будет интерпретировать бары, даже двухчасовые, как 1-минутные. Всегда

Если вы используете бары, приложение автоматически заметит это и создаст симуляцию так, чтобы каждый из баров был длиной примерно 1 минута. Создайте столько тиков, сколько необходимо для правильного отображения значений на графике. Если данные в файле представляют собой тики, система будет записывать каждый из тиков в примерном интервале, который определен между ними. См. предыдущие статьи, чтобы понять это. Такой интервал может составлять от нескольких миллисекунд до нескольких часов. Но при этом все, что попадает в интервал, будет рассматриваться либо как аукцион, либо как удержание торгов. Таким образом, если вы используете данные с интервалом более одного дня, то есть 24 часов, приложение, скорее всего, не сможет правильно распознать бары. Это происходит, если вы используете ползунок для поиска новой точки исследования. Поэтому следует избегать использования данных с интервалом более одного дня.

Помните, что приложение задумывалось для использования во времени, эквивалентном реальному времени. Другими словами, короткие периоды. Чтобы ввести в исследование длинные периоды. В случае, если вам нужно использовать какую-то среднюю или индикатор, для построения которого требуется много баров. Вы НЕ ДОЛЖНЫ использовать данные в реплее или симуляторе. Вы должны поместить их как пребары. Это первый пункт, который вы должны понять.

Теперь о втором вопросе: Вы представляете, что слайдер будет искать определенную точку. Это действительно так, но не так, как вы хотите или представляете. Чтобы лучше понять, посмотрите предыдущие статьи, где был реализован этот элемент управления. Там вы увидите в деталях, как он на самом деле ищет определенное положение. Но в этом же вопросе вы путаете использование контроля. Поскольку вы также поднимаете идею о том, что он может служить для изменения скорости построения баров. На самом деле этого вовсе не происходит. Такой график, который вы замечаете, когда перетаскиваете элемент управления и затем нажимаете кнопку воспроизведения, в данном случае на более высокой скорости. На самом деле это иллюзия, созданная приложением. Чтобы показать, как создавались столбики до того момента, когда вы указали, что нужно начать симуляцию или воспроизведение,

Мой совет: спокойно прочитайте предыдущие статьи, а если сомневаетесь, опубликуйте их в виде комментария. Так вам будет гораздо проще понять, что происходит на самом деле и как можно использовать приложение с пользой для пользователя. Любые вопросы вы можете задать в комментариях... 😁👍

Я не думаю, что вы поняли, что я имел в виду, и, возможно, я плохо выразился.
Я понимаю функцию слайдера. Я поместил данные в Replay на месяц (около 20 дней). Однако я передвинул пин ближе к концу ползунка, но в первый день нарисовалось только несколько баров, тогда как до достижения нужной точки должно было пройти не менее 15 дней. Может, я что-то не так понял? Полагаю, это связано с тем, что вы сказали о неиспользовании данных более чем за один день.
Что касается скорости отображения баров, я бы хотел, чтобы вы посоветовали мне, как изменить систему таким образом.
Спасибо за ответ.
 
Philip Tweens #:
Я не думаю, что вы поняли, что я имел в виду, и, возможно, я плохо выразился.
Я понимаю функцию слайдера. Я поместил данные в Replay на месяц (около 20 дней). Однако я передвинул пин ближе к концу ползунка, но в первый день было нарисовано только несколько баров, тогда как до достижения нужной точки должно было пройти не менее 15 дней. Может, я что-то не так понял? Полагаю, это связано с тем, что вы сказали о том, что нельзя использовать данные более чем за один день.
Что касается скорости отображения баров, я бы хотел, чтобы вы посоветовали мне, как изменить систему таким образом.
Спасибо за ответ.

Изменить скорость очень просто. Просто зайдите в класс C_Replay и найдите функцию LoopEventOnTime. Там есть вызов Sleep. Именно с его помощью мы управляем скоростью построения графика в режиме игры. Но я считаю, что это уже было достаточно объяснено в предыдущих статьях.

 
Daniel Jose #:

Изменить скорость очень просто. Просто зайдите в класс C_Replay и найдите функцию LoopEventOnTime. Там есть вызов Sleep. Именно с его помощью мы управляем скоростью построения графика в режиме игры. Но я считаю, что это уже было достаточно объяснено в предыдущих статьях.

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