elektroyar
elektroyar личный блог
22 декабря 2019, 17:23

Супер ускорение расчета индикаторов

Когда-то давно я занимался распознавание образов и использовал такую вещь как интегральное представление изображения. И на самом деле этот же метод применим и в алготрейдинге, например для быстрого расчета SMA, или сбора статистики винрейта за указанный период. 

Например, был ценовой ряд из 6-ти элементов:

1.104, 1.102, 1.105, 1.106, 1.103, 1.101 

Найдем его интегральное представление (начнем с нуля):

0.0, 1.104, 2.206, 3.311, 4.417, 5.52, 6.621

Чему будет равно SMA за последние 3 элемента? Достаточно посчитать разницу: 6.621 - 3.311 и разделить ее на 3.

SMA(3) = (6.621 - 3.311)/3 = 1.103

Убедимся, что SMA(3) найдено верно. 

(1.106 + 1.103 + 1.101)/3 = 1.103

Таким образом можно найти SMA с любым периодом, совершив всего навсего одну операцию вычитания и одну операцию деления. Это позволит гораздо быстрее получить набор значений индикаторов типа SMA, RSI, STD_DEV.
Вроде все хорошо, НО НАДО ПОМНИТЬ, что если использовать тип данных с плавающей точкой, то у нас будет накапливаться ошибка. Поэтому ценовой ряд лучше сначала преобразовать в целочисленный тип. Для этого достаточно для 5-ти значных котировок умножить цену на число 100 000.

В случае с подсчетом винрейта необходимо иметь два ряда, один для удачных сделок, другой для убыточных. Оба ряда преобразуются в интегральное представление, дальше по аналогии находим две суммы за выбранный период, после чего уже можно и винрейт посчитать.



23 Комментария
  • ICWiener
    22 декабря 2019, 17:25
    У вас что самое узкое место это математические расчеты?
  • calnago
    22 декабря 2019, 17:59
    немного не в тему, очень хорошо ЧЕЛОВЕК пишет:
    www.patreon.com/posts/32387711
  • quant_trader
    22 декабря 2019, 20:17
    elektroyar,

    «Они могут давать 58% винрейта.»

    Это ни о чем, тем более на индиках. Надо от 75% винрейт.

    «Поэтому нагнуть бинарщика волне реально.»

    Дойдет до вывода реальных бабок проверите.

    Ок, удачи.

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

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