StockSharp.Quik.ApiException

StockSharp.Quik.ApiException
Atom
12/19/2011
Egor


Здравствуйте,

Включаю терминал, логинюсь, при попытке коннекта выходит сообщение:
Quote:

Ошибка соединения: StockSharp.Quik.ApiException: Код ошибки DllConnected Сообщение Терминал не подключен к серверу.

Как же НЕ подключен? Все же подключено!

Пытаюсь разобраться, подскажите, что нужно проверить.

S# 4.0.8, и еще: не могу Verifier'ом проверить таблицы, ту же ошибку выдает.



Спасибо

Tags:


Thanks:


Alexander

Avatar
Date: 12/19/2011
Reply


Раз Verifier не проходит, значит что-то не то.
Пройдитесь по пунктам документации с настройкой квика.
Thanks:

Egor

Avatar
Date: 12/19/2011
Reply


Спасибо, Александер, за ответ.

Я использую 3 терминала: 2 Quik-a (Quik-Junior + торговый Quik) + 1 Smart.

Для интегрирования использую BasketTrader, может это как-то влияет, но я их пока не поключаю всех вместе, а по одному.

Загрузил настройки для Quik из файла info.wnd из семплев для библиотеки S# 4.0.8. Verifeir при проверке говорит, что все нормально. Но ошибка при подключении так и не прошла, при этом экспорт запускается без проблем. Забавно, при дисконекте выдает такую же ошибку
Quote:
...DLL is not connected to QUIK.


Иногда, выходит следующая ошибка:
Quote:

Ошибка экспорта в MetaStock:
произошла ошибка с кодом
IWR_CANNОT_LОCATЕ.



Экспорт в Quik-Junior + торговый Quik запускается.

Заметил один глюк, если в торговом Quik-e стоит галка "показывать нулевые лимиты" в таблице позиции по бумагам, то выходит ошибка.

Что-то можно еще посмотреть?
Thanks:

vader

Avatar
Date: 12/19/2011
Reply


возьмите пример Sample и посмотрите, происходить ли ошибка при его использвании.
Thanks:

Alexander

Avatar
Date: 12/19/2011
Reply


Egor

Заметил один глюк, если в торговом Quik-e стоит галка "показывать нулевые лимиты" в таблице позиции по бумагам, то выходит ошибка.

Что-то можно еще посмотреть?



какая ошибка? о том что инструмент для такой-то позиции не найден?
правильно пишет - не может найти инструмент, добавьте его в таблицу инструментов


что посмотреть - уже ответили, на Sample из архива. если там всё ок - значит где-то у вас проблема.

P.S. проверил у себя роботов на квике - коннектит нормально.
Thanks:

Egor

Avatar
Date: 12/19/2011
Reply


Спасибо за советы!

Да, Sample работает без ошибок.

Не пойму, пока еще, что у меня не так.
Писал я по примеру SampleQuikSmart, c небольшими изменениями. Приведу, свой код (то, что сам добавил), если кто увидит мою проблему, пожалуйста подскажите, а то мне что-то не по глазам...

Code

.........................................
public partial class MainWindow
    {

        private bool _isConnected;

        public BasketTrader MetaZUBtrader;
        private BaseTrader quikTraderDima;
        private BaseTrader quikTraderEgor;
        private BaseTrader smartTrader;

        private string login1;
        private string login2;

        private string password1;
        private string password2;

        private string QuikPath1;
        private string QuikPath2;

.........................................

private void Start_Click(object sender, RoutedEventArgs e)
        {
            if (!_isConnected)
            {
                if (this.MetaZUBtrader == null)
                {

                    // создаем агрегирующий шлюз
                    this.MetaZUBtrader = new BasketTrader();
                    
                    if (QuikDimaCheck.IsChecked == true)
                    {

                        
                        login1 = "00000"; 
                        password1 = "*****"; 
                        QuikPath1 = this.QuikDimaPath.Text;
                        QUIK_Run_Login(login1, password1, QuikPath1);
                        quikTraderDima = InitReconnectionSettings(new QuikTrader(this.QuikDimaPath.Text));
                        this.MetaZUBtrader.InnerTraders.Add(quikTraderDima);
                    }

                    if (QuikEgorCheck.IsChecked == true)
                    {
                        login2 = "00000"; // 
                        password2 = "*****"; // 
                        QuikPath2 = this.QuikEgorPath.Text;
                        QUIK_Run_Login(login2, password2, QuikPath2);
                        quikTraderEgor = InitReconnectionSettings(new QuikTrader(this.QuikEgorPath.Text));
                        this.MetaZUBtrader.InnerTraders.Add(quikTraderEgor);
                    }

                    if (SmartChek.IsChecked == true)
                    {
                        var IPadress = IPAddress.Parse("82.204.220.34");
                        System.Net.IPEndPoint IP = new System.Net.IPEndPoint(IPadress ,8090);
                        // создаем шлюзы к SmartCOM и Quik (+ сразу инициализируем настройки переподключения)
                        smartTrader = InitReconnectionSettings(new SmartTrader(this.SmartLogin.Text, this.SmartPassword.Password, IP ));
                        // добавляем шлюзы к SmartCOM и Quik
                        this.MetaZUBtrader.InnerTraders.Add(smartTrader);
                        Smart_Login();
                    }

 
                    // очищаем из текстового поля в целях безопасности
                    //this.SmartPassword.Clear();

                    // подписываемся на событие успешного соединения
                    this.MetaZUBtrader.Connected += () =>
                    {
                        // возводим флаг, что соединение установлено
                        _isConnected = true;
                        // разблокируем кнопку Экспорт
                        this.GuiAsync(() => ChangeConnectStatus(true));
                    };

                    // подписываемся на событие разрыва соединения
                    this.MetaZUBtrader.ConnectionError += error => this.GuiAsync(() =>
                    {
                        // заблокируем кнопку Экспорт (так как соединение было потеряно)
                        ChangeConnectStatus(false);

                        //MessageBox.Show(this, error.ToString(), "Ошибка соединения");
                        this.info.AppendText(SysTime.ToString("HH:mm:ss") + " Ошибка соединения: " + error.ToString() + "\r\n"); ;
                    });

.........................................


Р.S. Учитывая, что творится на бирже. Я даже рад, что мой робот не доделан. :))
Thanks:

Egor

Avatar
Date: 12/23/2011
Reply


Разобрался в чем проблема. Если у кого-нибудь будет похожая: запускать QUIK и авторизовываться надо до того как создается экземпляр шлюза (this.MetaZUBtrader = new BasketTrader();). Иначе будет будет вылезать ошибка, как в моем случае. Всем удачи, пошел дальше программить.
Thanks:


Attach files by dragging & dropping, , or pasting from the clipboard.

loading
clippy