Author Archive
Автор: Николай Камынин
Написание торговых роботов относится к области создания программ обработки данных в реальном времени.
Отличительной особенностью таких программ является повторное исполнение программы для каждого отсчета(сделки). Время исполнения в идеале не должно превышать времени до следующей сделки.
Характерной особенностью таких программ является стремление, по возможности, не использовать циклы и не накапливать поступающие данные, а обрабатывать их в темпе поступления.
Поэтому такие программы строятся как последовательность условных операторов.
Максимальное быстродействие я реализую следующим образом:
Основное тело программы представляет собой условный оператор проверки времени последней сделки, если время не обновилось — новой сделки нет, ничего не делается.
Если время изменилось, то читается значение свечи и индикаторов для времени последней сделки.
Эти значения записываются в коллекции свечей и индикаторов.
Таким образом, сделка порождает выполнение последовательности действий:
1) Чтение свечи и запись в коллекцию свечи;
2) Чтение индикатора 1 и запись в коллекцию 1-го индикатора;
3)Чтение индикатора N-го и запись в коллекцию N-го индикатора;
После этого исполняются условные операторы для выдачи торговых операций:
4)Проверка условий исполнения торговых операций;
5)Если условия верны, послать торговую операцию;
6) Проверить состояние счета и позиций
На этом исполнение программы заканчивается до прихода информации о новой сделке.
На этом исполнение программы заканчивается до прихода информации о новой сделке.
Таким образом, торговые роботы, использующие для принятия решений графики функций, имеют одинаковую структуру. При этом при исполнении п.1-3 производится контроль неизменности интервала времени графика, если интервал изменился ( пользователь QUIK решил его переключить), то программа очищает историю и загружает ее заново c новым интервалом. Таким образом, исключается возможность ошибки принятия решений при разном масштабе времени в исторических данных)
За исключением п.4, который представляет собой также набор условных операторов.
Tags: QUIK, торговый робот