← Zurück

StockSharp.Quik.ApiException

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

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

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

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

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

Спасибо

War dieses Thema hilfreich?

Thema teilen

Kommentare (6)

Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen

Alexander
Alexander

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

Egor
Egor Autor

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

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

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

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

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

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

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

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

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

Alexander
Alexander

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

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

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

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

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

vader
vader

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

Egor
Egor Autor

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

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

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


.........................................
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. Учитывая, что творится на бирже. Я даже рад, что мой робот не доделан. :))

Egor
Egor Autor

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