Обсуждение статьи "Жидкий график" - страница 3

 
Про цену открытия -- вопрос снимаю. 
 

Делал похожую фигню. У меня вроде работает без всяких фантомных баров.

Поскольку целиком проанализировать исходник не имею возможности, наткнулся лишь на то, что на поверхности - некие странности (на мой взгляд).

Во-первых в нескольких местах видел конструкцию tO-=PeriodSeconds(). Не уверен, что так можно делать, поскольку вычитая из t0 PeriodSeconds можно залезть на предыдущий бар. Суть ситуации, когда t0 выходит за рамки, в том, что этот жидкий бар еще не начал формироваться и не нужно пытаться искусственно подвинуть его начало на один период.

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

 

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

 
handel:
Если правильно понимаю, фантомный бар возникает когда в пятницу торговая сессия заканчивается 23:00. А если торговля заканчивается 23:59, откуда может появится тот самый бар. Опишите пожалуйста на конретном примере, какой временной интервал в себя включают две свечи которые появились в понедельник. Еще не понял  такой момент, цена открытия дневных свечей на индикаторе при сдвиге на любое количество часов остается неизменной, хотя она должна принимать цену открытия часовой свечи которая при данном сдвиге являеться первой? 

Пример.

Дневной график, базовый период H1. Исходное положение - сдвиг 0. Индикатор повторяет исходный график. Бар N открывается в 00:00:00 2015.08.03, бар N+1 в 00:00:00 2015.08.04, бар N+2 откроется в 00:00:00 2015.08.05, и так далее.

Добавляем сдвиг на 1 единицу базового периода. В данном случае, это 1 час. Теперь все бары результирующего графика будут перестроены. Сутки будут начинаться не в 00:00:00, а в 01:00:00. Таким образом, бар N откроется в 01:00:00 2015.08.03, бар N+1 в 01:00:00 2015.08.04, бар N+2 откроется в 01:00:00 2015.08.05, и так далее. Но у нас есть данные за время с 00:00:00 до 01:00:00. Мы их не можем выбросить, поэтому их них формируется бар за воскресенье.

Всё логично: если, учитывая сдвиг, наш синтетический "день" теперь начинается в 01:00:00, то заканчиваться должен через 24 часа, то есть в 00:59:59 следующего календарного дня. Данные за воскресенье мы не может добавить в пятничный бар, поскольку, разрыв между временами открытия баров базового периода больше суток.

 
handel:

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

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

Использовать мой пример в Вашем случае действительно неудобно. Разве что допилить код, чтобы выбрасывать лишние бары, если не смущает потеря данных.

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

 
Stanislav Korotky:

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

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

Бары формируются следующим образом. Сначала определяются временные рамки для синтезируемого бара. Затем, копируем массив баров базового периода, который входит в эти рамки. По данным массива получаем OHLC синтезируемого бара. Количество баров базового периода может быть разным. Если не удалось скопировать ни одного бара базового периода - пропускаем и переходим к формированию следующего бара.

 
Serhii Shevchuk:

Пример.


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

А почему нельзя дописать условие, что если сегодня пятница, а затем приходят данные за воскресенье, то эти данные добавляются в пятничный бар, чтобы не  удалять фантомные свечи, потому что это даст не корректный результат?
 
handel:
А почему нельзя дописать условие, что если сегодня пятница, а затем приходят данные за воскресенье, то эти данные добавляются в пятничный бар, чтобы не  удалять фантомные свечи, потому что это даст не корректный результат?

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

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

Вот пример, где воскресный дневной бар состоит всего из одного часового. Никакой отсебятины, оригинальный график:

Теперь откроем часовой график и найдём тот самый бар, который сформировал воскресенье на дневном:

Почему бы, по Вашему предложению, брокеру не выполнить слияние этого бара с пятничным? Потому что это не по правилам. Бары так не формируются.

 
Serhii Shevchuk:

Вот пример, где воскресный дневной бар состоит всего из одного часового. Никакой отсебятины, оригинальный график:

Теперь откроем часовой график и найдём тот самый бар, который сформировал воскресенье на дневном:

Но это похоже не тот случай - здесь воскресный бар есть в котировках самого брокера - и на дневке, и на H1, так что это не "фантом", созданный в индикаторе, а реальный бар.
 
Serhii Shevchuk:

Добавляем сдвиг на 1 единицу базового периода. В данном случае, это 1 час. Теперь все бары результирующего графика будут перестроены. Сутки будут начинаться не в 00:00:00, а в 01:00:00. Таким образом, бар N откроется в 01:00:00 2015.08.03, бар N+1 в 01:00:00 2015.08.04, бар N+2 откроется в 01:00:00 2015.08.05, и так далее. Но у нас есть данные за время с 00:00:00 до 01:00:00. Мы их не можем выбросить, поэтому их них формируется бар за воскресенье. 

Всё логично: если, учитывая сдвиг, наш синтетический "день" теперь начинается в 01:00:00, то заканчиваться должен через 24 часа, то есть в 00:59:59 следующего календарного дня. Данные за воскресенье мы не может добавить в пятничный бар, поскольку, разрыв между временами открытия баров базового периода больше суток.

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

У себя я считал по описанному мной выше алгоритму (отсчет сдвига от начала одного бара текущего тф до следующего), то есть если продолжать этот же пример и нужен сдвиг в 1 час, то в бар пятницы попадет все от 1:00 пятницы до 1:00 понедельника. Обоснование простое - пятница и понедельник - соседние бары в текущем периоде, там нет никаких воскресений, и потому не может быть в индикаторе.

Причина обращения: