Расшифрую название:
Речь о том, что некоторые стратегии генерируют сигналы (купить открыть, продать закрыть, купить закрыть, продать открыть), но не все сигналы достаточно хороши и не все достаточно хороши для данного момента. А деньги получает сигнал, который достаточно хорош, который не достаточно хорош – так и остается просто сигналом, не превращается в ордер.
А теперь подробней про зачем это:
У меня сейчас попроще все реализовано, но всегда смотришь в будущее чтоб что-то улучшить. Конкурировать за деньги сигналы могут по-разному – могут совсем глобально – когда есть только сущность сигнала и деньги, и не важно что за стратегии и т.д., лучшие сигналы получают деньги, худшие сосут… лапу. Такой вид конкуренции чуть более революционен и имеет некоторые нюансы, поэтому пока останется за скобками (в частности риск вмешаться в диверсификацию, которая обеспечивается разнообразием стратегий). В данном посте речь о конкуренции за деньги в пределах одной стратегии.
Почему вообще в рамках одной стратегии может возникать конкуренция за деньги? Простейшее – стратегия запущена на разных тикерах (кто там какие терминологии использует, конечно, но у меня пусть это будет одна и та же стратегия). Или даже одна стратегия – один тикер, в этом случае за раз эмитится один сигнал, конечно, но если на момент сигнала стратегия в позе, то сигналу может не хватить денег – получатся, конкуренция тоже есть, менее явная. А ещё многие/некоторые торгуют облаками значений параметров – там тоже сплошная конкуренция, если я, конечно, правильно понимаю, как это вообще работает.
Конкуренция по факту это про распределение ограниченных ресурсов среди сильнейших, вернее скорее: чем ты сильнее, тем больше получишь ресурсов из ограниченного их объема. В данном случае то же самое, тебе выгодно, чтобы бабки получили те сигналы, которые сильнее остальных. Возможны разные сценарии: есть порог силы сигнала, ниже никто не проходит, выше проходят все. Или: проходят все, но не тогда когда не хватает денег на всех – в этом случае сильнейшие. Или там: всегда все, но каждому по силе его и т.д.
Конечно же краеугольный камень во всей этой истории это не способ интерпретации силы сигналы (а вы думал он?), а оценка силы сигнала. Когда эмитится сигнал мы имеем набор входных данных, на которых принималось решение о сигнале – какие-нибудь значения индикаторов, OHLC, смещенные OHLC, можно это все сделать плоским одномерным, получается просто набор признаков. Алготрейдеры так любят хвастаться безпараметрическими стратегиями, что ж в этих случая зацепиться для оценки силы сигнала не за что, печалька. А допустим, у нас есть параметр. Уже можно построить какой-то скоринг, если конечно параметр рабочий (а иначе нахрена он тут вообще?). Построили скоринг исходя из закономерности, которая связана с этим параметром, допустим, что-то типа: чем ближе к 7 тем сила сигнала ближе к 0.75. Всё, уже можно выставлять какой-то порожек: ниже 0.7 не входим, или там: если 0.75 вот те 10 лотов, если 0.7 – вот те 5, а если 0.65 – вот те 1 на чай. Задача построить нормальный скоринг (или любой другой алгоритм оценки силы) на основе имеющихся параметров задача конечно же ни разу не тривиальная, но она не в этапе построения скоринга, а на этапе выбора параметров, если параметры дерьмо, никакого работающего скоринга ты не построишь, а если параметры мощные – да хоть простым сложением можешь эту силу определять – будет работать. Если параметр 2+, конечно же, тут уже напрашивается какой-нить простенький ML, чтобы оценивать силу сигнала. Только не говорите что тут риск подгонки, я вас умоляю. Но по факту это будет довольно ограниченный скоринг, один параметр рассекается пространство на 2 – true, false. Например, Close > SMA – либо да, либо нет, Close – SMA в процентах больше 1% — либо да, либо нет – и 1.5 больше и 2 больше и 7 больше. Т.е. по-хорошему модель надо строить над этими значениями, которые сравниваются с параметрами стратегии в логических условиях, участвующих в генерации сигнала. Вот это отличный симбиоз трейдерских фичей и ML надстройки над ними. В этом случае ты получаешь море преимуществ, море гибкости – хочешь конкуренцию сигналов – нате пожалуйста, хочешь видеть в реальном времени расклад вероятностей по открытой позе для ребалансировки – вэлкам и т.д.
В клуб должны допускаться только стратегии, обеспечивающие высокую степень качества выставляемых оценок силы, что должно обеспечивать перекрестную совместимость данной метрики.
Боюсь только к Велс-лабу я такое не смогу пока прикрутить.
А протестировать можно не в велс лабе, а что-либо написать.
Конкуренцию можно организовать, если вход в позицию происходит одновременно по всем (либо по многим) инструментам, по какому-то одному таймингу, цикличности. А если то это событие, которое может случиться, а может и нет. Может на этом баре, а может и на следующем.
И как организовать конкуренцию между инструментом, где событие на вход уже случилось, и другим инструментом, где еще нет (а может и не случится в ближайшем будущем) — не известно.
Хотя перепробовал разные варианты. Например, первый по времени инструмент получает, допустим, половину капитала. Второй — половину от остатка. И т.д.
В итоге победило распределение капитала равными долями