Состав и структура робота

4 декабря, 2014

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

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

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

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

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

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

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

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

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

Модули первой группы имеют  имя.  Имена системных модулей и файлы их скриптов описаны в специальном файле 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

Структура умных роботов

29 ноября, 2014

Описание разработанной системы я начну с изложения своей концепции структуры и функций умных торговых роботов.

Структуру умных роботов можно представить состоящую из следующих подсистем:

1) Управление рисками
2) Генерация торговых сигналов
3) Синтез торговой позиции
4) Помощь человеку
5) Информационное обеспечение
Рассмотрим кратко назначение каждой из них.
Управление рисками

Подсистема управления рисками обеспечивает:
1) безотказную работу взаимодействия робота с торговыми площадками
2) защиту рыночной позиции от внезапных, не прогнозируемых, негативных изменений.
3) защиту позиции от негативного влияния человека

Генерация торговых сигналов

Подсистема генерации торговых сигналов может состоять из неопределенного, неограниченного, пространственно распределенного набора генераторов.
Помимо программ-генераторов одним из таких генераторов выступает человек.
Большое множество известных в интернете программ автоматической торговли и программ-советников по существу являются такими простейшими генераторами сигналов.
Все представленные мною на сайте ранее результаты работы роботов — это результаты таких генераторов.
Генераторы торговых сигналов осуществляют прогноз движения цены инструмента и создают сигналы о направлении и величине такого движения.
Характерной особенность генераторов является независимость их работы от размеров депозитов, желании торговать, размеров позиции и т д
Их задача — прогнозировать движение рынков.

Синтез торговой позиции

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

Помощь человеку

Подсистема помощи человеку обеспечивает торгующему через торговый терминал человеку овтоматическое выполнение ряд вспомогательных действий, освобождая этим его от рутинной, не творческой работы.
Конкретизация этих действий зависит от конкретного терминала.
Например, для терминала QUIK к этим действиям относятся:
Слежение и коррекция спреда стоп-цены и лимит цены в стоп заявках
Автоматическая установка и снятие стоп-заявок.
Ограничение торговых операций человека по заданному уровню убытков.
И другие операции, которые связаны с торговой деятельностью человека через терминал

Информационное обеспечение

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