Добрый день,
Решал попробовать Ваш продукт АПИ подскажите плиз как мне получить стакан в виде строк?
Я так понял что код ниже это получает стакан
TraderOnMarketDepthsChanged(new[] { trader.GetMarketDepth(SecurityPicker.SelectedSecurity) }); trader.MarketDepthsChanged += TraderOnMarketDepthsChanged;
private void TraderOnMarketDepthsChanged(IEnumerable<MarketDepth> depths) { foreach (var depth in depths) { var wnd = _quotesWindows.TryGetValue(depth.Security);
if (wnd != null)
wnd.DepthCtrl.UpdateDepth(depth);
}
}
но как мне, например, записать его в файл ???
コメント (12)
ログイン または アカウントを作成, コメントを残すにはログインまたは新規登録してください
https://support.microsoft.com/ru-ru/kb/816149
спасибо за ссылочку, но как записывать я конечно понимаю....
вот то что я не могу понять это как из
trader.MarketDepthsChanged достать значения price и volume в виде строк или чисел, чтобы после записать их в файл ...
или я где то туплю :) ....
я достал эти данные с помощью следующего кода
НО к сожалению, тут я получаю только первый стакан ... а как я понимаю остальные обновления пишутся уже в trader.MarketDepthsChanged
Если я ошибаюсь поправьте меня ..
Через цикл freach пробегаете каждый квот и считываете цену и ко-во
спасибо, но вот именно как считать цену и количество я и не могу понять )) могли бы вы пример кода написать ...
и все равно, написал вот так и он не обновляется ((( MarketDepth x = trader.GetMarketDepth(sec); foreach (Quote depth in x) {
А вам с какой целью (если, цель, не заставить себя вспотеть кодом😀)? Если просто нужны стаканы к текстовом виде, то Гидра умеет их выгружать в csv.
я хотел в онлайн режиме анализировать стакан и от этого ордера ставить .... т.е. мне в double или decilmal сойдет, пишу в файл просто для того чтобы посмотреть что результаты .... ))) а что это так сложно сделать ?
Без знания C# - нереально. А у вас как раз это.
Вы, конечно, через неделю-другую научитесь писать в файл (без понимания самого процесса, просто как калька). Но дальше то все равно упретесь в потолок.
Дело, конечно, ваше. Но, имхо, усилия направлены в утиль.
время у меня есть ))) можете кальку дать ?
все есть тут. https://github.com/StockSharp/StockSharp/blob/master/Samples/Quik/Sample/SecuritiesWindow.xaml.cs тут смотрим стаканы
2 Иван )) да, я этот пример и пытаюсь модифицировать )))
в общем-то победа ))) спасибо за подсказку ... я нашел как это делать, хотя не понял почему у меня до этого не работало )) если интересно то код ниже
TraderOnMarketDepthsChanged(new[] ); trader.MarketDepthsChanged += TraderOnMarketDepthsChanged;
----------- а это TraderOnMarketDepthsChanged ----------------
private void TraderOnMarketDepthsChanged(IEnumerable<MarketDepth> depths) { IEnumerable<Quote> bids; decimal price; decimal volume;
foreach (var depth in depths) { var wnd = _quotesWindows.TryGetValue(depth.Security);
if (wnd != null) wnd.DepthCtrl.UpdateDepth(depth);
bids = depth.Bids.ToArray();
IEnumerator<Quote> ee = bids.GetEnumerator();
if (ee.MoveNext()) { price = ee.Current.Price; volume = ee.Current.Volume; string price_string = price.ToString(); string volume_string = volume.ToString();
System.IO.File.AppendAllText(@"C:\BCS_Work\QUIK\lua\data_usd_fut_br\WriteLines.txt", "start \r\n " + price_string + " " + volume_string + "\r\n");
while (ee.MoveNext()) { price = ee.Current.Price; volume = ee.Current.Volume; price_string = price.ToString(); volume_string = volume.ToString();
System.IO.File.AppendAllText(@"C:\BCS_Work\QUIK\lua\data_usd_fut_br\WriteLines.txt", price_string + " " + volume_string + "\r\n");
} System.IO.File.AppendAllText(@"C:\BCS_Work\QUIK\lua\data_usd_fut_br\WriteLines.txt", "end\r\n"); }
}
}