Непонятки с MarketDepth.TotalBids(Asks)Volume
Atom Ответить
23.09.2011


Делаю нехитрую операцию выделения крупных заявок в стакане и возникла проблема с получением всех бидов и асков в стакане. Сначала я запоминаю суммарные биды и аски и потом прохожу весь стакан, дабы найти крупные заявки. Но вот в чем дело: в цикле значения 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 Ответов
Alexander

Фотография
Дата: 23.09.2011
Ответить


Я правильно понял что значение переменных bids и asks разные в цикле? Confused
Спасибо:

Dottz

Фотография
Дата: 29.09.2011
Ответить


ну типа того : в процессе обхода циклом коллекции, с каждым следующим элементом TotalBids или AskVolume изменяются.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 29.09.2011
Ответить


Dottz Перейти
ну типа того : в процессе обхода циклом коллекции, с каждым следующим элементом TotalBids или AskVolume изменяются.


Как это проверяете? По коду это не ясно.
Спасибо:

Dottz

Фотография
Дата: 30.09.2011
Ответить


В Visual Studio ставлю точку остановки перед циклом и пошагово по нему прохожу, просматривая значения переменных.
Автор топика
Спасибо:

frontman

Фотография
Дата: 30.09.2011
Ответить


Alexander Перейти
Я правильно понял что значение переменных bids и asks разные в цикле? Confused

Dottz Перейти
ну типа того : в процессе обхода циклом коллекции, с каждым следующим элементом TotalBids или AskVolume изменяются.


Так все таки "Типо того" или может быть вы смотрите не bids и asks, а InstrumentDepth.TotalBidsVolume и InstrumentDepth.TotalAsksVolume?
Спасибо:

frontman

Фотография
Дата: 30.09.2011
Ответить


Если все таки bids и asks меняются то это ломает саму архитектуру C# . int - является типом значений и в данном куске кода меняться bids и asks просто не могут!
http://msdn.microsoft.com/ru-ru/library/s1ax56ch(v=VS.90).aspx
Спасибо:

Alexander

Фотография
Дата: 30.09.2011
Ответить


Dottz Перейти
В Visual Studio ставлю точку остановки перед циклом и пошагово по нему прохожу, просматривая значения переменных.


Можно видео \ gif файл, где будет видно?
Спасибо:

frontman

Фотография
Дата: 30.09.2011
Ответить


BigGrin Извините не удержался...
Спасибо:

frontman

Фотография
Дата: 30.09.2011
Ответить


Alexander Перейти
Dottz Перейти
В Visual Studio ставлю точку остановки перед циклом и пошагово по нему прохожу, просматривая значения переменных.


...gif файл...

Александр жжете))
Спасибо:

Alexander

Фотография
Дата: 30.09.2011
Ответить


Dottz Перейти
В Visual Studio ставлю точку остановки перед циклом и пошагово по нему прохожу, просматривая значения переменных.


Вставьте в цикл foreach распечатку bids и asks и покажите здесь.
Спасибо:

Dottz

Фотография
Дата: 30.09.2011
Ответить


Подозреваю , что запись int bids = InstrumentDepth.TotalBidsVolume; является лишь ссылкой на поле ToTalBidsVolume и наверное при изменении поля меняется и значение переменной bids, т.к. оба в одном месте в памяти располагаются. Но почему-то приведение к структурному типу все равно не меняет ничего. int bids = (int)InstrumentDepth.TotalBidsVolume;
Видео попробую выложить в понедельник, ибо исходники на работе остались...

зы. frontman не надо придираться так к словам, оборот "типа того" бывает паразитирует мою речь ) Прежде чем постить я несколько раз проверял эти значения и asks(bid) и TotalAsks(Bid)Volume.
Автор топика
Спасибо:

Mikhail Sukhov

Фотография
Автор статей Программист Трейдер
Дата: 30.09.2011
Ответить


Dottz Перейти
Подозреваю , что запись int bids = InstrumentDepth.TotalBidsVolume; является лишь ссылкой на поле ToTalBidsVolume


Неверно в корне.

Подозреваю проблема в том, что стакан успевает изменятся в процессе отладки.
Спасибо:

frontman

Фотография
Дата: 03.10.2011
Ответить


Да нет не придираюсь правда. Просто эти слова у меня вызывают чувство неуверенности и неопределенности.
А насчет того что int - является ссылкой... Я вам кидал ссылку на MSDN. Там написано все...
Спасибо:

Dottz

Фотография
Дата: 04.10.2011
Ответить


Михаил, вы были правы , стакан успевал изменяться в процессе отладки. Проблема решилась как-то сама собой) Извиняюсь за беспокойство)
Автор топика
Спасибо:


Добавить файлы через драг-н-дроп, , или вставить из буфера обмена.

loading
clippy