Не идет экспорт из QUIK'а
Atom Ответить
24.02.2010


Здравствуйте! Заинтересовался Вашей программой и заодно начал изучение
C#. Помогите, пожалуйста, решить такую проблему: все сделал по Вашей
инструкции, настроил таблицы в QUIK'е, запускаю Sample, подключаюсь к
Квику, нажимаю "экспорт DDE", в Квике соответственно, как и ожидалось,
начинается экспорт таблиц DDE, но в программу Sample информация из
Квика почему-то не поступает? В таблицу "Сделки", правда, какая-то
информация загрузилась, но почему-то только до 12:50, хотя время уже
перевалило за 18:00...

Теги:


Спасибо:




42 Ответов
1 2  >
Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 24.02.2010
Ответить


Попробуйте включать таблицы в ручную, из Квика. Так можно определить,
какая глючит. Сначала инструменту, затем все сделки. затем заявки,
затем стопзаявки, затем мои сделки.

Спасибо:

ddd888

Фотография
Дата: 25.02.2010
Ответить


Спасибо, попробовал и так и эдак, но экспорт вроде бы пошел. Правда,
проблема, как я думаю, была в том, что в дереве процессов после
выключения программы продолжал "висеть" sample.vshost.exe. Только
после закрытия программы разработки этот thread исчезал и при
повторном включении экспорт из Квика снова начинал работать. Еще
заметил, что во "все сделки" информация поступает с задержкой в ~10
сек., это нормально? И есть ли возможность отсортировать данные
экспортируемых таблиц?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.02.2010
Ответить


vshost.exe - это специальный процесс VS. Там запущены служебные
процессы, а не программа с роботом.

"все сделки" - первый раз, когда включается экспорт, в зависимости от
объема сделок будет высокая загрузка процессора. Обычно, это
прекращается через несколько секунд. У Вас так же? Загрузка процессора
упала?

Спасибо:

ddd888

Фотография
Дата: 25.02.2010
Ответить


Да, вроде бы так и есть. Спасибо. Самое для меня приятное, что в
"стакан" данные поступают (или отображаются?) почти что мгновенно. А
таблица "все сделки" пока для меня не очень актуальна.

Изучая пример с "Портфелем" правильно ли я понял, что таким образом
можно создавать экспорт любых вновь создаваемых таблиц в Квике?
Да, и как насчет функции сортировки в таблице?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 25.02.2010
Ответить


Да, можно экспортировать любые. Посмотрите еще на Экспорт
дополнительных параметров.

Сортировать так:

IEnumerable<Trade> allTrades = ...;
// по возрастанию
allTrades = allTrades.OrderBy(t => t.Id);
// по убыванию
allTrades = allTrades.OrderByDescending(t => t.Id);

Спасибо:

ddd888

Фотография
Дата: 26.02.2010
Ответить


Спасибо большое. Осталось только понять как работать с этим
IEnumerable. :) Я так понимаю это компонент из .NET. Интересно а в
самом шарпе разве нельзя создать аналогичные классы с аналогичными
свойствами и методами? Или все специально "заточено" под .NET?

Еще вопрос немного другого характера. В вашей программе реализован
экспорт из Кивка по DDE. Но похоже есть и другие способы получения
информации? Недавно наткулся на распространяемый бесплатно привод:

http://ttools.ru/wp-content/plugins/DownloadCounter/download.php?id=3

(главная страница:http://ttools.ru/). Получает котировки из Квика без
проблем и быстро, но при этом такое ощущение, что DDE абсолютно не
используется. Кроме того программа сама каким-то образом "находит"
открытые "стаканы" в Квике и предлагает их выбор уже в самой
программе. Как это возможно и что Вы думаете по этому поводу?
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.02.2010
Ответить


Судя по документации, там нужно производить первоначальные настройки.
А затем программа сама все влючает. Что собственно и у меня. Различий
не увидел.

Только тут нужно принять во внимание следующий факт. Ттулз - это
готовая программа для создания внутри нее роботов. У меня же АПИ.
Тоесть, можно как раз такие программы создавать, можно просто роботов,
можно свою аналитику делать, к Экселю подключать, к Велсу, к Ами.

Я своей библиотекой не ограничиваю программы, которые должен хочет
трейдер. Вот и основное отличие.

Насчет экспорта, там, как мне писали, использует сканирование памяти.
С учетом того, что у Квика синтетические задержки, никакого
преимущества по скорости перед ДДЕ нет. Будут задержки, буду думать, и
возможно переделывать. А пока все это бесполезно.

Спасибо:

ddd888

Фотография
Дата: 26.02.2010
Ответить


Первоначальные настройки в ттулз сводятся только к настройке торгового
счета и паре других параметров. И там тоже есть возможность подключать
внешних роботов, как пишут, но я согласен, что полезность вашей
библиотеки для программирующего трейдера гораздо выше. В частности, и
для меня тоже. :) Правда, от шарпа голова уже немного кругом идет.. )

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 26.02.2010
Ответить


Мой видение развития торговых роботов - это свести к минимуму
промежуточные программы. Квик и так не единственный в цепочке. А эта
прога предлагает еще и себя =) Нет, никаких нареканий к нет. Она очень
интересна. Видно, что не просто еще одна прога под Квик. В ней даже,
насколько я понял, есть свой внутренний язык. Но я ее пользовать не
стал бы, вне зависимости от наличия S#. Поторговать с помощью нее -
да. Прогать под нее - нет. Мой вердикт по ней - она то, что отсутсвует
в Квике для пользователей, а не для программеров.

Спасибо:

ddd888

Фотография
Дата: 27.02.2010
Ответить


С вердиктом согласен. К тому же сама по себе прога еще весьма сырая и
не вполне надежная, а за т.н. полную версию денег ужЕ просят.

Вот у меня, правда, опять появилась та же проблема, что и вначале. При
этом никаких нововведений в код не вносил (потому как нахожусь пока
еще в процессе изучения :)). И при этом сейчас поочередный ручной
запуск таблиц тоже ничего не дает. Судя по частичной загрузке таблицы
"все сделки" (опять до какой-то точки времени дня в прошлом) что-то
начинает грузится, а потом вдруг по какой-то причине перестает. При
этом в Квике все таблицы исправно показывают "экспорт по DDE".
Перезагрузка VS к исправлению ситуации не приводит. Что можно было бы
еще проверить?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 27.02.2010
Ответить


Загрузка проца бывает только в первые моменты - когда объем тиков
большой экспортируется. Потом все до нуля должно упасть... Так,
давайте первый шаг выполним. Вы, когда запускаете экспорт по
инструментам, они выводятся?

Спасибо:

ddd888

Фотография
Дата: 10.03.2010
Ответить


Да, выводятся, но если все запускать сначала. Т.е. если до этого
программа не работала вообще. Сейчас вроде опять все выводится
нормально, но теперь жду момента, когда вдруг перестанет... До этого,
чтобы все заработало, пришлось перезапустить винду вообще. Такое
подозрение, что при закрытии программы в памяти остаются какие-то
процессы, которые потом мешают нормальному экспорту.

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.03.2010
Ответить


Посмотрите в Task Manager - не висит ли программа запущенной.

Спасибо:

ddd888

Фотография
Дата: 10.03.2010
Ответить


Проверял. Нет, не висит. И при этом поочередный ручной запуск DDE из
квика тоже ни к чему не приводит.
Сейчас как раз опять та же проблема возникла после того, как я закрыл,
а потом запустил программу второй раз..

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.03.2010
Ответить


Что за программа? Мой пример?

Спасибо:

ddd888

Фотография
Дата: 10.03.2010
Ответить


Да, Sample

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 10.03.2010
Ответить


Давайте пойдем по шагам. Вы запустили приложение, нажали экспорт дде,
данные не появились. Вы зашли в Квик. Первый вопрос. В какой состоянии
сейчас экспорт в Квике? Вы нажимаете в ручную экспорт ДДЕ на
Инструменты (давайте на них и остановимся). Второй вопрос. Экспорт в
Квика начался (окно стало серым)? Третие вопрос. Sample Инструменты
отобразил? Выключите пример. Четвертый вопрос. Экспорт в Квике
продолджает работать? Выключите и включите заново. Пятый вопрос.
Включается?

Спасибо:

ddd888

Фотография
Дата: 11.03.2010
Ответить


Значит, по шагам все идет так:
1. После первоначальной перезагрузки компа в 1-й раз все включается
нормально из самого Сампла.
В Квике, соответственно, экспорт отображается - окна все серые.
2. Выключаю Сампл, в квике экспорт тоже выключается - окна не серые.
3. Снова пытаюсь запустить Сампл. Вот здесь все и прерывается. Хотя в
Квике экспорт "ИДЕТ" - все окна для экспорта по DDE в Квике - серые.
3. Выключаю сампл и снова запускаю и пытаюсь сделать эскпорт из Квика
вручную - экспорт "идет", т.е. все окна серые, но данные в Сампл по -
прежнему не идут...

Что интересно - в окне "Сделки" - какие-то данные все-таки поступают,
но почему-то только до 12 часов с минутами.

Автор топика
Спасибо:

ddd888

Фотография
Дата: 11.03.2010
Ответить


Еще такой вопрос, не совсем по теме. Какие классы - методы управляют
формой и содержимым стакана? Например, я добавляю кнопку типа BUY в
окно стакана и хочу чтобы при нажатии на нее сформировалась заявка по
цене выбранной в окне стакана. Как примерно это можно сделать?

Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 11.03.2010
Ответить


Я в примере Sample как раз и показал, как создавать заявки. Там есть
нужна кнопка - Создать Заявку (форма SecuritiesWindow), по ней заявка
создается.

Изучение самого языка C# занимает примерно неделю. Это не так сложно,
как кажется. Потому что профессионально программировать все равно не
надо, библиотеки изучать не нужно. Достаточно научиться оперировать
созданием объектов и вызовом методов. И я думаю, после этой недели
Sample начнет работать правильно, без перезагрузок компьютера ;-)

Спасибо:

ddd888

Фотография
Дата: 12.03.2010
Ответить


Надеюсь, что так будет. :) Сложностей в изучении самого языка я вроде
пока не нашел после изучения нескольких учебников и пособий. :) Как
мне кажется, основной сложностью здесь является знание кучи встроенных
NET классов и методов, которые уже создали до тебя. Ведь без них
ничего сделать в шарпе, как я понял, не получится. Вот только не
совсем понял - что значит "библиотеки изучать не нужно"? Как без
знания библиотеки использовать методы применяемых библиотек?

Автор топика
Спасибо:

ddd888

Фотография
Дата: 22.03.2010
Ответить


Ваш прогноз пока не совсем оправдался. :) Попытался влезть в самые
дебри DDE, получилось освоить стабильный побайтовый экспорт из квика с
помощью методов DDEML. Нот вот в Сампла данные по-прежнему полностью
не идут. То ли другие методы у Вас используются, то ли я чего-то
недоучитываю. Не могли бы Вы подробнее рассказать как работает метод
StartDDE из класса QuikTrader или привести его код? Хочется уже дальше
идти, а экспорт все не дает. :)
Автор топика
Спасибо:

ddd888

Фотография
Дата: 22.03.2010
Ответить


Ваш прогноз пока не совсем оправдался. :) Попытался влезть в самые
дебри DDE, получилось освоить стабильный побайтовый экспорт из квика с
помощью методов DDEML. Нот вот в Сампла данные по-прежнему полностью
не идут. То ли другие методы у Вас используются, то ли я чего-то
недоучитываю. Не могли бы Вы подробнее рассказать как работает метод
StartDDE из класса QuikTrader или привести его код? Хочется уже дальше
идти, а экспорт все не дает. :)

Автор топика
Спасибо:

AndreiFX

Фотография
Дата: 22.03.2010
Ответить


Есть привод, работает нормально. Сегодня запускаю и получаю такую же
ситуацию как описано выше: после дде вывода все окна с дде как бы
активны, однако данные оттуда не поступают. Все перепробовал,
подписался на ошибки дде this.Trader.DdeError += error => this.Sync(()
=> MessageBox.Show(this, error.ToString()));
В итоге получаю мессадж бокс следующего содержания:
"System.FormatException: Строка не распознана как действительное
значение DateTime."

..Подумал что что -то с региональными настройками, все сбросил, не
помогло.

Спасибо:

ddd888

Фотография
Дата: 22.03.2010
Ответить


После сообщения AndreiFX у меня возникла догадка. Проверил прилагаемую
инструкцию и - действительно - у Вас, Михаил, в настройках таблиц
время показано в формате "hh:mm:ss", а у меня в квике везде идет -
"hh:mm:ssAM". Правда теперь странно, что иногда экспорт вообще идет,
если данные из таблиц настроены на "hh:mm:ss"... При побайтовом
считывании это регулировать, конечно, можно, а как в случае с Sample
действовать?
Автор топика
Спасибо:
1 2  >

Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy