<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
	<channel>
		<title>Форум QUIK [тема: Структура моего робота]</title>
		<link>http://forum.quik.ru</link>
		<description>Новое в теме Структура моего робота форума  на сайте Форум QUIK [forum.quik.ru]</description>
		<language>ru</language>
		<docs>http://backend.userland.com/rss2</docs>
		<pubDate>Thu, 23 Apr 2026 16:15:49 +0300</pubDate>
		<item>
			<title>Структура моего робота</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message80324/topic9367/">Структура моего робота</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			Имеет практический смысл создавать отдельных роботов для акций, фьючерсов, опционов, валюты, облигаций.<br />----------------------------<br />Можно создать отдельных роботов для ликвидных и неликвидных акций.<br />------------------------------<br />Для каждого такого робота создается своя задача или несколько задач.<br />В итоге создается библиотека задач.<br />-----------------------<br />Особенность таких задач в том, что в них не надо реализовывать механизм работы с биржей или брокером. <br />Это все делает основной робот nkbot.<br />Он и заявку отправит и стоп поставит, если надо. <br />
			<i>24.11.2025 11:33:01, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message80324/topic9367/</link>
			<guid>http://forum.quik.ru/messages/forum17/message80324/topic9367/</guid>
			<pubDate>Mon, 24 Nov 2025 11:33:01 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
		<item>
			<title>Структура моего робота</title>
			<description><![CDATA[<b><a href="http://forum.quik.ru/messages/forum17/message80323/topic9367/">Структура моего робота</a></b> в форуме <a href="http://forum.quik.ru/forum17/">Обмен опытом</a>. <br />
			<p>В данной теме рассказываю, как построен мой торговый робот.</p><p>Полагаю, что тема будет интересна не только начинающим писателям роботов, </p><p>так как излагаю свои идеи, которые обладают определенной новизной .</p><p>---------------------------- </p><p><B>Структура робота организована в виде сети роботов типа “звезда”.</B></p><p>Каждый робот – это отдельный поток или процесс ОС Windows.</p>------------------------------<p>В центре звезды находится главный робот nkbot, который обрабатывает события колбеков и таймера &nbsp;и раздает задания другим роботам.</p><p>События организованы в виде очереди. Если событий нет в течении заданного интервала, то робот выполняет задание по таймеру.</p><p>---------------------------</p><p>Все остальные роботы работают с заданной для каждого робота группой инструментов</p><p> и выполняют свои задачи по команде nkbot, либо по истечению заданного интервала времени.</p><p>---------------------------</p><p>Каждый робот работает в своем потоке OS Windows, либо в процессе терминала &nbsp;QUIK и имеет доступ к библиотеке QLua, либо в изолированном потоке(процессе) OS &nbsp;</p><p>Роботы в терминале запускаются как скрипты терминала QUIK. </p><p>----------------------------</p><p>Связь робота nkbot с каждым роботом сети выполняется через очередь команд в общей памяти. </p><p>Список работающих роботов создается в файле инициализации nkbot_ini.lua.</p><p>Задачи для роботов создаются в отдельных файлах в виде функций и загружаются в робота во время запуска скрипта по заданному списку задач для каждого робота. </p><p>--------------------------</p><p><B>Несколько примеров реализации отдельных элементов данной структуры.</B></p><p>Все роботы сети, кроме nkbot, имеют одинаковую структуру и реализуются одним скриптом.</p><p>Имя робота состоит из “nkbot_” и далее идентификатор робота.</p><p> Например, nkbot_B.lua, nkbot_C.lua &nbsp;два робота B и C </p><p>Файл nk_bot_B.lua</p>
====code====
<pre>Ts={SBER={int={1,2,5,10,20},q=true},
GAZP={int={2,5},q=true}, LKOH={int={5},q=true}} 
--инструменты, которыми торгует робот , интервалы свечей и флаг
получения стакана

list_task="task1,task2"&nbsp;&nbsp;-- задачи, которые
быдет исполнять робот&nbsp;&nbsp;

nkLog=true;&nbsp;&nbsp;-- -включить вывод в лог файл

----------------не трогать---------------

minfo =
debug.getinfo(1, "S").source:sub(2); path =
minfo:match("(.*&#91;/&#92;&#92;&#93;)") or "."

dofile(path.."stream.lua")

</pre>
=============
Файл nk_bot_С.lua
====code====
<pre>Ts={SiZ5={int={5}}, RIZ5={int={5,10},},SRZ5={int={30}}}
--инструменты и интервалы свечей

list_task="task3,task4"&nbsp;&nbsp;-- список задач

nkLog=true;

----------------не трогать---------------

minfo =
debug.getinfo(1, "S").source:sub(2); path =
minfo:match("(.*&#91;/&#92;&#92;&#93;)") or "."

dofile(path.."stream.lua")

</pre>
=============
файл инициализации nkbot_init.lua
====code====
<pre>list_stream="B,C"&nbsp;&nbsp;--список потоков
nkLog=true; --включаем лог файл</pre>
============= <br />
			<i>24.11.2025 11:18:21, nikolz.</i>]]></description>
			<link>http://forum.quik.ru/messages/forum17/message80323/topic9367/</link>
			<guid>http://forum.quik.ru/messages/forum17/message80323/topic9367/</guid>
			<pubDate>Mon, 24 Nov 2025 11:18:21 +0300</pubDate>
			<category>Обмен опытом</category>
		</item>
	</channel>
</rss>
