Задача трех тел
Задача трех тел личный блог
09 апреля 2025, 06:50

Вопрос к системным трейдерам про AND и OR в условиях входа/выхода

Так вышло, что при использовании двух малокоррелируемых условий на ВХОДЕ я обычно применяю AND для этих условий (логика такая например, для входа должно случится пересечение ценой ma В понедельник). Для ВЫХОДА логичнее OR (типа, цена ушла ниже ma ИЛИ закрытие в конце дня).

Есть ли у кого опыт применения на ВХОДЕ OR вместо AND, а на ВЫХОДЕ AND вместо OR?
22 Комментария
  • myaucha
    09 апреля 2025, 07:24
    Можно придумать сколько угодно условий входа и выхода как с and, так и с or. В основе, прежде всего, лежит здравый смысл.
    • Sergey Pavlov
      09 апреля 2025, 07:36
      myaucha, можно пример здравого смысла применительно ко входу/выходу на рынке?
      • myaucha
        09 апреля 2025, 11:32
        Sergey Pavlov, Например, две стратегии, которые торгуют одним инструментом. Сигналы на вход у них могут быть разные. Это эквивалентно одной стратегии с OR-сигналом на входе.

        Зачем ограничивать себя рамками операций дискретной математики (ниже Дед вообще в ней утонул) мне непонятно.
  • zam
    09 апреля 2025, 07:49
    Интересное замечание:)) Опыта такого не припомню.
  • Дед Нечипор
    09 апреля 2025, 08:41
    В принципе, это логично (упомянутое правило входы/выхода). Второе тоже имеет под собой основание, все проистекает из операций над логическими переменными (скобки поставил, чтоб не погромистам тоже было понятно):

    NOT (A AND B) = (NOT A) OR (NOT B)

    Левая часть означает отрицание исходного условия, правая — эквивалент этого отрицания. В простейшем случае реверсивной системы отрицание сигнала на покупку является сигналом на продажу и наоборот. В примере топикстартера — (уже НЕ выше МА) ИЛИ (уже НЕ понедельник)

    Второе же тоже соответствует операции над логическими переменными

    NOT (A OR B) = (NOT A) AND (NOT B)

    над примером надо поразмыслить...

    • Дед Нечипор
      09 апреля 2025, 09:32
      Дед Нечипор, Вот пример второго:

      Вход на покупку, если выполняется хотя бы одно из условий (смотря что произойдет первым):
      A — цена акции пробивает MA снизу вверх
      ИЛИ
      B — наступает последний день (Record date), когда нужно владеть акцией, чтобы получить право на дивиденды

      Выход (только если вход состоялся)
      NOT A — цена оказывается ниже МА
      И
      NOT B — сегодняшняя дата — НЕ последний день (Record date), когда нужно владеть акцией, чтобы получить право на дивиденды

      Т.е. торгуем МА-шку как обычно, кроме дней Record date, так как хотим гарантированно получить дивиденды (если цена упала ниже МА-шки в день Record date, то закрываем открытую сделку только на следующий день). Если по МА-шке сигналов на вход не было (цена так и осталась ниже МА на момент наступления Record date), то сделку закрываем на следующий день.

      По сути, мы объединили два независимых правила (стратегии) в одно правило, ограничив максимальный объем одной сделкой: при независимых правилах у нас могло быть одновременно открыто до двух сделок (двойной объем), при комбинированном правиле — не больше одной активной сделки.
      • Дед Нечипор
        09 апреля 2025, 10:18
        по поводу третьего - 3. Open OR, Close OR
        имеем вход по двум двум независимым стратегиям (логическим обоснованиям) смотря какое условие сработает первым, с ограничением максимального объема одинарным значением (макс одна активная сделка одновременно).
        В то же время выход теперь имеет кросс-зависимые условия по (независимым) стратегиям.
        В виду несоответствия правилам отрицания логических операций, получим неожиданный (для разработчика) результат: робот начнет колбасить вне зоны объединения условий, судорожно покупая и тут же продавая, непрерывно повторяя до стирания счета комиссиями в ноль в лучшем случае)

        На предыдущем примере с МА-шкой и дивидендами, Record date — пятница, сегодня — понедельник:
        Робот:
        «Такс, цена выше МАшки — покупаем!»
        через миллисекунду, проверяет условие на выход:
        «Бл..., сегодня ж НЕ пятница, закрываем сделку!»
        еще через милисекунду, проверяет условие на вход:
        «Такс, цена выше МАшки — покупаем!»
        и так до пятницы, или пока довольный брокер, глядя на капающую комиссию, наконец, скажет: «Горшочек, не вари!»


        Ну, естественно, данные утверждения справедливы, только если для выхода использовать те же условия, которые использовались для входа. Как упомянул SergeyJu, условия могут быть совершенно разные и в таком случае никаких ограничений на комбинации И/ИЛИ быть не может
  • SergeyJu
    09 апреля 2025, 09:20
    Если система реверсивная, подобное не прокатит. 
    Если рынок асимметричный по росту/падению, то эта асимметрия часто проступает и в разных условиях на вход/выход из лонга и из шорта. 
  • yurikon
    09 апреля 2025, 11:03

    привет!

    Я очень долго курил систему со входом из условия: A and B. Где A — условно рост за N баров, а B — специфический фильтр. В итоге пришел к выводу, если вероятность B сильно маленькая (редкое событие), то система практически начинает игнорировать условие А. То есть в случае AND вероятности событий должны быть сопоставимы.

    Еще я делал свертку двух событий как критерий для входа: q*P(A) + (1-q)*P(B) > Х. И дальше делаем оптимизацию по q, чтобы понять какое условие больше рулит. Но выходило, что специфический фильтр надо либо вообще выкинуть (q=1), либо подмешивать совсем с маленьким весом в районе (q=0,95).

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

      • yurikon
        09 апреля 2025, 11:48
        T-800, имхо, AND нельзя в общем виде использовать для выхода, так как у тебя появляется не нулевая вероятность, что рынок будет идти против тебя, а выход не будет срабатывать. Философски, выход — это отмена сетапа на вход. Я как-то так себе это представляю. Например C > MA — это вход, значит выход C< MA и тд. Для паттернов таймаут. А вот чтобы пристроить какой-то самый крутой выход, если такое получается — значит ты придумал хороший сетап на вход в другую сторону. :-)
    • Sergey Pavlov
      10 апреля 2025, 15:34
      yurikon, у меня тут такая мысль сложилась. условия A и B на вход имеют право на жизнь, если:
      1. A само по себе даёт профитную эквитю.
      2. B само по себе даёт профитную эквитю.
      3. Торговля A c B даёт порядка половины сделок в сравнении с A без B.
      4. Торговля B c A даёт порядка половины сделок в сравнении с B без A.
      • yurikon
        11 апреля 2025, 09:58
        Sergey Pavlov, условие B само по себе не всегда может иметь профитную эквити. Например, время. Но с основным условием работать лучше.
  • MoscowTrades
    09 апреля 2025, 14:03
    По идее если вход через OR то лучше сделать 2 системы и по раздельности их тестировать. Иначе часть входов пропадет (тк второй вход перекроет первый).

    Мне вообще кажется что если есть какие-то вариации во входах или выходах то лучше сделать две простые системы чем одну сложную.
  • Кирилл Гудков
    10 апреля 2025, 16:55

    Насчет OR на входе выше верно заметили, что лучше это независимыми стратами оформить.

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

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

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