Публичный бета тестинг
Atom Ответить
17.05.2011


Выложил PlazaTrader на http://box.net/plaza Исходники самого PlazaTrader, исходники примера, Plaza dll и Plaza + S# dll (последнее не нужно, если уже используется S#).

В следствие бета тестирования буду обновлять только библиотеку Ecng.Trading.Plaza.dll. В релиз войдет все. Налетаем.Smile

upd Теперь PlazaTrader часть дистрибутива S#, поэтому просто качайте последнюю версию http://box.net/stocksharp/ . Сборка называется StockSharp.Plaza.dll

Теги:


Спасибо:




66 Ответов
< 1 2 3  >
aspirant

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


aspirant Перейти
Mikhail Sukhov Перейти
Для этой версии все таки ввернуть поддержку базового клиента (в виде опции). Надеюсь, это не сложно.
Начал заниматься.


Привинчиваем к SQL Server'у (ODBC) или .db файлам (SQL3Lite)? Последние проще настроить, но я с ними раньше не имел дела вообще.
Спасибо:

aspirant

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


Mikhail Sukhov Перейти
2 штуки в месяц у Цериха.


Подключение напрямую к серверу Плазы или через брокера?
Спасибо:

Mikhail Sukhov

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


aspirant Перейти
Привинчиваем к SQL Server'у (ODBC) или .db файлам (SQL3Lite)? Последние проще настроить, но я с ними раньше не имел дела вообще.


Думаю, лучше последнее. Я тоже не работал, но меня прельщает название LiteSmile
Автор топика
Спасибо:

Alexander

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


aspirant Перейти
aspirant Перейти
Mikhail Sukhov Перейти
Для этой версии все таки ввернуть поддержку базового клиента (в виде опции). Надеюсь, это не сложно.
Начал заниматься.


Привинчиваем к SQL Server'у (ODBC) или .db файлам (SQL3Lite)? Последние проще настроить, но я с ними раньше не имел дела вообще.



Лучше к SQLite.
Спасибо: aspirant

aspirant

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


Alexander Перейти
Лучше к SQLite.

Хорошая штука. Уже скачал и интегрировал в VS2010. Теперь можно db-файлы смотреть.
Спасибо:

aspirant

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


esper Перейти
Mikhail Sukhov Перейти
1. Для этой версии все таки ввернуть поддержку базового клиента (в виде опции). Надеюсь, это не сложно.

А если просто ревизии по таблицам сохранять между сессиями? Тогда при переподключении будем скачивать только новые данные.


Добавить одну строчку действительно было несложно:
Код
this.DataStream.DBConnString = "P2DBSQLite3.dll;sqlite3.ini;{0}.db".Put(this.Table.UniqueName.Replace('\\', '_'));


Но при тестировании возникла проблема: если между сессиями меняешь набор колонок в таблице, приходится удалять db файл, и получать данные с нуля. То есть, если пользователь запустил PlazaTrader, инициализировал таблицу 1 с колонками 1,2,3,4, накачал данных, вышел. Подумал-подумал, понял, что нужна еще колонка 5, и добавил ее в инициализацию. Снова запустил PlazaTrader и получил исключение, потому что в db файле в таблице только колонки 1,2,3,4, а плазовсий роутер не умеет менять схему таблиц в db файлах, он только создает их с нуля.

Еще: я до конца не разобрался, но, вроде, вытаскивать данные из локальной базы данных (db файл или SQL Server) мы должны сами.

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


Еще 2: у всех таблиц есть индексы (см. ini файлы-схемы). Для безбазового клиента они не нужны, поэтому я их не делал (нужно лопатить каждый класс в метаданных). Без индексов таблицы создаются, но они ведь не зря указываются в файлах-схемах.
Спасибо:

TestPlaza

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


Приветствую!
Захотелось проверить старую разработку через Плазу. Переписал робота, получил боевой логин. При запуске программы бросается месседж: "Ошибка подключения к серверу Плазы"
Может кто-нибудь написать небольшую инструкцию, как подготовить машину для работы с Плазой через Вашу библиотеку?
Спасибо:

aspirant

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


TestPlaza Перейти
Приветствую!
Захотелось проверить старую разработку через Плазу. Переписал робота, получил боевой логин. При запуске программы бросается месседж: "Ошибка подключения к серверу Плазы"
Может кто-нибудь написать небольшую инструкцию, как подготовить машину для работы с Плазой через Вашу библиотеку?


К какому серверу подключаетесь (см. файл client_router.ini)? Пришлите лог P2SimpleReplClient.log.

Инструкцию сейчас пишу. Как и вся документация, идет не так быстро, как хотелось быSad
Спасибо:

Mikhail Sukhov

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


TestPlaza Перейти
Приветствую!
Захотелось проверить старую разработку через Плазу. Переписал робота, получил боевой логин. При запуске программы бросается месседж: "Ошибка подключения к серверу Плазы"
Может кто-нибудь написать небольшую инструкцию, как подготовить машину для работы с Плазой через Вашу библиотеку?


Дайте угадаю, в примере ввели логин пароль в текстовый поля? Оставьте их пустыми и просто нажимайте кнопку Подключиться.
Автор топика
Спасибо:

TestPlaza

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


Подключаюсь на 194.247.133.25:4001.
Нет, ваш пример я даже не собирал, сразу работаю со своим роботом.
2aspirant: Вечером на ваше мыло сброшу лог.

Может быть проблема с тtм, что я сам не ставил роутер. А использовал тот, который устанавливается с программой LTS Direct.
Спасибо:

esper

Фотография
Программист
Дата: 10.06.2011
Ответить


TestPlaza Перейти
Подключаюсь на 194.247.133.25:4001.
Нет, ваш пример я даже не собирал, сразу работаю со своим роботом.
2aspirant: Вечером на ваше мыло сброшу лог.

Может быть проблема с тtм, что я сам не ставил роутер. А использовал тот, который устанавливается с программой LTS Direct.

Лог так же можно сбросить на help@rts.ru, техподдержка у них достаточно оперативная
Спасибо:

lkor

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


TestPlaza Перейти
Подключаюсь на 194.247.133.25:4001.
Нет, ваш пример я даже не собирал, сразу работаю со своим роботом.
2aspirant: Вечером на ваше мыло сброшу лог.

Может быть проблема с тtм, что я сам не ставил роутер. А использовал тот, который устанавливается с программой LTS Direct.


Если вы подключаетесь к тестовому серверу то адрес должен быть 194.247.133.43:3001 (или beta-forts.rts.ru:3001 что одно и то же). Соберите пример, проверьте работает ли он. Если да, то проблема в вашем приложении, если нет, то нада искать проблему в роутере. Ссылки на установщики роутеров есть тут.
Спасибо:

TestPlaza

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


Я подключаюсь к боевоему серверу. С тех.поддержкой РТС не связывался, так как может проблема в неправильном использовании Вашего фреймворка.
Удалил роутер который устанавливался с LTSD. Установил P2_ClientGate1.11.5_32.exe c ftp РТС. Это не решило проблему - "Ошибка подключения к серверу Плазы"

Лог роутера
Цитата:
[p2syslog:trace:p2mq-cli]
MQ library started=1
info=1
New connection created;mq-conn 0x%X=0
Socket created;conn 0x%X;sock 0x%X=0
Socket connected;conn 0x%X;host '%s';port %u=1
Recv completed;;conn 0x%X;count %d; data %#.*Z=0
CConnection::RecvLLMsg();InHdr %d;recvLen %d;recvRem %d=0
CConnection::RecvLLMsg();system_type 0x%X=0
LLMsg received;mq-conn 0x%X;type 0x%X;ver 0x%X;len %u;flags 0x%X;sign 0x%X%X%X%X;body %#.*Z=0
RecvLLMsg() finished;res %X;inHdr %d;recvRem %d=0
Router status received;mq-conn 0x%X;state 0x%X;node_name '%s';login_id %u=0
LLMsg is sent;mq-conn 0x%X;type 0x%X;len %u;oper_num %d=0
Operation result received;mq-conn 0x%X;type 0x%X;len %u;oper_num %d;res 0x%X('%s')=0
Posting message: to '%s'; cat: '%s'; type %d; size %d; bodySize: %d=0
New message added to recvList. Size: %d=0
Socket closed;conn 0x%X=1
Connection released;mq-conn 0x%X=0
MQ library stopped=1
Socket closed by peer;conn 0x%X=1
Socket created;conn 0x%p;sock 0x%p=0
Socket connected;conn 0x%p;host '%s';port %u=1
Recv completed;;conn 0x%p;count %d; data %#.*Z=0
LLMsg received;mq-conn 0x%p;type 0x%X;ver 0x%X;len %u;flags 0x%X;sign 0x%X%X%X%X;body %#.*Z=0
Router status received;mq-conn 0x%p;state 0x%X;node_name '%s';login_id %u=0
LLMsg is sent;mq-conn 0x%p;type 0x%X;len %u;oper_num %d=0
Operation result received;mq-conn 0x%p;type 0x%X;len %u;oper_num %d;res 0x%X('%s')=0
Socket closed;conn 0x%p=1
Socket select finished with error in socket;conn 0x%p;sock_err %r=1
error=1
Couldn't connect socket;conn 0x%p;host '%s';port %u;timeout %u;sock_err %r=1

[p2syslog:trace:p2repl-cli]
Client replication library started=1
info=1
Stream created;stream 0x%X=1
Stream opening started;stream 0x%X;type %d;name '%s';server_addr '%s';db_conn '%s'=1
Stream opened;stream 0x%X;channel 0x%I64X=1
Scheme setting started;stream 0x%X=1
Scheme is set;stream 0x%X;channel 0x%I64X=1
Statistics module '%s' was successfully registered=1
Statistics was registered;stream name %s=1
Data requested;stream 0x%X;channel 0x%I64X;session %d=1
CLEAR_DELETED message received;stream 0x%X=1
CLOSE message posted;stream 0x%X=1
Statistics module was unregistered, module name %s=1
Stream destroyed;stream 0x%X=1
Client replication library stopped=1
DATA message received;stream 0x%X=1
Begin transaction=1
Preprocessing received record;stream 0x%X;table_idx %u;rec_rev %I64u=0
Processing received record;stream 0x%X %s; table_idx %u;rec_rev %I64u=1
Commit transaction=1
ACK message posted;stream 0x%X=1
Stream is on-line;stream 0x%X=1
PING message posted;stream 0x%X=1
COUNTED_PING message received;stream 0x%X=0
Couldn't open db-connection;stream 0x%X;db_conn '%s'=1
error=1
Couldn't connect to DB;stream 0x%X;db_conn '%s'=1
Stream created;stream 0x%p=1
Stream opening started;stream 0x%p,type %d,name '%s',server_addr '%s'=1
Stream opened;stream 0x%p;channel 0x%I64X=1
Scheme setting started;stream 0x%p=1
Scheme is set;stream 0x%p;channel 0x%I64X=1
Statistics module for table '%s' was successfully registered=1
Data requested;stream 0x%p;channel 0x%I64X;session %d=1
CLOSE message received;stream 0x%p=1
Stream is being closed by server;stream 0x%p,reason 0x%X(%d)=1
CLEAR_DELETED message received;stream 0x%p=1
DATA message received;stream 0x%p=1
Stream is on-line;stream 0x%p=1
ACK message posted;stream 0x%p=1
CLOSE message posted;stream 0x%p=1
PING message posted;stream 0x%p=1
COUNTED_PING message received;stream 0x%p=1

[p2syslog:trace:db]
connection with driver %s created=1
info=1

[p2syslog:trace:SQLLite]
SQL: %s=0
info=0
Processing ini-file '%s' with additional connection settings=0

[p2syslog:trace:P2ClientGate]
Notification not handled ; notif %I32d; datastream 0x%X=0
Couldn't set message body; message 0x%X=1
error=1
Before P2MQGetMsg for MQ conn %p=0
Before P2ReplProcessMessage for MQ conn %p and MQ msg %p=0
After P2ReplProcessMessage for MQ conn %p and MQ msg %p=0
Stream %s switched to snapshot server %s=1
info=1
Stream %s switched to online server %s=1

[p2syslog:trace:RETURN_P2ERR]
Line %s:%d=0

[p2syslog:trace:Scheme]
Opened db handles %d, opened table handles %d, opened fld handles %d=1
info=1

[p2syslog:trace:NULL Fields]
Parse NULL fields %d=0

[p2syslog:trace:p2db-odbc]
Couldn't establish connection;conn_str '%s';sql-error %d;descr '%s'=1
error=1
Connection established;conn_str '%s';dbc 0x%p=1
info=1
Connection closed;dbc 0x%p=1
Executing SQL-statement;sql '%s';stmt 0x%p=0
Couldn't execute prepared SQL-statement;stmt 0x%p;sql-error %d;descr '%s'=1
Preparing SQL-statement;sql '%s';stmt 0x%p=0
Executing prepared SQL-statement;stmt 0x%p=0

[p2syslog:trace:p2db]
Startup statements from ini-file were successfully executed=0

[p2syslog:trace:P2ReplStorage]
DB policy on conn-str created;stream 0x%p,policy 0x%p=1
info=1
DB policy on conn-str deleted;stream 0x%p,policy 0x%p=1
Preprocessing received record;stream 0x%X;table_idx %u;rec_rev %I64u=0
Processed received record;stream 0x%X %s; table_idx %u;rec_rev %I64u=1
Revision adjustment;stream 0x%X;table_idx %u;cur_rev %I64d; new_rev %I64d=1

[p2syslog:trace:ReplUtils]
CLEAR_OLD_REV table %s; minRev %I64d; clearRev %I64d;deletion step %d=1
info=1
Спасибо:

esper

Фотография
Программист
Дата: 14.06.2011
Ответить


Это не лог роутера, а файл конфигурации логирования
Спасибо:

transdex

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


Опыт установки:
Исходные ингридиенты:
Установщик роутера: P2_ClientGate1.11.5_32.exe
PlazaTrader: отсюда: http://box.net/plaza версия от 30.05.2011

Как я понял этот вариант (в отличие от первого от 17.05.2011) сделан под базовую авторизацию:
"Базовый способ: аутентификационная информация, т.е. имя пользователя и пароль, указывается в ini-файле роутера, например, при установке P2ClientGate из дистрибутива. При этом клиентский код ничего не знает про аутентификацию. В силу простоты – рекомендуемый метод."
Соответственно пароль находится в открытом виде в .ini файле.
Если роутер установлен не как сервис его надо запустить вручную. Плаза-трейдер просто тупо коннектится к локальному 4001 порту. Кстати почему-то все время подразумевается что локальный порт и удаленный одинаковы и равны 4001, что не всегда так.
При установке Роутера вводим адреса и порты сервера Plaza(локальный порт можно изменить в .ini файле), выбираем MTA библиотеку, выбираем установку как сервис или отдельно запускаемое приложение по желанию,а также логин и пароль на подключение к плазе.

Если роутер установлен как сервис просто запускаем SampleGUI и жмем на кнопку подключить. Если роутер не сервис, предварительно запускаем роутер файликом start_router.cmd из папки куда установлен роутер.
После чего как обычно пишут в Microsoft, можно откинуться на спинку стула и выпить чашечку кофе... В связи с последним на первое время не помешала бы галочка "Не загружать сделки и заявки при старте", аналогично как есть в Cofite SDK.
Спасибо:

Mikhail Sukhov

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


transdex Перейти
Если роутер установлен как сервис просто запускаем SampleGUI и жмем на кнопку подключить. Если роутер не сервис, предварительно запускаем роутер файликом start_router.cmd из папки куда установлен роутер.
После чего как обычно пишут в Microsoft, можно откинуться на спинку стула и выпить чашечку кофе... В связи с последним на первое время не помешала бы галочка "Не загружать сделки и заявки при старте", аналогично как есть в Cofite SDK.


Ага. Теперь осталось понятить самое зерно разработки. Это API для роботов. Тоесть то, что вы называете SampleGUI, на самом деле является демонстрацией возможностей API. Поэтому нельзя к PlazaTrader применять такие понятия как базовый, безбазовый, анонимная аутентификация и т.д. PlazaTrader работает в том режиме, в котором запрограмирован робот. SampleGUI - простой пример робота. Не требует логин пароль и коннектица к локальному роутера. В реальной системе так может и не быть. Поэтому нужны переделки. Чтобы их сделать как можно быстрее, можно взять код SampleGUI, который как раз для этого и был создан.

Что касается галочка "Не загружать сделки и заявки при старте", опять же, делается через перегрузку метода StartExport в коде робота.
Автор топика
Спасибо:

transdex

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


Цитата:
SampleGUI - простой пример робота. Не требует логин пароль и коннектица к локальному роутера.

Так об этом и речь, что в конкретном экземпляре SampleGUI PlazaTrader используется в качестве клиента с базовой аутентификацией, поэтому, чтоб SmartGUI заработал, роутер должен быть настроен на это и запущен. И соответственно если это какая-то другая установка роутера (от Cofite например) , то надо править конфиг роутера.
Спасибо:

Mikhail Sukhov

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


transdex Перейти
Цитата:
SampleGUI - простой пример робота. Не требует логин пароль и коннектица к локальному роутера.

Так об этом и речь, что в конкретном экземпляре SampleGUI PlazaTrader используется в качестве клиента с базовой аутентификацией, поэтому, чтоб SmartGUI заработал, роутер должен быть настроен на это и запущен. И соответственно если это какая-то другая установка роутера (от Cofite например) , то надо править конфиг роутера.


А у Кофите какие настройки?
Автор топика
Спасибо:

transdex

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


У Кофите роутер по умолчанию ставится в другую папку ( что-то вроде "P2RouterForCFT") и аутентификация идет через клиента, поэтому то,что написано в .ini файле не так важно (пароля там точно нет).
Спасибо:

carga

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


Mikhail Sukhov Перейти
Налетаем.Smile


У меня роутер запущен на одной машине (сервер), а Ваш пример я запускаю на другой (Клиент).

Как мне объяснить SampleGUI, чтобы он коннектился к заданному МНОЙ роутеру на заданный МНОЙ порт? (При этом, разумеется, должен быть также способ задать локальный логин и пароль для подключения к роутеру [вписывается в client_router.ini]).

ПС Есть ещё одна проблема: если запустить SampleGUI и подключиться к роутеру (на локальной машине), затем запустить второй экземпляр SampleGUI, то при попытке подключиться второй экземпляр скажет "Ошибка подключения к серверу Плазы". И затем "System.TimeoutException: Соединение не бьыло установлено в отведенный отрезок времени".

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

frontman

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


Я много раз писал о проблеме получения данных при использовании версий библиотек старше версии 4.0.
В результате только с помощью запуска профайленга мне удалось найти причину тормозов.
Этой причиной к моему удивлению оказался метод
Код
onnection.ProcessMessage(out cookie, (uint)PollTimeOut.TotalMilliseconds);

onnection - это экземпляр класса CP2ConnectionClass, который в свою очередь находить в библиотеке Interop.P2ClientGateMTA32.dll.
После замены файла Interop.P2ClientGateMTA32.dll в новых версиях StockSharp на библиотеку используемую версии 4.0 все тормоза пропали.
Может мне кто нибудь объяснит как так? Библиотека суде по всему одна и таже. Она стандартная.
Но...
Спасибо:

Alexander

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


frontman Перейти
Я много раз писал о проблеме получения данных при использовании версий библиотек старше версии 4.0.
В результате только с помощью запуска профайленга мне удалось найти причину тормозов.
Этой причиной к моему удивлению оказался метод
Код
onnection.ProcessMessage(out cookie, (uint)PollTimeOut.TotalMilliseconds);

onnection - это экземпляр класса CP2ConnectionClass, который в свою очередь находить в библиотеке Interop.P2ClientGateMTA32.dll.
После замены файла Interop.P2ClientGateMTA32.dll в новых версиях StockSharp на библиотеку используемую версии 4.0 все тормоза пропали.
Может мне кто нибудь объяснит как так? Библиотека суде по всему одна и таже. Она стандартная.
Но...


Не понял что на что вы заменили.
Спасибо:

frontman

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


Ну это удивительно. Но проблема была не в StockSharp а в Interop.P2ClientGateMTA32.dll
Тот Interop.P2ClientGateMTA32.dll что в новых релизах идет какой то бажный, а вот тот что в версии 4.0 норм работает.
Хотя не размер не версия не изменена...
Спасибо:

Alexander

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


frontman Перейти
Ну это удивительно. Но проблема была не в StockSharp а в Interop.P2ClientGateMTA32.dll
Тот Interop.P2ClientGateMTA32.dll что в новых релизах идет какой то бажный, а вот тот что в версии 4.0 норм работает.
Хотя не размер не версия не изменена...


Попробуйте его сами у себя сгенерировать, из дистрибутива Plaza.
В версии 4.0 - это какой? Interop.P2ClientGateMTA32.dll? Он не менялся со времён как появился.
Спасибо:

frontman

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


Именно! И я это прекрасно понимаю.
Но у меня новые библиотеки норм работают только если я Interop.P2ClientGateMTA32.dll заменяю на тот что был в версии 4.0
Ну вот не знаю я почему...
Спасибо:
< 1 2 3  >

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

loading
clippy