Напомню, что обмен по 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* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
any_to_real, Вы давайте — не передергивайте!
— Ага!
— Какое тут либеральное обострение???
— Вы наверное плохо помните — с чего все начиналось в 90х на Горбатом мосту???
— Так я напомню...
⚡Работающим родителям с 2025 снизят НДФЛ до 6% В 2025 году НДФЛ для пар с детьми снизят до 6%. Оставшиеся 7% будет возмещать государство!
В 2025 году у нас появится новая льгота: работающие родит...
Сильнее всего за год в России выросли зарплаты у букмекеров и работников онлайн-казино — они стали зарабатывать вдвое больше. Рост зарплат в этой сфере связан с высокими темпами роста выручки. Только ...
Анализ акций МТС. Анализ последний был сделан два месяца назад.
И тогда и сейчас бумага не внушает оптимизм,
а на фоне негативного тренда по индексу, то и подавно.
Хорошая щель весной как дамокл...
Анализ акций Ростелекома. За последние два месяца с предыдущего анализа,
бумага сильно усугубила своё положение. Шансы на
отскок в ближайщей перспективе растаяли.
Две ярко выраженные щели осень...
Анализ акций Газпрома. Кто мог вытянуть индекс вверх, как тяж,
для хорошего отскока выше 3500п. — это ГП,
имея всёж громадную потенцию.
Так я думал. Давал шанс. Но походу нет.
Щель по дневке ...
Скрипты для греков неинтересны, у меня свои есть.
Доска — банальная совокупность отдельных инструментов. Подписываетесь на обновления по опционам и на каждом апдейте вносите изменения в БД.
Больше всего, кмк, Вам надо подумать над структурой таблички в самой базе. Наверное, Вы не можете упихать всю доску в одну строчку. Поэтому возникает вопрос что будет составным ключем и готовы ли Вы платить объёмом за удобство последующего использования?
Найти бы где готовый 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* она не печатается. Что с ней делать, пока понятия не имею.) Это я еще не проходил.)
как получить таблицу всех сделок за год
в удобном для анализа виде ?
(может в экселе)