Algorithmischer Handel für .NET und Python✦86+ Konnektoren · Börsen · Broker · Krypto✦S#.Designer · Backtest · optimieren · live gehen✦Eine Community von 31,450+ Tradern und Entwicklern✦Algorithmischer Handel für .NET und Python✦86+ Konnektoren · Börsen · Broker · Krypto✦S#.Designer · Backtest · optimieren · live gehen✦Eine Community von 31,450+ Tradern und Entwicklern✦
Здравствуйте!
Очень понравились компоненты OrderGrid и TradeGrid!
Подскажите, каким образом я могу изменить там цвет выделен бая или
села и каким образом туда можно добавить или удалить какой нибудь из
столбцов?
Спасибо!
Kommentare (16)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Создать свой собственный контрол. Те, что входят в S# такого не умеют.
И я пока не думаю их развивать. Фактически, они появились благодаря
тому, что они потребовались в нескольких примерах. Вот код OrderGird:
///
/// Визуальный контрол-таблица, отображающая заявки (коллекцию
объектов класса ).
///
public partial class OrderGrid
{
///
/// Создать объект класса .
///
public OrderGrid()
{
this.Orders = new SynchronisedObservableList();
InitializeComponent();
}
/// <summary>
/// Коллекция заявок, которые необходимо отобразить.
/// </summary>
public IList<Order> Orders { get; private set; }
/// <summary>
/// Происходит при новом выделении заявки.
/// </summary>
public event EventHandler<EventArgs> OrderSelected;
/// <summary>
/// Выбранная заявка.
/// </summary>
public Order SelectedOrder
{
get
{
return this.SelectedOrders.FirstOrDefault();
}
}
/// <summary>
/// Выбранный заявки.
/// </summary>
public IEnumerable<Order> SelectedOrders
{
get
{
return _orders.SelectedItems.Cast<Order>();
}
}
private void _orders_SelectionChanged(object sender,
Спасибо. А может быть исходник этого компонента сможете выложить?
Впервые сталкиваюсь с созданием компонентов в шарпе,потому исходник
компонента очень поможет в разборе ситуации....
Эта ошибка возникла из за моей ошибки: робот начинает открывать очень
большое количество ордеров(это мой баг), соответственно в таблице "мои
сделки" очень много строк и из за этого возникает данная ошибка. Вот
код моей вредоносной процедуры(не исправленной)
Эту процедуру делал для закрытия ордеров к определенному времени, она
вызывается на каждом тике после заданного времени. И косяк здесь в
том, что пока робот открывает рыночный ордер, противоположный тому,
что сейчас есть в рынке, эта процедура заново вызывается и открывается
еще один противоположный и таким образом получается очень много
сделок, привод зависает, а когда заново его включаю и начинаю делать
дде вывод, то появляется вышеописанная ошибка.
Она же, я полагаю может появиться если просто будет очень много сделок
и сделаем заново вывод по дде.
private void CloseAllOrd()
{
for (int i = Limits.Count() - 1; i >= 0; i--)
{
Order ord = Limits;
if (ord.State == OrderStates.Active)
CancelOrder(ord);
}
for (int i = this.StopOrders.Count() - 1; i >= 0; i--)
{
Order ord = this.StopOrders;
if (ord.State == OrderStates.Active)
CancelOrder(ord);
}
count = 0;
foreach (MyOrderss x in Trades)
{
if (x.Direction == OrderDirections.Buy) count +=
x.Volume;
if (x.Direction == OrderDirections.Sell) count -=
x.Volume;
}
if (count > 0)
{
var order = new Order
{
Account = acc,
Volume = count,
Security = secur,
Price = secur.BestBid - otst *
secur.MinStepSize,
Direction = OrderDirections.Sell,
Type = OrderTypes.Limit,
};
this.Trader.RegisterOrder(order);
ВремяОтмены = DateTime.Now;
}
if (count < 0)
{
var order = new Order
{
Account = acc,
Volume = -count,
Security = secur,
Price = secur.BestAsk + otst *
secur.MinStepSize,
Direction = OrderDirections.Buy,
Type = OrderTypes.Limit,
};
this.Trader.RegisterOrder(order);
Я правильно понял, что ошибка появляется не только в процессе работы
(продолжительной или не совсем), а даже тогда, когда Вы перезапустили
робота (вот тут уточняю, робота или ДДЕ) и сразу же получили ошибку?
Насчет большого объема заявок - не думаю. Таблица всех сделок содержит
такое количество заявок, что никакому роботу не создать такое
количество. И ничего, у все экспортируется на раз. Тем более, что при
перезапуске ДДЕ сделки, которые уже вызывались через событие
NewTrades, не будут более вызываться.
Ошибка вернулась)
В таблице "мои сделки" 50 ордеров, в таблице "Заявки" 80 ордеров. 23
стоп заявки
Включаю экспорт дде, экспортируются только стоп заявки, остальное
пусто.
Причем пробовал как своего робота, так и Ваши примеры..результат один.
Всяческие перезагрузки тоже результата не дали.
Не успел вчера проверить...
будем ждать следующего раза)
Wir verwenden Cookies, um die beste Erfahrung auf unserer Website zu gewährleisten. Durch die weitere Nutzung unserer Seite stimmen Sie der Verwendung von Cookies zu.
Kommentare (16)
Anmelden oder Konto erstellen, Melden Sie sich an oder registrieren Sie sich, um einen Kommentar zu hinterlassen
Создать свой собственный контрол. Те, что входят в S# такого не умеют. И я пока не думаю их развивать. Фактически, они появились благодаря тому, что они потребовались в нескольких примерах. Вот код OrderGird:
EcngXaml:GridViewSort.PropertyName="Balance"> <GridViewColumn.CellTemplate>
<TextBlock Text="" TextAlignment="Right" /
EcngXaml:GridViewSort.PropertyName="Price"> <GridViewColumn.CellTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate.Triggers>
</DataTemplate.Triggers>
</GridViewColumn.CellTemplate>
<GridViewColumn.CellTemplate>
<DataTemplate.Triggers>
</DataTemplate.Triggers>
</GridViewColumn.CellTemplate>
</ListView.View>
///
/// Визуальный контрол-таблица, отображающая заявки (коллекцию
объектов класса ).
///
public partial class OrderGrid
{
///
/// Создать объект класса .
///
public OrderGrid()
{
this.Orders = new SynchronisedObservableList();
InitializeComponent();
}
SelectionChangedEventArgs e) { this.OrderSelected.SafeInvoke(this); } }
Спасибо. А может быть исходник этого компонента сможете выложить? Впервые сталкиваюсь с созданием компонентов в шарпе,потому исходник компонента очень поможет в разборе ситуации....
Хотя уже не надо, разобрался. Спасибо
А это и был исходник.
Теперь вот какая ошибка появилась, которая возникает при дде экспорте данных если имеется много ордеров
Необработанное исключение типа "System.StackOverflowException" произошло в Ecng.Xaml.dll
Подскажите, в чем может быть дело?
Теперь возниклает вот какая проблема Когда много ордеров имею, то выскакивает вот эта ошибка при включении дде экспорта:
Необработанное исключение типа "System.StackOverflowException" произошло в Ecng.Xaml.dll
Подскажите, где копать?
Судя по всему, переполнение стека (много вызовов). А что сделали? Можете локализовать и послать исходники с багой?
Эта ошибка возникла из за моей ошибки: робот начинает открывать очень большое количество ордеров(это мой баг), соответственно в таблице "мои сделки" очень много строк и из за этого возникает данная ошибка. Вот код моей вредоносной процедуры(не исправленной) Эту процедуру делал для закрытия ордеров к определенному времени, она вызывается на каждом тике после заданного времени. И косяк здесь в том, что пока робот открывает рыночный ордер, противоположный тому, что сейчас есть в рынке, эта процедура заново вызывается и открывается еще один противоположный и таким образом получается очень много сделок, привод зависает, а когда заново его включаю и начинаю делать дде вывод, то появляется вышеописанная ошибка. Она же, я полагаю может появиться если просто будет очень много сделок и сделаем заново вывод по дде.
private void CloseAllOrd() {
CancelOrder(ord); } for (int i = this.StopOrders.Count() - 1; i >= 0; i--) { Order ord = this.StopOrders; if (ord.State == OrderStates.Active) CancelOrder(ord); }
x.Volume; if (x.Direction == OrderDirections.Sell) count -= x.Volume; }
secur.MinStepSize, Direction = OrderDirections.Sell, Type = OrderTypes.Limit, }; this.Trader.RegisterOrder(order); ВремяОтмены = DateTime.Now; } if (count < 0) {
secur.MinStepSize, Direction = OrderDirections.Buy, Type = OrderTypes.Limit, }; this.Trader.RegisterOrder(order);
Я правильно понял, что ошибка появляется не только в процессе работы (продолжительной или не совсем), а даже тогда, когда Вы перезапустили робота (вот тут уточняю, робота или ДДЕ) и сразу же получили ошибку?
Насчет большого объема заявок - не думаю. Таблица всех сделок содержит такое количество заявок, что никакому роботу не создать такое количество. И ничего, у все экспортируется на раз. Тем более, что при перезапуске ДДЕ сделки, которые уже вызывались через событие NewTrades, не будут более вызываться.
Да, совершенно верно. Ошибка появлялась даже если я полностью перезагружал робота и даже квик. И даже комп)
Ошибка вернулась) В таблице "мои сделки" 50 ордеров, в таблице "Заявки" 80 ордеров. 23 стоп заявки Включаю экспорт дде, экспортируются только стоп заявки, остальное пусто. Причем пробовал как своего робота, так и Ваши примеры..результат один. Всяческие перезагрузки тоже результата не дали.
Так может это просто потому, что в новой версии поменялся формат таблиц Квика? Вы сейчас на какой версии?
Сейчас пробую все на 1.6 до 1.7 пока ничего не обновлял...
Забыл добавить, никаких ошибок квик и робот не выкидывают Там где начинаем дде вывод сделал так
try {
сервер"); }
Никаких ошибок не возникает, мессадж бокс не выскакивает..
QuikTrader.DdeError что пишет?
Не успел вчера проверить... будем ждать следующего раза)