Снова стакан
Atom Ответить
01.07.2010


Иногда в стакане BestBid.Price или BestAsk.Price равны нулю. Стаканы
яполчаю в конструкторе и для рассчета текущих сигналов использую
только их
вот код

public BasketSignalCalculator(TradedBasket basket, TikerController
tikerController, bool isSigmaCalculated)
{
this.isSigmaCalculated = isSigmaCalculated;
this.trader = tikerController.Trader;
this.basket = basket;
this.tikerController = tikerController;
leftSideMD =
trader.GetMarketDepth(trader.Securities.First(sec =>
sec.Code == basket.Basket.LeftSide[0].Asset.Name));
rightSideMDs =
trader.GetMarketDepth(trader.Securities.First(sec =>
sec.Code == basket.Basket.RightSide[0].Asset.Name));
}

вот код одного из методов

public decimal CalcSumCurrentBids()
{
decimal delta = 0;
foreach (TradedBasketItem tradedBasketItem in
basket.CurrentPart.RightSide)
{
decimal koef = GetTikerKoef(tradedBasketItem.Tiker);
double bid = rightSideMDs.BestBid.Price;
delta = delta + bid * tradedBasketItem.Weight * koef;
if (delta <= 0)
{

TradeBasketHelperLogger.Logger.Debug(String.Format("Delta = 0, koef =
{0}, BB = {1}, TotalVol = {2}, TotalPrice {3}", koef, bid,
rightSideMDs.TotalVolume, rightSideMDs.TotalPrice));
}
}
return delta;
}

и вот лог

14:06:57,421 - Delta = 0, koef = 1, BB = 0, TotalVol = 667149,
TotalPrice 1487,4
14:09:05,515 - Delta = 0, koef = 1, BB = 0, TotalVol = 659359,
TotalPrice 1486,44
14:10:23,468 - Delta = 0, koef = 1, BB = 0, TotalVol = 522221,
TotalPrice 1486,02

что это за глюк и как с ним бороться?


Теги:


Спасибо:




17 Ответов
Mikhail Sukhov

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


Может быть банально еще не пришел экспорт? Или это в середине работы
случается?

Спасибо:

Tauler

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


и вот еще

14:27:57,078 - Delta = 0, koef = 1, BB = 0, TotalVol = 0, TotalPrice 0
14:28:15,953 - Delta = 0, koef = 1, BB = 0, TotalVol = 0, TotalPrice 0
14:28:18,078 - Delta = 0, koef = 1, BB = 0, TotalVol = 520064,
TotalPrice 1489,09

в середине, в том то и беда. метод CalcSumCurrentBids() вызываеся в
цикле весьма часто (как видно по тайм стампам), десять раз в секунду
точно

Автор топика
Спасибо:

Tauler

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


вот секция из info.ini

[excel]
timeout=90
price-timeout=0
start-timeout=100
use-multithread=1
num-attempts=0
language_id=0

может price-timeout = 0 не надо делать?

Автор топика
Спасибо:

Tauler

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


Я кстати правильно делаю, что создаю переменную сткана в
конструкторе , кладу ее в поле и потом пользую? не надо какжый рах
trader.GetMarketDepth() использовать?

Автор топика
Спасибо:

Tauler

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


И вот вопрос - щас покурил мануал и что лучге использовать -
MarketDepth.BestAsk или MarketDepth
GetBestQuote(OrderDirections.Sell)?

Автор топика
Спасибо:

Mikhail Sukhov

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


Минутку, а как данные в эти стаканы попадают?

Спасибо:

Mikhail Sukhov

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


Отбой, я понял о чем идет речь.

Спасибо:

Mikhail Sukhov

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


Второе вызывает первое.

Спасибо:

Mikhail Sukhov

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


Частота не зависит... А можете сократить код до простого примера в 10
строчек?

Спасибо:

Tauler

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


Да грубо говоря так

MarketDepth md = trader.GetMarketDepth(security);

while(true)
{
Console.WriteLine(md.BestAsk.Price);
Thread.Sleep(10);

Автор топика
Спасибо:

Mikhail Sukhov

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


Ок, посмотрю чуть по-позже. Надо еще глянуть на частоту обновления
инструментов... Главное, чтобы этот код точно приводил к баге.

Спасибо:

Tauler

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


Иожно вообще слип убрать и отлавливать моменты когда бестбид или
бестаск равны 0. еще вот я заметил тоталволюм парур раз 0 проскакивал.

вероятно если подписаться на событие QoutesChanged таког не будет, н
оу Workflow со событиями как то не айс работа, на то он и flow.

Автор топика
Спасибо:

Tauler

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


а MarketDepth потокобезопасный? может я в него лезу как раз в тот
момент , ктога он обновляет эти свойства?

Автор топика
Спасибо:

Mikhail Sukhov

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


Потокобезопасный.

Спасибо:

Mikhail Sukhov

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


Две новости. Хорошая - у меня работает. Плохая (но не для меня) - у
меня версия 2.1. Вот так =)

Действительно, посмотрел старый код. Такое поведение могло быть.
Обновление котировок было не атомарно.

Спасибо:

Tauler

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


а долго ожидать релиза 2.1?

Автор топика
Спасибо:

Mikhail Sukhov

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


Я в процессе документирования. Думал на этой неделе сделаю, а у вас
все проблемы да проблемы... Думаю 2-3 дня.

Спасибо:


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

loading
clippy