Здравствуйте! Не могу получить данные по DDE от квика. Все настройки вроде сделал. Перепроверил 10 раз уже - все равно не работает. В выпадающих окнах портфели не появляются и инструменты. Библиотека 4.2.31, квик 6.16.1.15, Visual studio C# 2010 год, .Net Framework 4. Подскажите кто знает в чем проблема...
Файл MainWindow.xaml.cs
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using StockSharp.Quik; using StockSharp.BusinessEntities; using Ecng.Xaml; using StockSharp.Messages;
namespace QuikStockSharp { /// <summary> /// Логика взаимодействия для MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); }
QuikTrader _trader;
private void Connect_Click(object sender, RoutedEventArgs e)
{
//создаём квик трейдера, передавая ему сразу место расположения нашего терминала
_trader = new QuikTrader(QuikTerminal.GetDefaultPath());
//подписываемся на событие появление новых инструментов
//оно сработает когда включится экспорт
_trader.NewSecurities += securities => this.GuiAsync(() =>//GuiASync используется чтобы выводить графику из другого потока
{
//заполняем коллекцию у нашего выпадающего списка (ComboBox)
Securities.ItemsSource = _trader.Securities;
});
//подписываемся на событие появления новых портфелей
//сработает после запуска экспорта
_trader.NewPortfolios += portfolios => this.GuiAsync(() =>
{
//заполняем коллекцию у нашего выпадающего списка (ComboBox)
Portfolios.ItemsSource = _trader.Portfolios;
});
//подписываемся на событие подключения, как только подлючимся, сразу запустим Экспорт
//Connect - просто подключение к потоку
//StartExport- получение онлайн данных из квика Инструменты, Заявки, Портфели и так далее
_trader.Connected += () => _trader.StartExport();
// подключаем квик
_trader.Connect();
}
private void Buy_Click(object sender, RoutedEventArgs e)
{
//создаём ордер
//заполняем его нужными свойствами
// портфель и инструмент вынимаем из выпадающих списков
//цену для отправки заявки вынимаем из тесктового окна
var order = new Order
{
Connector = _trader,
Portfolio = (Portfolio)Portfolios.SelectedItem,
Security = (Security)Securities.SelectedItem,
Volume = 1,
Price = decimal.Parse(PRICE.Text),
Direction = Sides.Buy
};
//регистрируем ордер
_trader.RegisterOrder(order);
}
private void CancelOrders_Click(object sender, RoutedEventArgs e)
{
//отменить все заявки
_trader.CancelOrders();
}
}
}
Файл MainWindow.xaml
<Window x:Class="QuikStockSharp.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <Button Content="Подключиться" Height="23" HorizontalAlignment="Left" Margin="22,12,0,0" Name="Connect" VerticalAlignment="Top" Click="Connect_Click" /> <ComboBox Height="23" HorizontalAlignment="Left" Margin="120,46,0,0" Name="Portfolios" VerticalAlignment="Top" Width="120" /> <ComboBox Height="23" HorizontalAlignment="Left" Margin="270,46,0,0" Name="Securities" VerticalAlignment="Top" Width="120" /> <Label Content="Портфель" HorizontalAlignment="Left" Margin="158,12,0,271" Name="label1" /> <Label Content="Инструмент" Height="28" HorizontalAlignment="Left" Margin="306,12,0,0" Name="label2" VerticalAlignment="Top" /> <Button Content="Купить" Height="23" HorizontalAlignment="Left" Margin="31,127,0,0" Name="Buy" VerticalAlignment="Top" Width="75"/> <TextBox Height="23" HorizontalAlignment="Left" Margin="133,127,0,0" Name="PRICE" VerticalAlignment="Top" Width="120"/> <Button Content="Снять все заявки" Height="23" HorizontalAlignment="Left" Margin="287,125,0,0" Name="CancelOrders" VerticalAlignment="Top" Width="75" /> </Grid> </Window>
评论 (4)
登录 或 创建账户, 登录或注册以发表评论
Квик и проект нужно под админом запускать
Запускаю вроде от администратора. На винде один только аккаунт у меня активный - администратора. Или тут особая какая-то процедура запуска квика и проекта нужна?
У меня такое на 4.2.43 было. Откатился на 4.2.30, там ок с портфелями.
Автора заблокировал за игнорирование тегов.