Author Archive

Автор: Николай Камынин

Написание торговых роботов относится к области создания программ обработки данных в реальном времени.

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

Характерной особенностью таких программ является стремление, по возможности, не использовать циклы и не накапливать поступающие данные, а обрабатывать их в темпе поступления. 

Поэтому такие программы строятся как последовательность условных операторов.

 Максимальное быстродействие я реализую следующим образом:

 Основное тело программы представляет собой условный оператор проверки времени последней сделки, если время не обновилось — новой сделки нет, ничего не делается.

Если время изменилось, то читается значение свечи и индикаторов для времени последней  сделки.

 Эти значения записываются в коллекции свечей и индикаторов.

Таким образом, сделка порождает выполнение последовательности действий:

1) Чтение свечи и запись в коллекцию свечи;

2) Чтение индикатора 1 и запись в коллекцию 1-го индикатора;

3)Чтение индикатора N-го и запись в коллекцию N-го индикатора;

После этого исполняются условные операторы для выдачи торговых операций:

4)Проверка условий исполнения торговых операций;

5)Если условия верны, послать торговую операцию;

6) Проверить состояние счета и позиций

 На этом исполнение программы заканчивается до прихода информации о новой сделке.

На этом исполнение программы заканчивается до прихода информации о новой сделке.

Таким образом, торговые роботы,  использующие для принятия решений графики функций, имеют одинаковую структуру.  При этом при исполнении п.1-3 производится контроль неизменности интервала времени графика, если интервал изменился ( пользователь QUIK решил его переключить), то программа очищает историю и загружает ее заново c новым интервалом. Таким образом, исключается возможность ошибки принятия решений при разном масштабе времени в исторических данных)

За исключением п.4, который представляет собой также набор условных операторов.

Tags: ,