Облигационный торговый робот — различия между версиями

Материал из ТХАБ.РФ
Перейти к: навигация, поиск
(Код робота)
м
 
(не показаны 3 промежуточные версии 1 участника)
Строка 5: Строка 5:
 
  --Вывод сообщения с количеством сделок при каждом получении/изменении сделок
 
  --Вывод сообщения с количеством сделок при каждом получении/изменении сделок
 
  --<BODY
 
  --<BODY
   message("Скрипт запущен.")
+
   message("Скрипт запущен. Основной поток")
 
  --BODY>
 
  --BODY>
  
  function OnInit(script)
+
  function OnInit(script) -- Инициализация
message("OnInit()", 2)
+
  message("Начало инициализации - запуск OnInit()", 2)
is_run = true
+
  is_run = true
  end
+
  end -- Конец инициализации запуск доп. потока
  function OnTrade(trade)
+
 
 +
-- ФУНКЦИИ ОБРАБОТКИ СОБЫТИЙ - Основной поток!! (Функции обратного вызова)
 +
  function OnTrade(trade) -- Обработка события ПРОДАЖА
 
   message(string.format("Обработка сделки №%i по инструменту %s [%s]",
 
   message(string.format("Обработка сделки №%i по инструменту %s [%s]",
 
   table_of_trades[1].trade_num,
 
   table_of_trades[1].trade_num,
Строка 20: Строка 22:
 
  message("Общее количество сделок: " .. number_of_trades)
 
  message("Общее количество сделок: " .. number_of_trades)
 
  end
 
  end
  function OnStop()
+
 
 +
  function OnStop() -- Событие Остановка скрипта
 
   message("OnStop()", 2)
 
   message("OnStop()", 2)
 
   is_run = false
 
   is_run = false
  return 2000
+
  return 2000 -- 2 секунды на остановку доп. потока
 
  end
 
  end
 +
 
  -- Дополнительный поток - НАЧАЛО
 
  -- Дополнительный поток - НАЧАЛО
  function main()
+
  function main() -- НАЧАЛО основного потока
message("main()", 2)
+
    message("Начало работы main() - Доп поток", 2)  
while is_run do
+
    while is_run do -- Основной цикл доп. потока
sleep(100)
+
      sleep(100) -- имитация обработки
end
+
    end -- Конец цикла while
 
  end -- Дополнительный поток - КОНЕЦ
 
  end -- Дополнительный поток - КОНЕЦ
 
+
--<BODY
+
--<BODY
  message("Здесь тоже <BODY>", 2)
+
    message("Здесь тоже <BODY>", 2)
--BODY>
+
--BODY>
  
 
== См. также ==
 
== См. также ==
 
+
* [[Торговый робот с приоритетами обработки потоков (заготовка)]]
 +
* [[Простой торговый робот по скользящей средней]]
 
== Ссылки ==
 
== Ссылки ==
 
* https://smart-lab.ru/algotrading/Есть%20ли%20в%20свободном%20доступе%20пример%20самого%20простого%20торгового%20робота%20на%20QLua Обсуждение этого торгового робота
 
* https://smart-lab.ru/algotrading/Есть%20ли%20в%20свободном%20доступе%20пример%20самого%20простого%20торгового%20робота%20на%20QLua Обсуждение этого торгового робота

Текущая версия на 12:20, 6 апреля 2020

Описание торгового робота

Код робота

--Вывод сообщения с количеством сделок при каждом получении/изменении сделок
--<BODY
  message("Скрипт запущен. Основной поток")
--BODY>
function OnInit(script) -- Инициализация 
  message("Начало инициализации - запуск OnInit()", 2)
  is_run = true
end -- Конец инициализации запуск доп. потока
-- ФУНКЦИИ ОБРАБОТКИ СОБЫТИЙ - Основной поток!! (Функции обратного вызова)
function OnTrade(trade) -- Обработка события ПРОДАЖА
  message(string.format("Обработка сделки №%i по инструменту %s [%s]",
 table_of_trades[1].trade_num,
 table_of_trades[1].sec_code,
 table_of_trades[1].class_code))
 number_of_trades = getNumberOf("trades")
message("Общее количество сделок: " .. number_of_trades)
end
function OnStop() -- Событие Остановка скрипта
  message("OnStop()", 2)
  is_run = false
return 2000 -- 2 секунды на остановку доп. потока
end
-- Дополнительный поток - НАЧАЛО
function main() -- НАЧАЛО основного потока 
   message("Начало работы main() - Доп поток", 2) 
   while is_run do -- Основной цикл доп. потока
      sleep(100) -- имитация обработки
   end -- Конец цикла while
end -- Дополнительный поток - КОНЕЦ

--<BODY
   message("Здесь тоже <BODY>", 2)
--BODY>

См. также

Ссылки