Вопрос к системным трейдерам про AND и OR в условиях входа/выхода
- 09 апреля 2025, 06:50
- |
- T-800
Так вышло, что при использовании двух малокоррелируемых условий на ВХОДЕ я обычно применяю AND для этих условий (логика такая например, для входа должно случится пересечение ценой ma В понедельник). Для ВЫХОДА логичнее OR (типа, цена ушла ниже ma ИЛИ закрытие в конце дня).
Есть ли у кого опыт применения на ВХОДЕ OR вместо AND, а на ВЫХОДЕ AND вместо OR?
Зачем ограничивать себя рамками операций дискретной математики (ниже Дед вообще в ней утонул) мне непонятно.
1. Open AND, Close OR
2. Open AND, Close AND
3. Open OR, Close OR
4. Open OR, Close AND
Если что-то намайню, напишу.
NOT (A AND B) = (NOT A) OR (NOT B)
Левая часть означает отрицание исходного условия, правая — эквивалент этого отрицания. В простейшем случае реверсивной системы отрицание сигнала на покупку является сигналом на продажу и наоборот. В примере топикстартера — (уже НЕ выше МА) ИЛИ (уже НЕ понедельник)
Второе же тоже соответствует операции над логическими переменными
NOT (A OR B) = (NOT A) AND (NOT B)
над примером надо поразмыслить...
Вход на покупку, если выполняется хотя бы одно из условий (смотря что произойдет первым):
A — цена акции пробивает MA снизу вверх
ИЛИ
B — наступает последний день (Record date), когда нужно владеть акцией, чтобы получить право на дивиденды
Выход (только если вход состоялся)
NOT A — цена оказывается ниже МА
И
NOT B — сегодняшняя дата — НЕ последний день (Record date), когда нужно владеть акцией, чтобы получить право на дивиденды
Т.е. торгуем МА-шку как обычно, кроме дней Record date, так как хотим гарантированно получить дивиденды (если цена упала ниже МА-шки в день Record date, то закрываем открытую сделку только на следующий день). Если по МА-шке сигналов на вход не было (цена так и осталась ниже МА на момент наступления Record date), то сделку закрываем на следующий день.
По сути, мы объединили два независимых правила (стратегии) в одно правило, ограничив максимальный объем одной сделкой: при независимых правилах у нас могло быть одновременно открыто до двух сделок (двойной объем), при комбинированном правиле — не больше одной активной сделки.
имеем вход по двум двум независимым стратегиям (логическим обоснованиям) смотря какое условие сработает первым, с ограничением максимального объема одинарным значением (макс одна активная сделка одновременно).
В то же время выход теперь имеет кросс-зависимые условия по (независимым) стратегиям.
В виду несоответствия правилам отрицания логических операций, получим неожиданный (для разработчика) результат: робот начнет колбасить вне зоны объединения условий, судорожно покупая и тут же продавая, непрерывно повторяя до стирания счета комиссиями в ноль в лучшем случае)
На предыдущем примере с МА-шкой и дивидендами, Record date — пятница, сегодня — понедельник:
Робот:
«Такс, цена выше МАшки — покупаем!»
через миллисекунду, проверяет условие на выход:
«Бл..., сегодня ж НЕ пятница, закрываем сделку!»
еще через милисекунду, проверяет условие на вход:
«Такс, цена выше МАшки — покупаем!»
и так до пятницы, или пока довольный брокер, глядя на капающую комиссию, наконец, скажет: «Горшочек, не вари!»
Ну, естественно, данные утверждения справедливы, только если для выхода использовать те же условия, которые использовались для входа. Как упомянул SergeyJu, условия могут быть совершенно разные и в таком случае никаких ограничений на комбинации И/ИЛИ быть не может
Если рынок асимметричный по росту/падению, то эта асимметрия часто проступает и в разных условиях на вход/выход из лонга и из шорта.
привет!
Я очень долго курил систему со входом из условия: A and B. Где A — условно рост за N баров, а B — специфический фильтр. В итоге пришел к выводу, если вероятность B сильно маленькая (редкое событие), то система практически начинает игнорировать условие А. То есть в случае AND вероятности событий должны быть сопоставимы.
Еще я делал свертку двух событий как критерий для входа: q*P(A) + (1-q)*P(B) > Х. И дальше делаем оптимизацию по q, чтобы понять какое условие больше рулит. Но выходило, что специфический фильтр надо либо вообще выкинуть (q=1), либо подмешивать совсем с маленьким весом в районе (q=0,95).
OR на входе не имеет смысла, так как это уже вторая система. А несколько систем лучше уже анализировать на следующем этапе, когда ты их в портфель будешь запаковывать.
1. A само по себе даёт профитную эквитю.
2. B само по себе даёт профитную эквитю.
3. Торговля A c B даёт порядка половины сделок в сравнении с A без B.
4. Торговля B c A даёт порядка половины сделок в сравнении с B без A.
Мне вообще кажется что если есть какие-то вариации во входах или выходах то лучше сделать две простые системы чем одну сложную.
Насчет OR на входе выше верно заметили, что лучше это независимыми стратами оформить.
Ну а AND на выходе у меня например используется. И OR тоже. Страта собирается из нескольких запчастей, некоторые из них слишком примитивны, чтобы быть самостоятельным сигналом на выход. Такие склеиваются через AND. А через OR — какой-нибудь безусловный геймовер, например закрытие интрадейной страты перед овернайтом.
1. AND на входе работает прекрасно с AND или OR при выходе.
2. При OR на входе результаты падают раза в два.
3. При AND на входе и AND на выходе существенно расчет средняя сделка, т.к. позиция держится дольше.