1

Тема: Delphian Transactor

Delphian Transactor v.0.5

[url]https://cloud.mail.ru/public/AULF/GosQPdEgS[/url]

Текущие возможности:
-Работа с mySQL сервером (на данный момент без логирования ошибок)
-GET и POST запросы по HTTP
-Вызов функций QLUA из вне по HTTP

Установка:
1) Скопировать содержимое папки quik в папку с установленным QUIK терминалом.
2) В меню Таблицы -> Lua -> Доступные скрипты нажимаем добавить и выбираем DelphianTransactor.lua (или вызвать из своего скрипта)

P.S. Все описания в папке READ ME, все примеры в файле functions.lua
Вопросы и предложения по расширению функционала можно присылать на delphiec90@mail.ru

Смежная тема [url]https://forum.quik.ru/forum11/topic781/[/url]

2

Re: Delphian Transactor

Добавить поддержку SQLite есть возможность?

3

Re: Delphian Transactor

Да вроде без проблем, я использую ZEOSLIB, он вроде умеет, сейчас гляну, что можно собрать.

4

Re: Delphian Transactor

Интересует драйвер SQLite v3.7.0 или старше.

5

Re: Delphian Transactor

Сказано - сделано)) (Проверял на актуальной DLL с офф сайта: 32-bit DLL (x86) for SQLite verison 3.8.11.1)

Delphian Transactor v.0.6

[url]https://cloud.mail.ru/public/Bg7z/HuUaBfN4j[/url]

v.0.6 Добавлена возможность делать запросы к SQLite3 базам (без логирования ошибок)

6

Re: Delphian Transactor

Оперативно. Спасибо.
Логирование ошибок не нужно, а вот возврат сообщения об ошибке необходим, если запрос (подключение к БД) завершился неудачно.

7

Re: Delphian Transactor

Это будет чуть позже, главно не забыть).
Хотя там есть одна проверка на наличие существования файла бд, и если вывести результат коннекта, то можно даже наверно увидеть.... сам не проверял.

Вообще если интерес к либе выростет, надо будет код в более аккуратный вид привести).

Жду отчетов, об ошибках).

8

Re: Delphian Transactor

Delphian Transactor v.0.7

[url]https://cloud.mail.ru/public/G1MV/JnhrAvbML[/url]

    -----------------------------
    Delphian Transactor ChangeLog
    -----------------------------

-------------------------------------
v.0.7 Все вызываемые функции скомпанованы в таблицу internal
      Чистка и оптимизация кода DT.dll
      Добавлена возможность просмотра событий, сообщений, ошибок и кодов ошибок SQL событий.   
-------------------------------------   
v.0.6 Добавлена возможность делать запросы к SQLite3 базам (без логирования ошибок)
-------------------------------------
v.0.5 Добавлена возможность делать запросы к mySQL базам (без логирования ошибок)
-------------------------------------
v.0.4 Добавлена возможность делать GET И POST HTTP-запросы из QLUA.
-------------------------------------
v.0.3 Исправлена ошибка. В случае возврата пустого значения функцией QLUA, её выполнение зацикливалось.
-------------------------------------
v.0.2 Исправлена ошибка с выполнением очереди функций, с одинаковым именем.
-------------------------------------

9

Re: Delphian Transactor

Delphian Transactor v.0.7.1

[url]https://cloud.mail.ru/public/AZ2K/58DkjJjJ1[/url]
-------------------------------------
v.0.7.1 Мелкие исправления в DelphianTransactor.lua, позволяющие использовать библиотеку индикаторами
-------------------------------------

10

Re: Delphian Transactor

Delphian Transactor v.0.8

-------------------------------------
v.0.8  Добавлена обработка ошибки при вызове internal.httpPost() и internal.httpGet()
      Добавлена возможность изменять binding ip сервера в (DT.StartServer('127.0.0.1','15000'))
-------------------------------------

[url]https://cloud.mail.ru/public/5p3apNBSx85f/DelphianTransactor%20v.0.8.zip[/url]

11 (2015-09-01 07:53:44 отредактировано Mikalas)

Re: Delphian Transactor

Добрый день!
Очень интересное решение.
А Вы можете выложить исходный код библиотеки DT?

12

Re: Delphian Transactor

Mikalas пишет:

Добрый день!
Очень интересное решение.
А Вы можете выложить исходный код библиотеки DT?

Видимо - НЕТ! )))))
Хороним тему...

13

Re: Delphian Transactor

Delphian Transactor v.0.9 (alfa) + sources
Дарю общественности все сырцы
Просто на разработу подзабил из-за отсутсвия интереса к библиотеки, здесь всё чтоу меня находилось в папке по данному проекту.
В последней версии исправил несколько ошибок по работе с сетью.
И почти дописал графическую библиотеку. Т.е. там теперь можно создавать дочерние окна и рисовать в них, а также рисовать компоненты типа кнопок и т.д., весь процесс остановился, если память не изменяет, на обработке событий компонентов.

[url]https://cloud.mail.ru/public/6MAtVdhmDUMc/DelphianTransactor.rar[/url]

14

Re: Delphian Transactor

delphiec
большое спасибо, что поделились такой разработкой!
Там есть что посмотреть (сделано всё на Delphi, кому интересно).

С вашего позволения положил копию здесь на сайте.
(только архив пережал, убрав из него лишнее: там и архив терминала лежал с дампами падения, и .dcu-файлы и прочее не относящееся к делу, на мой взгляд; соответственно размер архива поуменьшился)

Ссылки для скачивания:
[url=https://quik2dde.ru/static-img/162/DelphianTransactor.zip]готовая сборка Delphian Transactor  версии v.0.8[/url]
[url=https://quik2dde.ru/static-img/162/DelphianTransactor-v.0.8.zip]готовая сборка и исходники версии v.9.0(alfa)[/url]

15

Re: Delphian Transactor

delphiec пишет:

Delphian Transactor v.0.9 (alfa) + sources
Дарю общественности все сырцы
Просто на разработу подзабил из-за отсутсвия интереса к библиотеки, здесь всё чтоу меня находилось в папке по данному проекту.
В последней версии исправил несколько ошибок по работе с сетью.
И почти дописал графическую библиотеку. Т.е. там теперь можно создавать дочерние окна и рисовать в них, а также рисовать компоненты типа кнопок и т.д., весь процесс остановился, если память не изменяет, на обработке событий компонентов.

[url]https://cloud.mail.ru/public/6MAtVdhmDUMc/DelphianTransactor.rar[/url]

Большое спасибо!

16 (2015-11-05 16:42:21 отредактировано delphiec)

Re: Delphian Transactor

Переделал вызов функции из вне, скорее даже сделал один из примеров вызова, в Delphian Transactor, он был кривоват,

Delphian Transactor FC - (Function Caller)
[url]https://cloud.mail.ru/public/3E3cEWRkvoNd/DelphianTransactor%28FC%20-%20Functions%20caller%29.rar[/url]

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

17

Re: Delphian Transactor

Delphian Transactor - FC for Mikalas

[url]https://cloud.mail.ru/public/2kEfPdv8v4Hy/DT-FC%20for_Mikalas.rar[/url]

В данной версии "по просьбе трудящихся)))" реализован экспорт данных по через встроенный HTTP сервер, данные выводятся в JSON формате.

Полный список выводимых данных здесь [url]http://help.qlua.org/ch4_5_3.htm[/url]

18

Re: Delphian Transactor

Delphian Transactor - FC for Mikalas (HTTP server only: HttpGet, httpPost, HttpResponder = "caller")
идея здравая, только меня бы в этой версии больше интересовало получение строки параметров целиком
(или даже весь Link целиком, а вторым параметром IP удаленного "просителя")
распарсил бы по своему вкусу уже в LUA:

function HttpResponder(str_params, remote_IP, local_IP) --//aka caller
  if (false) then
    return DT.HttpGet("okitgo.ru/misc/dom/books.xml"));
  end;
  local ResultXML = [[<?xml version="1.0" encoding="UTF-8"?>]]; --//windows-1251
  ResultXML = ResultXML..'\n'..[[<]]..my_SecCode..[[>]];
  local t_params = split(str_params, "&");
  if (t_params ~= nil) then
    for ii1 = 1, #t_params, 1 do
      XMLresult = XMLresult..t_params[ii1];
    ResultXML = ResultXML..'\n'..[[<param]]..tustring(ii1)..[[>]]..t_params[ii1]..[[</param]]..tustring(ii1)..[[>]];
    end;
  end;
  ResultXML = ResultXML..'\n'..[[</]]..my_SecCode..[[>]];
  return ResultXML;
end;

З.Ы.
формат данных на выходе я бы предпочел XML, нежели JSON
получать громоздкие таблицы с кучей "хлама" не интресно wink

127.0.0.1:15000/?sec_code=SIH6&account=sdgfkjbsg63&command=set_position
127.0.0.1:15000/?sec_code=SIH6
127.0.0.1:15000 --// for ALL sec_code

в ответ всегда примерно так:

<?xml version="1.0" encoding="UTF-8"?>
<QUIK>
  <accounts>
    <sdgfkjbsg63 limit="777000">777001</sdgfkjbsg63>
  </accounts>
  <tickers>
    <SiZ5>
      <Have_Count>-2</Have_Count>
      <Have_Price>66777</Have_Price>
      <Step_Size>1</Step_Size>
      <Step_Price>1</Step_Price>
      <Fine_Bid_Price>66333</Fine_Bid_Price>
      <Fine_Bid_Quant>11</Fine_Bid_Quant>
      <Fine_Offer_Price>67555</Fine_Offer_Price>
      <Fine_Offer_Quant>7</Fine_Offer_Quant>
      <Fine_Mid_Price>67001</Fine_Mid_Price>
      <Fine_Mid_Spread>4</Fine_Mid_Spread>
    </SiZ5>
  </tickers>
</QUIK>

19

Re: Delphian Transactor

e-rogov Мне просто было удобнее в JSON данные собирать, а так это вообще не принципиально)))
Вот тут есть исходники Delphian Transactor FC - (Function Caller), подправить пару строк в либе и можно получать строку параметров в LUA.

20

Re: Delphian Transactor

ставить Делфи со всеми компонентами ... (рассчитывал на Автора smile )

по поводу XML удеобней тем что есть OLE готовый под виндой
можно написать в Amibroker например такой код:

URL1 = "http://okitgo.ru/misc/dom/books.xml";
Title = Title + "\n" + URL1;

XMLDOM1 = CreateStaticObject("Microsoft.XMLDOM");
XMLDOM1.async = False;
XMLDOM1.validateOnParse = False;
XMLDOM1.resolveExternals = False;
XMLDOM1.Load(URL1);
Title = Title + "\n" + XMLDOM1.getElementsByTagName("title").Item(0).childNodes.Item(0).nodeValue;

т.е. рулить QUIK из любой системы теханализа

21

Re: Delphian Transactor

e-rogov пишет:

т.е. рулить QUIK из любой системы теханализа

Может [url=http://bot4sale.ru/projects/utils-menu/utils-list/423-quik-ole.html]вот это[/url] вам более подойдёт?

22 (2015-12-08 02:36:36 отредактировано e-rogov)

Re: Delphian Transactor

AmiSharp это конечно монстр smile
но для меня третий лишний, я покормлю систему ТА котировками с квика, она в ответ скажет рекомендуемую позицию инструментов. А уж, что да как будет исполнять сам терминал, для ТА это должно быть без разницы.
З.Ы.
Ну и всегда с любого браузера можно будет глянуть самочуйствие робота, если сдох в ужасе лететь домой ..

23

Re: Delphian Transactor

e-rogov пишет:

AmiSharp это конечно монстр

По-моему, вы не совсем верно увидели акценты.
Про AmiSharp рассказано лишь для примера, к слову.
Суть же в том, что предлагается готовый адаптер, предоставляющий COM-интерфейс. Где его использовать - уже не важно.