← Zurück

StockSharp.BusinessEntities

Добрый день. Возникла проблема с инструментами, практически все значения равны null. С Quik соединение есть, все портфели и инструменты в combobox загружаются, по рыночной цене заявки выставляются, но пытаюсь вытащить цену лучшего бида и выдает ошибку (decimal x = Security.BestBid.Price).

War dieses Thema hilfreich?

Thema teilen

Kommentare (4)

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

Support
Support

Вы инструменты регистрировали при помощи Connector.RegisterSecurity(Security)?

klim95vlad
klim95vlad Autor

Support: Вы инструменты регистрировали при помощи Connector.RegisterSecurity(Security)?

Пробовал, но я не совсем понимаю где и как это стоит использовать. Подскажите, пожалуйста. Вот код. namespace WpfApplication2 { /// <summary> /// Логика взаимодействия для MainWindow.xaml /// </summary> public partial class MainWindow : Window { public QuikTrader Trader; public MainWindow() { InitializeComponent(); }

    private void button_Click(object sender, RoutedEventArgs e)
    {
        Trader = new QuikTrader(QuikTerminal.GetDefaultPath())
        {
            LuaFixServerAddress = "127.0.0.1:5001".To<EndPoint>(),
            LuaLogin = "quik",
            LuaPassword = "quik".To<SecureString>()
        };

        Trader.Connect();

        Trader.NewSecurities += securities => this.GuiAsync(() =>
        {
            comboBox.ItemsSource = Trader.Securities;

        });

    }

    private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {

    }

    private void textBox_TextChanged(object sender, TextChangedEventArgs e)
    {

    }

    private void button1_Click(object sender, RoutedEventArgs e)
    {
        decimal X = ((Security)comboBox.SelectedItem).BestBid.Price;
        textBox.Text = Convert.ToString(X);
    }
}

}

Support
Support

Значения в полях Level1 появляются после регистрации... Зарегистрировать можно так; private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { var security = (Security)comboBox.SelectedItem; if (Trader.RegisteredSecurities.Contains(security)) return; Trader.RegisterSecurity(security); }

klim95vlad
klim95vlad
klim95vlad Autor

Support: Значения в полях Level1 появляются после регистрации... Зарегистрировать можно так; private void comboBox_SelectionChanged(object sender, SelectionChangedEventArgs e) { var security = (Security)comboBox.SelectedItem; if (Trader.RegisteredSecurities.Contains(security)) return; Trader.RegisterSecurity(security); } Получилось! Спасибо большое!!