Ho_Chu
Ho_Chu личный блог
03 июля 2023, 15:29

как быть с отсутствующими свечами в TS Lab

Ситуация: тестирование на М5 и на М1 дает разное количество входов за 1 и тот же период времени. В результате анализа входов выясняется ситуация, что некоторые минутные свечи отсутствуют в данных. Например, отсутствует свеча в 09:49. И все бы ничего, если Вам не надо было войти точно в 9:50.

TS Lab видит, что свечи в 9:49 нет, и не входит на открытии свечи в 9:50. «Не запостил — не было». Вы, задавая вход, как бы задаете свечу закрытия и входите на открытии (надеюсь, правильно объясняю) следующей свечи.
Но если заданной свечи не было, то на следующей Вы не сможете зайти. Вход пропущен. Или выход.

Как решить такую проблему? Ведь она может случиться и в реальности. Ну не будет сделок в течении минуты и что? Куда крестьянину податься?
А если надо будет использовать ещё более мелкий ТФ? что делать там?
Мне представляется, что надо бы формировать виртуальную свечу в заданный момент времени из нескольких периодов времени назад так, чтобы среди этих периодов времени гарантированно была хотя бы одна реальная свеча. Например, на минутках каждую минуту формировать свечу из 17-28 свечей назад (цифры условные) или даже из 100 свечей назад. Тогда, с некоторой ненулевой вероятностью можно предположить, что среди этих 17-100 периодов назад попадется хотя бы одна сделка, которая сформирует свечу, закрытию которой мы могли бы присвоить текущее время и использовать дальше. Но как это сделать?

Может кто-нибудь подскажет решение подобной проблемы? Лучше сразу с кубиками, если можно )))

ЗЫ напрашивается простое решение: нет свечи — жди следующую и тогда на следующей+1 войдешь… для тестов то да, такой метод может быть допустим, т.к. до тех пор пока не будет реальной свечи сделка не откроется. Но в реальности то стакан не пуст и тебе нужно просто открыться по времени. А для этого нужно, чтобы была «прошлая свеча»… или хотя бы прошлая «виртуальная свеча»… Поэтому для данного предложения справедлива мудрость: Сложные проблемы всегда имеют простые, легкие для понимания неправильные решения.

Итак, повторю вопрос: как сделать виртуальную свечу в заданное время из множества свечей назад? И самое главное, можно ли это дальше использовать в TS Lab-е?

16 Комментариев
  • bohemian rhapsody
    03 июля 2023, 16:07
    использовать ректально ;)
  • ves2010
    03 июля 2023, 18:15
    делается элементарно...
    добавляешь неторгуемый источник у которого есть все бары
    например для россии это самый ликвидный сбер газпром индекс ртс
    а для америки spy

    при этом в неликвиде тслаб заполняет паузы пустыми свечами

    потом делаешь запрет на торговлю при high==low==close==open т.е не торгуешь в пустая свеча
  • Synthetic
    03 июля 2023, 21:07
    1. Следует всегда помнить, что свечек на бирже нет. Они плод коллективного больного сознания. Культурные люди это понятие не используют вообще. Надеюсь и Вы когда-нибудь до этого дорастете.
    2. Для того, чтобы полностью искоренить Вашу сегодняшнюю проблему, нужно использовать эталонный фиктивный инструмент, который содержит все свечки, но все пустые (нулевые или как Вам нравится).
    Далее полученный от брокера массив свечек с возможными пропусками заливаете в эталон. Получаете новый массив всегда одной длины, содержащий все свечки. Пустые свечки, можно оставить как есть или интерполировать и т.п. Когда-то (очень давно) имел похожую проблему с Амиброкером, который весьма своеобразно отрисовывал графики и результаты тестирования изменялись произвольно. Проблема решилась, когда первым графиком стал график эталонного инструмента, остальные автоматом под него выравнивались.
      • Sprite
        04 июля 2023, 03:28

        Ho_Chu, имхо вам надо матчать подтянуть, а не про фэншуй рассуждать. Я не знаю что там за проблемы могут быть в тслабе, но хочу вам коротенько заметить:
        1. Запоминать клоуз можно не только глядя на предыдущую свечку, говорят в программировании придумали переменные.
        2. Знаете что такое таймфрейм свечка? Это результат хотя бы одного трейда за заданный период времени. Нет трейда = нет свечки. Нет ни одного трейда за три часа = нет ни одной свечки за три часа, ни минутной ни секундной, вообще никакой до трех часовой. Попробуйте как-то по другому ориентироваться в пространстве. Это сильно упростит вам в дальнейшем жизнь, учитывая что вы планируете входить/выходить не по времени свечки, а по событиям в стакане. И «В любой момент времени с любым шагом» как вы пишете вы получите ровно то же, что и сейчас: нет трейдов = нет свечек.
        4. Стакан — это отдельный поток маркет данных. Отдельный от трейдов из которых или вы сами или ваш брокер рисует вам свечки. Типа маркет данных «Свечка» в природе не существует (вам уже выше писали). Иными словами, если вы будете смотреть в стакан только в момент клоуза допустим минутной свечки, то наверное лучше вообще не смотреть.

          • Sprite
            04 июля 2023, 11:17
            Ho_Chu, отсутствие свечек — это не «странность», а норма, просто вам надо тестировать как-то по другому. Да так чтобы потом не влияло на «реальность». Представьте себе: вы взяли мало-ликвидный или медленный инструмент, с начала сессии прошло 30 минут, за которые не было ни одного трейда, а ваш тестер, с вашим подходом, уже нарисовал вам 180 десятисекундных пустых свечек со вчерашним клоузом. Практический толк в этом я вижу только если вы тестируете производительности самого тестера, когда же у него память закончится.
              • Sprite
                04 июля 2023, 12:26
                Ho_Chu, а вот меньше М1 — пока не очень понятно, как быть?


                Вы невнимательно читаете, нет никакого M1. И меньше M1 нет и больше.
                В мире есть такие события:
                1. Новый трейд
                2. Обновление стакана
                3. Новая секунда (мили/микро/нано) на ваших наручных часах
                Всё.

  • bascomo
    21 июля 2023, 17:18
    Игнорировать. А лучше выбирать настолько ликвидные инструменты, чтобы минутные свечи были на каждом интервале

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн