Делаю нехитрую операцию выделения крупных заявок в стакане и возникла проблема с получением всех бидов и асков в стакане. Сначала я запоминаю суммарные биды и аски и потом прохожу весь стакан, дабы найти крупные заявки. Но вот в чем дело: в цикле значения TotalBids(Asks)Volume с каждой новой Quote изменяются. В чем дело здесь может быть ?
int bids = InstrumentDepth.TotalBidsVolume;
int asks = InstrumentDepth.TotalAsksVolume;
double part=0;
foreach (Quote Quote in InstrumentDepth)
{
if (Quote.OrderDirection == OrderDirections.Buy)
part = Quote.Volume / bids;
else if (Quote.OrderDirection == OrderDirections.Sell)
part = Quote.Volume / asks;
if ((part) > 0.5) BigButt.Add(Quote.Price);
}
Комментарии (14)
Вход или Создать аккаунт, Войдите или зарегистрируйтесь, чтобы оставить комментарий
Я правильно понял что значение переменных bids и asks разные в цикле? 🤨
ну типа того : в процессе обхода циклом коллекции, с каждым следующим элементом TotalBids или AskVolume изменяются.
Как это проверяете? По коду это не ясно.
Так все таки "Типо того" или может быть вы смотрите не bids и asks, а InstrumentDepth.TotalBidsVolume и InstrumentDepth.TotalAsksVolume?
В Visual Studio ставлю точку остановки перед циклом и пошагово по нему прохожу, просматривая значения переменных.
Можно видео \ gif файл, где будет видно?
Вставьте в цикл foreach распечатку bids и asks и покажите здесь.
Если все таки bids и asks меняются то это ломает саму архитектуру C# . int - является типом значений и в данном куске кода меняться bids и asks просто не могут! http://msdn.microsoft.com/ru-ru/library/s1ax56ch(v=VS.90).aspx
😀 Извините не удержался...
Подозреваю , что запись int bids = InstrumentDepth.TotalBidsVolume; является лишь ссылкой на поле ToTalBidsVolume и наверное при изменении поля меняется и значение переменной bids, т.к. оба в одном месте в памяти располагаются. Но почему-то приведение к структурному типу все равно не меняет ничего. int bids = (int)InstrumentDepth.TotalBidsVolume; Видео попробую выложить в понедельник, ибо исходники на работе остались...
зы. frontman не надо придираться так к словам, оборот "типа того" бывает паразитирует мою речь ) Прежде чем постить я несколько раз проверял эти значения и asks(bid) и TotalAsks(Bid)Volume.
Неверно в корне.
Подозреваю проблема в том, что стакан успевает изменятся в процессе отладки.
Да нет не придираюсь правда. Просто эти слова у меня вызывают чувство неуверенности и неопределенности. А насчет того что int - является ссылкой... Я вам кидал ссылку на MSDN. Там написано все...
Михаил, вы были правы , стакан успевал изменяться в процессе отладки. Проблема решилась как-то сама собой) Извиняюсь за беспокойство)