Напомню, что обмен по 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* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
Вчера мы получили статус официального администратора индикаторов. Биржа стала первой организацией в реестре, а RUSFAR — первым официально зарегистрированным и прошедшим проверку регулятора...
Налоговые убытки для инвестора: почему в 2025 году они могут "стоить" 15% вместо 13%
Для активного инвестора убыток от неудачной сделки — это не просто досадная потеря, а потенциальный налоговый актив. Однако его истинная ценность может значительно варьироваться. Благодаря...
Президент «Норникеля» Владимир Потанин в интервью телеканалу «Россия 24» подвел итоги 2025 года, оценил макроэкономическую ситуацию и рассказал о технологической трансформации компании.
Собрали ключевые тезисы:
Макроэкономика и ключевая ставка 2025 год был сложным, но мы видим позитив: инфляцию удалось снизить до 6%. Это важно для сохранения покупательной способности...
fusy, " могу получить 0, могу получить 10%"
если 10% от номинала, то рискнуть можно, купив на 20%, тут либо потерять 10%, либо выиграть 90%, всё зависит от банков если они будут виде...
Жемчужина маркетплейса. "Озон банк" наращивает прибыль За одиннадцать месяцев 2025 года «Озон банк» заработал 25 млрд рублей чистой прибыли, следует из данных оборотно-сальдовых ведомостей, ...
Озон Фармацевтика: скажу пару слов
Напоминаю разбор от 23 ноября — smart-lab.ru/blog/1233742.phpВ начале декабря были попытки пробить уровень 53, но безуспешно — день закрыли ниже ключевого уровня ...
Нефть продается ниже себестоимости? Почитал разные источники, цена везде разная от 16 баксов до 54, но большинство пишет про 40. А нефть сейчас продается по 34. СМЫСЛ ТО В ЧЕМ???? Продавать себе в убы...
Газпром в 2025 году: стабилизация на фоне вызовов, когда ждать дивидендов? 🏭 Финансовые результаты энергетического гиганта за девять месяцев 2025 года отражают сложный этап трансформации бизнеса. Комп...
Биткоин В 2011 году был вымпел, цена 28, если разделить на 2, и потом ещо /2 не получается, а дальше все одинаково.
Это падения. Сейчас падение 65 ожидается дальше 35.
Рост в разах,600, 120,22, мм...
Скрипты для греков неинтересны, у меня свои есть.
Доска — банальная совокупность отдельных инструментов. Подписываетесь на обновления по опционам и на каждом апдейте вносите изменения в БД.
Больше всего, кмк, Вам надо подумать над структурой таблички в самой базе. Наверное, Вы не можете упихать всю доску в одну строчку. Поэтому возникает вопрос что будет составным ключем и готовы ли Вы платить объёмом за удобство последующего использования?
Найти бы где готовый 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* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
как получить таблицу всех сделок за год
в удобном для анализа виде ?
(может в экселе)