Робот-хранитель истории для QUIK ( QPILE + AutoIt )

7 ноября, 2010

Сегодня закончил разработку робота-архиватора- хранителя истории котировок  для QUIK.

Особенность данного робота состоит в том , что программа архиватора  написана  на Qpile , управляющий торговым терминалом робот выполнен на AutoIt.

Что умеет данный робот.

Робот  записывает в архив историю котировок.

Котировки в виде параметров свечей  сохраняются в  текстовых файлах.

Каждый такой  файл  имеет имя в виде  » ИмяИнструмента_ВременнойИнтервалГрафика».

Робот определяет, какие из доступных инструментов торгуются на данном торговом терминале QUIK и историю котировок всех торгуемых инструментов  на всех временных интервалах сохраняет в архиве.

При новом запуске робота, он добавляет новые записи к уже записанным.

Таким образом, можно накапливать историю котировок непосредственно с торгового терминала QUIK и пополнять ее с любого другого доступного источника.

Кроме того, робот обеспечивает пополнение истории котировок в реальном времени.

Если   добавить  новые инструменты (акции или фьючерсы) в торговый терминал , то робот сам их добавит в базу.

Кроме того, робот обеспечивает склеивание фьючерсных контрактов.

Каждая свеча записывается в файл соответствующего инструмента и временного интервала в виде:

<YYYYMMDD>,<HHMMSS>,<Open>,<HIgh>,<Low>,<Close>,<Volume>

~~~~~~~~~~~~

Вот сейчас пишу данную заметку на одном мониторе, а на другом робот записывает историю 200 акций и фьючерсов,  дневки, 30 мин,10 мин,5 мин и 1 мин, которые установлены на моем торговом терминале QUIK как торгуемые.

Кроме того, робот посчитал, что для торговли доступно  более 4600 инструментов.

НЕКОТОРЫЕ ПРИЕМЫ ПРОГРАММИРОВАНИЯ НА QPILE

2 ноября, 2010

Одна из часто встречающихся ошибок в программах на QPILE связана

с различным типом данных в условных операторах  сравнения.

Например, ассоциативный массив и коллекция всегда возвращают значение типа string

Поэтому, если Вы это значение используете в условии и сравните с числом,

то получите ошибку, так как автоматического приведения типов в QPILE нет.

В инструкции рекомендуется всегда прибавлять 0 к переменной, для указания явного приведения типа.

Но  можно избежать в условных операторах  пустой операции сложения с нулем.

Для этого используется следующий прием. Поясню на примерах.

Например, вместо оператора    IF 0+x>10 , можно записать   IF x-10>0

или вместо записи   IF X+0>Y+0,  записать   IF X-Y>0

Таким образом, мы избегаем пустой операции сложения с нулем,

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