Quik, DDE, Excel
Напомню, что обмен по DDE придуман в далеком 1995 году, еще для Windows 3.1. DDE считается сильно устаревшим методом обмена данными и практически не поддерживается современными приложениями. Остался один Quik, который цепляется за DDE из последних сил.
Вывод по DDE в Excel еще и не удобен для обработки данных. Понадобилось мне, скажем, ввести дополнительно пару-тройку столбцов на опционную доску — в результате, в Excel все столбцы таблицы на листе сместятся, и всю адресацию ячеек листа Excel в программе надо будет переделывать заново.
В MS Access также имеется DDE-сервер, и есть возможность заполнять таблицы БД по DDE, однако Quik c Access по DDE работать не умеет.
В общем, решил, что экспорт таблицы из Quik по DDE надо запихнуть в таблицу базы данных (БД), и уже из БД программно работать с опционной доской. Что, кстати, гораздо удобней для любой таблицы Quik.
Хотел было через Lua — вроде все просто, Lua с таблицами работает. Ан нет, к доске опционов Lua доступа не имеет.
Наверное на С++ или C# связь по DDE надо делать.
И подумалось, а может у Смартлабовцев есть такие уже готовые рабочие решения, чего велосипеды изобретать? По крайней мере, для DDE (никогда программно с ним не работал), а в БД я и сам запихну, и если нужно поделюсь решением — здесь нет никаких ноу-хау.
Помогайте, граждане кто чем может.
4.1К |
Читайте на SMART-LAB:
Разместили выпуск облигаций!
Успешно разместили облигации серии 003P-15 на финансирование текущих расходов. Ключевые параметры размещения: Объем: 20 млрд рублей...
Газета «Коммерсант» выпустила тематическое приложение о страховом рынке
Много интересных материалов для тех, кто работает в отрасли и тех, кто так или иначе с ней связан. Полагаем, публикации могут быть интересны и...
🥳 В десяточку! Два выпуска на сумму более 10 млрд рублей
ГК «А101» завершила сбор книги заявок на два выпуска облигаций общим объемом 10,5 млрд рублей. Начало торгов состоится 26 декабря....
Какая доходность среди облигаций с наивысшим рейтингом надежности и сроком погашения от 3 лет?
Скрипты для греков неинтересны, у меня свои есть.
Доска — банальная совокупность отдельных инструментов. Подписываетесь на обновления по опционам и на каждом апдейте вносите изменения в БД.
Больше всего, кмк, Вам надо подумать над структурой таблички в самой базе. Наверное, Вы не можете упихать всю доску в одну строчку. Поэтому возникает вопрос что будет составным ключем и готовы ли Вы платить объёмом за удобство последующего использования?
Найти бы где готовый Excel совместимый DDE-сервер на С++ или лучше на C#.
Уже нашел здесь на C# — с исходниками и даже скомпилированный, но он оч. древний, и, видимо, работать не будет. Экзешник уже не запускается. Ну, это еще разбираться с исходниками буду.
Вы мне напоминаете участника Dmitryy: принципиально упретесь рогом, убьётесь, несколько лет потратите на освоение основ опционов и программирование (DDE, C#, VBA, C++, Python, R, Excel, SQL, СУБД,… ) своего собственного костыля…. Вместо того, чтобы сосредоточиться на торговле и вытаскивании остатков неэффективностей.
Работает или не работает — неважно. Зато всё своё!
С уважением и успехов!
ПС Сам такой был лет 10-15 назад. В своё «оправдание» могу привести только полное отсутствие хоть какого-то софта хотя бы отдаленно пригодного для алготорговли на ФОРТС. Тем более, для торговли опционами.
Но лучшее — враг хорошему.) А сделать можно между делом. Не ах какая сложная задача. А если здесь никто не сталкивался, так в инете рыба найдется.
ЗЫ Кстати, как вы остатки неэффективности вылавливать собираетесь без своего собственного софта? Питон, R или, хотя бы, Ексель.
3Qu, всё это — просто системы для быстрого прототипирования и неспешных размышлений о прекрасном.
R с задачей расчета улыбки в реальном потоке данных у меня вообще не справился.
Приятного кодирования,![]()
Недавно обсуждал эту тему с Kvazar.
https://smart-lab.ru/blog/622377.php#comment11221190
Программно работаю и с DDE, и с Exсel.
Вы в Excel выводите данные из отдельных таблиц ?
Или обрабатываете таблицу всех сделок ?
Какой-то простенький проект С++ DLL для этого я публиковал здесь ранее, и еще Бегемот, кажется.
Возможно, то, что вы написали в https://smart-lab.ru/blog/622377.php#comment11221190 оно и есть. Если это не прямой экспорт в Ексель.
3Qu, вашего проекта к сожалению не видел.
У меня всё своё, сделанное на С#.
С DDE работаю через NDde.
Причём парсинг весь самописный.
C excel взаимодействую посредством библиотеки Microsoft.Office.Interop.Excel.
3Qu, для этого нужно накидать какой-нибудь простой пример.
Постараюсь сделать.
Ближе к началу следующей недели.
Сначала пособлю Kvazar, а потом сооружу вам.
Пока поищу этот Ndde.
Квик работает с ним по ODBC.
C Lua она тоже работать не умеет.
Иначе вопросов вообще не было.)
NDDE.dll, вообще-то 2006 года. Старовата, конечно, но и старше работают.
Если клиент забирает данные медленнее, чем отдает DDE — источник, то естественно он (DDE) будет переполнятся.
Не надо думать, что все кругом идиоты.)
Не могли бы подробнее написать где такая галка есть в Квике или картинку запостить ?
У меня Квик 7.27, но я что-то галки такой не вижу.
PS В общем, разобрался. Везде используются древние НЕТ фреймвоки. Ставить себе это не буду. М.б. что посвежее найду.
Сделал ДДЕ сервер на С++. Все оказалось достаточно просто, без всяких НЕТ-библиотек. Штатная DLL в Виндах. Работает, только Квик никак не хочет с ним соединяться.( А больше и не с чем и попробовать.
case XTYP_POKE:

return (HDDEDATA)DDE_FACK;
Все соединилось.
Толку от этого, правда никакого.)) Но как-то определились.
В case там уже вызовы функций из других листов.срр, а там уже malloc и пр. — хрен разберешь, кода много. Но, вообще, там интересно сделано. Пока разобрался поверхностно.
Да, спасибо за помощь! Оч вовремя.
smart-lab.ru/blog/205588.php
Не знаете, случайно, сокеты Lua совместимы с сокетами Python, C#, C++?
Пока получаю из Квик по DDE вот такую лабуду:
10 0 4 0 29 0 a 0 2 0 8d 0 7 ca ee e4 20 50 55 54 15 d6 e5 ed e0 20 ef ee f1 eb 2e 20 f1 e4 e5 eb ea e8 20 50 55 54 e d2 e5 ee f0 2e 20 f6 e5 ed e0 20 50 55 54 6 d1 f2 f0 e0 e9 ea f d2 e5 ee f0 2e 20 f6 e5 ed e0 20 43 41 4c 4c 16 d6 e5 ed e0 20 ef ee f1 eb 2e 20 f1 e4 e5 eb ea e8 20 43 41 4c 4c d c2 ee eb e0 f2 e8 eb fc ed ee f1 f2 fc 8 ca ee e4 20 43 41 4c 4c 10 d6 e5 ed e0 20 e1 e0 e7 2e 20 e0 ea f2 e8 e2 e0 9 d2 fd f2 и т.д.
Как строка char* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
как получить таблицу всех сделок за год
в удобном для анализа виде ?
(может в экселе)