Напомню, что обмен по 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 (никогда программно с ним не работал), а в БД я и сам запихну, и если нужно поделюсь решением — здесь нет никаких ноу-хау.
Помогайте, граждане кто чем может.
Доска — банальная совокупность отдельных инструментов. Подписываетесь на обновления по опционам и на каждом апдейте вносите изменения в БД.
Больше всего, кмк, Вам надо подумать над структурой таблички в самой базе. Наверное, Вы не можете упихать всю доску в одну строчку. Поэтому возникает вопрос что будет составным ключем и готовы ли Вы платить объёмом за удобство последующего использования?
ch5oh, таблица в БД в виде самой доски опционов мне видится оч неплохой и простой идеей. Потому, думаю, экспорт непосредственно доски по DDE в БД — самое оно.Но это вопрос лишь организации и вторичный.
Найти бы где готовый Excel совместимый DDE-сервер на С++ или лучше на C#.
Уже нашел здесь на C# — с исходниками и даже скомпилированный, но он оч. древний, и, видимо, работать не будет. Экзешник уже не запускается. Ну, это еще разбираться с исходниками буду.
Вы мне напоминаете участника Dmitryy: принципиально упретесь рогом, убьётесь, несколько лет потратите на освоение основ опционов и программирование (DDE, C#, VBA, C++, Python, R, Excel, SQL, СУБД,… ) своего собственного костыля…. Вместо того, чтобы сосредоточиться на торговле и вытаскивании остатков неэффективностей.
Работает или не работает — неважно. Зато всё своё!
С уважением и успехов!
ПС Сам такой был лет 10-15 назад. В своё «оправдание» могу привести только полное отсутствие хоть какого-то софта хотя бы отдаленно пригодного для алготорговли на ФОРТС. Тем более, для торговли опционами.
ch5oh, у нас все есть.) Для любых инструментов.
Но лучшее — враг хорошему.) А сделать можно между делом. Не ах какая сложная задача. А если здесь никто не сталкивался, так в инете рыба найдется.
ЗЫ Кстати, как вы остатки неэффективности вылавливать собираетесь без своего собственного софта? Питон, R или, хотя бы, Ексель.
3Qu, Очевидно, с помощью готового софта. А если уж меня посещает какая-то сверхгениальная внешаблонная идея, то под неё пишется один конкретный модуль, который её реализует и проверяет.
Dmitryy, =) ага, примерно так и написал. Осваивать R параллельно с сишарпом и самому копаться в алгоритмах расчета исторической волатильности, разумеется, намного проще интересней.
ch5oh, ну C# это моя жизненная рутина, я на нем уже более 10 лет, а R мне не труден после всего. Сложнее всего даются законы вероятности и статистики. Вот с ними пока затык, уперся в сложные темы, где скорость освоения резко упала. Нужен перерыв и дальше в бой )
FinSerfing, В DDE — Excel я работаю только с доской опционов. Все прочие данные экспортируются через Lua -> C++ DLL.
Какой-то простенький проект С++ DLL для этого я публиковал здесь ранее, и еще Бегемот, кажется.
Возможно, то, что вы написали в https://smart-lab.ru/blog/622377.php#comment11221190 оно и есть. Если это не прямой экспорт в Ексель.
@В MS Access также имеется DDE-сервер, и есть возможность заполнять таблицы БД по DDE, однако Quik c Access по DDE работать не умеет.@
Квик работает с ним по ODBC.
Нашел несколько проектов. Ни один из них не рабочий, на Винде 10, по крайней мере. Все проекты компилируются, запускаются и через ~5 с падают по переполнению...
NDDE.dll, вообще-то 2006 года. Старовата, конечно, но и старше работают.
Aleksey Smirnoff, там же есть галочка в квике, чтобы в отдельном потоке вывод шел. Все нормально работает. При получении данных только сразу отпускайте квик.
Нашел в инете несколько проектов ДДЕ-серверов под Ексель. Много битых ссылок. То, что не битое, либо не компилируется, либо не запускается, либо падает при запуске по непонятным причинам. Целого проекта ни одного.
PS В общем, разобрался. Везде используются древние НЕТ фреймвоки. Ставить себе это не буду. М.б. что посвежее найду.
В качестве записи из дневника.
Сделал ДДЕ сервер на С++. Все оказалось достаточно просто, без всяких НЕТ-библиотек. Штатная DLL в Виндах. Работает, только Квик никак не хочет с ним соединяться.( А больше и не с чем и попробовать.
protorus, можно, но сюда файлы не загрузишь. Брал какой-то из готовых, который изначально не работал и падал при запуске. Сам сервер уже со вчера работает, Квик его видит, но соединяться не хочет. Коллбэк починяю, кажется в нем дело. Наверно, и не только.
Если quik видит сервер, то шлёт ему три транзакции, которые нужно правильно обработать: XTYP_CONNECT (вернуть нужно true), XTYP_CONNECT_CONFIRM (не важное и его можно отключить) и периодически XTYP_POKE (тут уже сами данные из таблицы). Ещё есть XTYP_DISCONNECT (приходит после остановки вывода в quik). В каком месте затык?
protorus, пока не до этого. Там просто что-то не работает. Я же это делал из вообще нерабочего приложения (вообще-то из нескольких))). Использовал как рыбу.
В case там уже вызовы функций из других листов.срр, а там уже malloc и пр. — хрен разберешь, кода много. Но, вообще, там интересно сделано. Пока разобрался поверхностно.
Да, спасибо за помощь! Оч вовремя.
_sg_, нет, даже не пытался. Если мне нужны сокеты, я из Луа ухожу в С++ ДЛЛ, и там делаю сокеты. Сейчас я их не использую, но старый простенький экземпл где-то на старом диске валяется.
Запись из дневника.
Пока получаю из Квик по 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* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
30% банков не готовы к внедрению цифрового рубля из-за проблем с IT-инфраструктурой – опрос среди более 150 IT-специалистов банков – Ведомости Опрос среди более 150 IT-специалистов банков показал, что...
Мда, мощный даунтренд конечно случился. -10% на графике сезонности. 2 мес идёт снижение, на юане больше похоже на 3 мес. По истории за 2-3 года, 3 мес снижение было только после 24 фев 22 года. Далее ...
Делимобиль. Кандидат на поглощение
Вышел отчет за 2024 год у компании Делимобиль. Хейтил компанию по результатам 1 полугодия, ситуация стала только хуже! Не вижу смысла глубоко анализировать Делимо...
IT-компании попросили о поддержке на случай возвращения западных игроков
Сюжет
Эксклюзивы РБК
Профильные ассоциации на рынке электроники и софта предложили властям проработать меры поддержки ...
Павел Худяков, то же самое, что на фонде, только наоборот. Видимо, юмор старого КГБшника не всем понятен. Пo сути дела ничего не изменилось.
Но спасибо мишкам, можно тарить крепкие валюты:
С...
Скрипты для греков неинтересны, у меня свои есть.
Доска — банальная совокупность отдельных инструментов. Подписываетесь на обновления по опционам и на каждом апдейте вносите изменения в БД.
Больше всего, кмк, Вам надо подумать над структурой таблички в самой базе. Наверное, Вы не можете упихать всю доску в одну строчку. Поэтому возникает вопрос что будет составным ключем и готовы ли Вы платить объёмом за удобство последующего использования?
Найти бы где готовый 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.
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* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
как получить таблицу всех сделок за год
в удобном для анализа виде ?
(может в экселе)