Ну что! Первое рабочее детище прошло успешное тестирование выставления заявок на демо счету по акции сбербанка по тиковой информации пересылаемой DDE протоколом ))
Вот такой получился скрин (1 минутный график и тиковый)
Вот часть лога формирования заявок модулем робота:
--MyDDE_Server--
[start]
# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=2; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=B; PRICE=94.72; QUANTITY=1;
deals=1 0.0 pose=0 price=94.7
# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=3; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=S; PRICE=94.7; QUANTITY=1;
Response# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=4; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=B; PRICE=94.71; QUANTITY=1;
Responsedeals=2 0.0 pose=0 price=94.7
# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=5; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=S; PRICE=94.7; QUANTITY=1;
Response# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=6; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=B; PRICE=94.71; QUANTITY=1;
Responsedeals=3 0.0 pose=0 price=94.7
# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=7; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=S; PRICE=94.7; QUANTITY=1;
Response# ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=8; CLASSCODE=EQBR; SECCODE=SBER; ACTION=NEW_ORDER; OPERATION=B; PRICE=94.71; QUANTITY=1;
Стратегия не была контр трендовой ) само собой каждая сделка — мелкий убыток ;) )))) но! даже за эти 2 минуты набомбило 1 контрактом -90 рублей ))))) гыгыг
Но не это сейчас было главным!!! Важно было справится ли мой робот в моей студии на java, через недавно написанный шлюз на С++ к библиотеке trans2quik.dll со скоростью движения цены на тиковом графике… вывод — справился! :)
Скажу что я выключил шорт — все сделки покупка и закрытие одного контракта
вот лог сделок из квика (повторяю — это демо счет!)
все сделки, что не с 1 контрактом — делались руками «от балды»
=======
Вывод: для того чтобы разобрать боковик даже на тиковом графике в 90% случаев достаточно тех скоростей что есть сейчас в моей инфраструктуре. Допилю модуль контроля сделок (проскальзывание, не исполнение *когда цена уходит от заявки* и прочие нюансы), а затем начну кропотливо впихивать в стратегию торговли весь свой годовой опыт :)
Моя инфраструктура:
— робот, как модуль моей студии написанный как и она на J2SE (java)
— шлюз на C++ к trans2quik.dll (ява косячит с колбэками) получает заявки от робота по внутреннему постоянному сокету, отправляет роботу статусы исполнения заявок и прочие интерактивные нюансы заявок-сделок, предусмотренных в рамках колбэка trans2quik.dll
— торговый терминал quik с включенной опцией «прием внешних транзакций» и настройко нужных мне таблиц (количество не ограничено) на экспорт по DDE протоколу
— студия получает данные через DDE протокол в мой внутренний DDE-сервер (в рамках модуля студии, написан тоже на java) с информацией таблиц квика, в частности тиковые котировки и стаканы интересующих акций, прочие таблицы (выбор будет определятся стратегиями)
Разработана швейцарскими учеными на основе анализа участников конкурса ЛЧИ, активных трейдеров биржи РТС, пользователей Альфа-директа и не которых видов разумных пингвинов, а так же мальчиков, которые очень любят математику.
Психонавтика долгое время пряталась в тени и замалчивалась.
Но русский ученый Вернадский еще в ранних своих работах писал, что в ноосфере есть темные пятна. Предполагалось, что это облака мыслей психически больных граждан. Но с появлением новых технологий удалось внедрить туда Зонды.
smart-lab.ru/blog/94003.php
Инфраструктуры с реальным терминалом не было. За 1.5 недели все сделал.
Time: 47
Time: 31
Time: 15
Time: 31
Time: 15
Time: 16
Time: 16
Time: 15
Time: 16
Time: 16
Time: 15
Time: 16
Time: 15
d:\Program Files\TROIK@\
EQBREMU
SBER03
ACCOUNT=S01-00000F00; CLIENT_CODE=J32257; TYPE=L; TRANS_ID=1; CLASSCODE=EQBREMU; SECCODE=SBER03; ACTION=NEW_ORDER; OPERATION=B; PRICE=23; QUANTITY=1;
// задержка синхронного вызова
test: 287
test: 278
test: 264
test: 263
test: 234
test: 187
test: 195
test: 67
test: 212
test: 311
test: 231
test: 425
test: 266
test: 237
test: 257
test: 225
test: 276
test: 178
Задержки не мерял, да и не понятно как. У меня же нет точного времени, когда сделка приходит в квик.
К тому же такие маленькие задержки померять невозможно, у таймера погрешность около 1/50 милисекунды, если не знали.
// ___описание XLTable DDE для quik!!!
www.kamynin.ru/archives/1183
// пример настройки таблиц в quik на экспорт DDE
stocksharp.com/doc/html/5c13da7b-b6e4-4fd4-958a-66c93c58b941.htm
// настройка quik на режим DDE
myquik.narod.ru/setup.html
//================
// DDE sourceFree GOOGLE!!! исходники клиента-сервера от гугла!
code.google.com/p/jdde/source/browse/trunk/java/src/com/google/code/jdde/server/DdeServer.java?r=12
//================
// описание __протокола_DDE__
msdn.microsoft.com/en-us/library/windows/desktop/ms648774(v=vs.85).aspx#_win32_Dynamic_Data_Exchange_Protocol
// описание работы CountDownLatch синхронизации
docs.oracle.com/javase/1.5.0/docs/api/java/util/concurrent/CountDownLatch.html
//================
// пример кода сервера на сторонней библиотеке
www.nevaobject.com/_docs/_javadde/JavaDde.htm
//библиотека pretty-tools-JDDE-1.0.2 — предоставляет клиента, но не сервер!
jdde.pretty-tools.com/downloads.php?lang=ru
// обсуждение экспорта данных из quik
www.kamynin.ru/archives/2517
www.kamynin.ru/archives/2525
www.kamynin.ru/archives/2912
// обсуждение DDE сервера для quik
www.quik.ru/forum/iwr/82419/82419/
// pretty-tools-JDDE-1.0.2 — библиотека для работы с DDE форматом
// Импорт транзакций в quik через текстовый файл
www.quik.ru/user/client/quik/features/import/
// qpile глобальные переменные
www.kamynin.ru/archives/4414
//==========================
DDE технология древняя и берет свое начало аж с Windows 3.1. Поэтому ее поддержку и исключили из .NET. Но вот со многими программами иногда приходится работать именно через DDE (т.к. ничего сложнее авторы не реализовали).
Вот тебе «золотой» набор ссылочек, которые в свое время помогли мне реализовать поддержку DDE .NET:
msdn.microsoft.com/ru-ru/libra...85%29.aspx
citforum.ru/programming/digest/exceldde/#otobr
systemnews.com.ru/?mod=art&part=win3x&id=005
www.lib.csu.ru/DL/bases/prg/fr...17/ch3.htm
Уверен они тебе помогут. Будут вопросы — обращайся.
Удачи!
//==========================
надеюсь ссылки помогут :) так же как и мне ;)
Так вот когда происходит обрыв, сервис замирает минут на 20, это происходит не часто, но является проблемой все же