Author Archive

Структура любого робота состоит из набора скриптов (модулей),

каждый из которых реализует определенные функции.

Каждый модуль — это отдельный поток ОС.

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

Каждый модуль представляет собой функционально законченный скрипт на луа и С+

В настоящее время реализованы следующие модули:

Условно модули можно разделить на две группы:

Первая группа — системные модули

Вторая группа — пользовательские модули

Модули первой группы имеют  имя.  Имена системных модулей и файлы их скриптов описаны в специальном файле nk_ScriptList.lua:

[«robot»]=»nk_robot»,
[«quote»]=»nk_quote»,
[«order»]=»nk_order»,
[«stop»]=»nk_stop_order»,
[«reply»]=»nk_trans_reply»,
[«alltrades»]=»nk_all_trades»,
[«trade»]=»nk_Trade»,
[«client_holding»]=»nk_futures_client_holding»,
[«client_limits»]=»nk_futures_client_limits»,
[«money»]=»nk_depo_limits»,
[«depo»]=»nk_money_limits»,
[«param»]=»nk_param»,

 Функции модулей.

robot — обеспечивает формирование списков инструментов и  счетов.

Подключает источники истории сделок и источники очередей стаканов для торгуемых инструментов.

Принимает истории сделок (свечи) и сохраняет

quote — принимает  очереди заявок и сохраняет их в локальной базе данных

order —  управляет выставлением и снятием заявок.

stop  — управляет стоп заявками

reply  — контролирует исполнение транзакций

alltrades — приминает тиковые данных торгуемых инструментов и сохраняет их в локальной базе данных

trade — принимает информацию о своих сделках и сохраняет из в локальной базе данных

client_holding — принимает информаицю о позициях по инструментам срочного рынка

client_limits  —принимает информацию о лимитах срочного рынка

money  — принимает информацию о величине денежных средств на торговых счетах

depo  —принимает информацию о существующих позициях акций

——————————————————————-

Пользовательские модули — это  любые модули обработки информации

полученной системными модулями

и формирующие любые сигналы управления.

—————————————————————————

Любой модуль имеет стандартную структуру следующего вида:

——————————————————————————-

—стандартный заголовок модуля     для всех модулей одинаковый
pf={}; for w in string.gmatch(debug.getinfo(1).short_src,»([^\\]+)») do  pf[#pf+1]=w;  end
fname=pf[#pf]; pf[#pf]=nil; PathScript=table.concat(pf,»/»)..»/»;
dofile(PathScript..»nk_begin.lua»)
——————— конец заголовка ——————

 function work(t) 
…  программа на языке луа  (торговый алгоритм)
end

 —стандартное окончание модуля   для всех модулей одинаковый
dofile(PathScript..»nk_main.lua»)
——————— конец модуля ——————

Как видим , структура программы простая.

Не надо ничего знать ни о колбеках, ни о потоках, ни о других особенностях КВИК.

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

Свой алгоритм размещаем внутри   функции work()

И ВСЕ!!!

Ну или почти ВСЕ… или почти, почти…

продолжение следует …

статьи по теме:

http://www.kamynin.ru/archives/5672

http://www.kamynin.ru/archives/5667