Всем привет.
Думаю многие новички начинают строить роботов исходя из простых индикаторов, цены инструмента и поиска параметров скользящих средних. Но оказывается, что в движении фьючерса РТС слишком много шума, и ложных сигналов. А при увеличении периода скользящих, при попытке ловить только сильные движения неизбежно возникает сильное запаздывание при срабатывании индикатора, и сделки открываются когда движение уже подходит к концу.
Идея — анализировать не цену инструмента, а таблицу всех сделок. Получаем ОПЕРЕЖАЮЩИЙ ИНДИКАТОР.
Рассмотрим таблицу всех сделок для RIZ4
Непрерывно суммируем количество всех новых сделок — если сделка КУПЛЯ — то прибавляем, если ПРОДАЖА — то вычитаем.
В итоге получаем график дельты. И его отличие от графика цены в том, что он более сглажен, и двигается он с небольшим опережением к графику цены, что позволяет наложив на него простой индикатор тренда всегда предсказывать движения цены заранее.
Вот пример работы такого подхода с применением одной скользящей средней — если дельта выше МА — лонг, ниже — шорт.
— красная линия — это дельта — текущая сумма поля «количество» из таблицы всех сделок,
когда кто-то продает по рынку — она падает, когда покупает — растёт.
— черная линия — это цена самого фьючерса РТС, а зеленая — обычная скользящая средяя от дельты.
Это график пятницы. Открылись гепом вверх — что делать? Ответ прост дельта положительная и растёт — покупаем… гдето в 11 часов дельта стала падать и пересекла свою МА вниз — продаем… и т.д… Если бы мы анализировали цену, то нас бы распилило, а дельта более сглажена и направлена.
Ну я тут не стал все сигналы рисовать, но пример понятен.
Сигналы срабатывают еще до начала движения цены.
Вот увеличенный пример предсказания сильного движения в 15:10 от 104600 вверх:
Анализируя именно сделки, а не цену, мы имеем преимущество и запас во времени, для более раннего получения сигнала.
Данный подход поможет вам двигаться в более правильном направлении при написании более сложных и эффективных роботов.
С уважением, Роман.
Например купля 7, продажа 2, получается 5. Что теперь будет означать 5?