Известный факт — парный трейдинг не приносит прибыли. Все модели сливают. Понятно, что или расходятся они недостаточно для того чтобы окупить спрэд (например, обычные против префок или GOOG против GOOGL) или просто не состоянии сохранить зависимость друг от друга после обнаружения таковой. Поэтому часть трейдеров ищет зависимости между ETF, а другая между ETF, фьючерсами и корзиной акций. Это так называемый классический стат. арбитраж.
Я предлагаю взглянуть на с другой стороны и торговать корзину из более чем 200 акций (да, извините, но это не для российского рынка — даже 20-30 акций недостаточно). Для начала нужно высчитать синтетик у которого будет минимальная дисперсия — всех интересующихся отсылаю к трудам hrenfx, который, впрочем, пошел путем непрозрачных и требовательных вычислений, которые требуют большое кол-во памяти и не в состоянии рассчитать синтетик для более чем 30 и более инструментов. Каждый желающий прочитав посты hrenfx может самостоятельно все вычислить используя несколько строк на Python. Чтобы не утомлять деталями в финале получим синтетик вида k1*msft + k1*aapl +… k_n*XLNX. Одна часть синтетика будет с положительными значениями, другая с отрицательными. Это и будет синтетик с минимальной дисперсией, который вы уже можете начать торговать. В реальности нужно будет нормировать коэффициенты и отсеять акции вес которых в портфеле, например, меньше 5-10% (все зависит от торгуемого капитала — ведь нужно будет на эти 5% купить минимальное кол-во акций). Так же можно убрать и дорогие акции AMZN, TESLA etc… Разумно выбрать одну часть синтетика с отрицательными или положительными коэффициентами и торговать «one leg» по оценке на основе полного синтетика. Это снизит издержки и повысит вашу прибыль.
Ниже PnL для последних 440 торговых дней. Использовал оценку на 15 днях, цены логарифмированы, для учета проскальзывания и fee использованы 3 спреда 0,01 и 0'ое отклонение.

Regards,
Eugene.
PS. Заранее прошу извинить за не самое детальное изложение — целью было донести базовую идею.