В чем разница, брат

30 марта, 2012

Мне часто задают вопрос, почему мой робот торгует акцией сбербанка обычкой, а не фьючерсом на индекс РТС.

Вот решил показать Вам три графика цен. Попробуйте найти отличия .

Первый — сбербанк акция обычка

Второй — индекс ММВБ

Третий — фьючерс на индекс РТС.

Компилятор для QPILE

30 марта, 2012

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

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

В общем,  использование DDE обмена дает выигрыш, по сравнению с роботом на основе QPILE и Амиброкера лишь для торговли большим числом инструментов (  более 20  ).

Поэтому,  схема Амиброкер  <–> файловый интерфейс <-> QPILE  может использоваться практически для любого робота.

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

Поэтому , сегодня начал проект по созданию таких средств.

Для наглядности приведу пример:

Одна из моих программ робота содержит :   Основное тело — 400 строк.  К нему подключаются еще 1500 строк библиотеки функций.

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

Вот так выглядит тело основной программы при применении разработанного  мною макроязыка, который я условно назвал nkQPL :

‘# C:/NK_QPILE        путь к библиотекам
‘# TITLE                     заголовок
‘# INIT                        блок инициализации
if INIT>=0
FILT_TRADES()      ‘таблица сделок результат в файле позиции
FILT_OWN()           ‘таблица портфеля
FILT_OSO()             ‘таблица ордеров и стоп-ордеров
end if
‘# SET_OWN             запись параметров в программируемую таблицу
‘# JNIT                        контроль связи с сервером
‘# OWN                      описание программируемой таблицы

~~~~~~~~~
Как видим, вместо 400 строк основного тела , теперь в основном теле присутствуют лишь с 11 строки, что согласитесь более наглядно.

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

Компилятор сам выберет нужные функции и включит их в состав портфеля.

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

Например, чтобы заполнить ассоциативный массив значениями, вместо такой последовательности операторов:

  MP=SET_Value(MP,»SECCODE»,TT)
MP=SET_Value(MP,»PRICE»,AVAILABLE)
   MP=SET_Value(MP,»PROFIT»,CBPLUSED)
   MP=SET_Value(MP,»VAL»,VARMARGIN)
   MP=SET_Value(MP,»OFFER»,CBPLPLANNED)
   MP=SET_Value(MP,»D»,LRT)
   MP=SET_Value(MP,»QR»,INIT)
   MP=SET_Value(MP,»TF»,LRT_OLD)

Можно записать так:

 ‘# SET MP SECCODE=TT; PRICE=AVAILABLE; PROFIT=CBPLUSED; VAL=VARMARGIN; OFFER=CBPLPLANNED; D=LRT; QR=INIT; TF=LRT_OLD