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

 
abolk:
Другой вариант - это считать ценой открытия цену, которая была сформирована в предыдущем ценовом диапазоне. На примере открытия рынков показали, что это неверно.

Вы этот бред мне не приписывайте. Повторяю:

Предложение элементарно звучит так: бары формировать по временной модели, когда цена открытия равна АКТУАЛЬНОЙ на момент формирования минуты цене. АКТУАЛЬНОЙ (реально существующей цене предложения), а не цене закрытия предыдущего бара! 

Рынок по каждому ФИ открывается в тот момент, когда появляется цена предложения по этому ФИ. На том же FOREX рынок открывается не одномоментно для всех ФИ сразу.

 
abolk:

Вот Вы сами вывели правило: "Нет цены - нет бара".

Если рынок был открыт, но не было ликвидности (продавцов или покупатей), то не было и цены. Была либо "цена предложения", либо "цена спроса", но при отсутствии одной из сторон сделки - цена отсуствовала как таковая, присутствовала только цена прошлого периода. 

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

ОК, Андрей, Вы меня почти убедили. 

Тогда пусть терминал заполняет пропущенные рыком бары значением NAN - я согласен!!  Но не изымает их из временного ряда безвозвратно (штатными средствами).  Всё что мне надо - штатное средство синхронизации.  Чем заполнить "неопределённые" бары я решу сам.  Даже (на худой конец) готов согласиться на отсутствие отображения пропущеных баров, хотя это и лишает меня возможности визуально сравнивать графики различных инструментов.  Но для расчётов мне нужны синхронизированные (по номеру бара) котировки.  Вот и вопрос - я один такой оригинал, или они ещё кому-нибудь нужны?  Каков процент нуждающихся?  Нарастает ли этот процент или убывает?  И наконец, какой компилятор генерит более быстрый код - MQL5 или С++ ?

 
Задача же простая, сделать так, чтобы тестер давал как можно меньше неточностей. На данный момент тестер почти всегда врет, говоря, что в момент формирования минуты цена была равна цене открытия бара. Именно из-за этого в тестере на ценах открытия постоянно возникает арбитраж, а на ценах закрытия его нет. И, как следствие использования потиковой модели формирования баров, на плечи ТС ложится трата вычислительных ресурсов на синхронизацию нескольких ФИ по ценам закрытия баров. Разработчики экономят на спичках, чтобы пользователи каждый раз тратили уйму вычислительных ресурсов на тупую синхронизацию на каждом прогоне в тестере. Не дают же сделать эту синхронизацию перед запуском оптимизации.
 
hrenfx:

Рынок по каждому ФИ открывается в тот момент, когда появляется цена предложения по этому ФИ. На том же FOREX рынок открывается не одномоментно для всех ФИ сразу. 

Ну тогда только остаётся заставить всех участников рынка действовать исключительно одномоментно.

Один из вопросов мультивалютных стратегий - корректно ли считать в данный момент времени адекватной последнюю цену, которая состоялась столько-то времени назад.

 
abolk:

Один из вопросов мультивалютных стратегий - корректно ли считать в данный момент времени адекватной последнюю цену, которая состоялась столько-то времени назад.

Абсолютно корректно, если прошлая цена относится к текущей торговой сессии. Опять же возьмите ценообразование картошки.
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
hrenfx:
Абсолютно корректно, если прошлая цена относится к текущей торговой сессии. Опять же возьмите ценообразование картошки.
Корректно, когда Вы учитываете прошлую цену при принятии решений в текущей сессии, но относить цену прошлой сессии к текущей сессии некорректно. Определение цены я привёл выше. Следует различать "цену акта купли/продажи", "цену спроса", "цену предложения". Мы "цену спроса не знаем". Торговая сессия строится по своим "ценам акта купли/продажи". Вы же предлагаете строить торговую сессии по "ценам акта купли/продажи" прошлого периода. Зачем эти цены переносить на текущий период, если они сформировались в прошлом периоде и уже известны и их можно получить.
 
abolk:
 Корректно, когда Вы учитываете прошлую цену при принятии решений в текущей сессии, но относить цену прошлой сессии к текущей сессии некорректно.

А здесь разве не это же написано:

hrenfx:
Абсолютно корректно, если прошлая цена относится к текущей торговой сессии. Опять же возьмите ценообразование картошки.

Скажите хоть один изъян в такой модели формирования баров:

Наступает новая минута - формируется бар, ценой открытия которого является цена предложения на момент наступления новой минуты. При этом, если цена предложения на момент наступления минуты отсутствует (открытие торговой сессии), то бар не формируется, либо формируется со значением NAN (для цены открытия, т.к. High, Low и Close уже могут быть). Бары во время закрытой торговой сессии не формируются.

 
hrenfx:

Скажите хоть один изъян в такой модели формирования баров:

Наступает новая минута - формируется бар, ценой открытия которого является цена предложения на момент наступления новой минуты. При этом, если цена предложения на момент наступления минуты отсутствует (открытие торговой сессии), то бар не формируется, либо формируется со значением NAN. Бары во время закрытой торговой сессии не формируются.

Выделенное неверно исходя из определения цены. Вы постоянно приравниваете "цену последней сделки" к "цене ещё не состоявшейся сделки". Мало того, мы уже сделали одно сомнительное допущение, когда приравняли "цену последней сделки" к "цене предложения". Вы постоянно начинаете строить бар по "ценам предложения"? Что это за цены? Откуда они нам известны?
 
abolk:
Выделенное неверно исходя из определения цены. Вы постоянно приравниваете "цену последней сделки" к "цене ещё не состоявшейся сделки". Мало того, мы уже сделали одно сомнительное допущение, когда приравняли "цену последней сделки" к "цене предложения". Вы постоянно начинаете строить бар по "ценам предложения"? Что это за цены? Откуда они нам известны?

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

  1. 00:59:58 - приходит цена EURUSD 1.2301.
  2. 00:01:00 - цена 1.2301 актуальна уже 2-е секунды, по этой причине цена открытия бара 00:01 равна ей же - 1.2301.

Другой пример:

  1. Открытие торговой сессии 00:00:00.
  2. Первая цена появляется в 00:02:34 - 1.2301. Затем в течение минуты цена меняется в диапазоне 1.2290 - 1.2310. И на конец 00:02 минуты становится 1.2305

Для такого примера имеем три бара:

  • 00:00 - {NAN, NAN, NAN, NAN} (OHLC);
  • 00:01 - {NAN, NAN, NAN, NAN} (OHLC);
  • 00:02 - {NAN, 1.2310, 1.2290, 1.2305} (OHLC);

Где изъян?

 
MetaDriver:

ОК, Андрей, Вы меня почти убедили. 

Тогда пусть терминал заполняет пропущенные рыком бары значением NAN - я согласен!!  Но не изымает их из временного ряда безвозвратно (штатными средствами).  Всё что мне надо - штатное средство синхронизации.  Чем заполнить "неопределённые" бары я решу сам.  Даже (на худой конец) готов согласиться на отсутствие отображения пропущеных баров, хотя это и лишает меня возможности визуально сравнивать графики различных инструментов.  Но для расчётов мне нужны синхронизированные (по номеру бара) котировки. 

По присутствию/отсутствию "несостоявшихся" баров ничего сказать не могу - для меня это некритично. Также неизвестны проблемы реализации. Может они существенные и компромисно пока текущее решение. Если это так важно и в терминале этого нет, "отрисовку" "несостоявшихся" баров можно и реализовать самостоятельно.
Причина обращения: