Лучший бид больше или равен лучшему офферу

Лучший бид больше или равен лучшему офферу
Atom
13.09.2013
vk37


Вот такая ошибка при сохранении данных. Получается, что смартком может присылать некорректные стаканы? Почему-то перестали приходить оповещения о новых сообщениях в форуме. Адрес в профиле правильный, на оповещения подписан. ```plain 2013-09-13 18:40:17,786 [ 9] ERROR - Ошибка при сохранении маркет данных System.ArgumentException: Лучший бид 142,35 больше или равен лучшему офферу 142 во время 13.09.2013 18:40:15. Parameter name: depths at #=qDQE6UFyxY9ev55BGfq1mkCmubxEixGG2yBIZlqLtpQ9bmJpQ_GquL8XpvvBN9PSq.#=qtWdK3nDdnk6xQfwORvHBNw==(List1 #=q8nuRg9VchYxAVYe7yyrhuQ==, IEnumerable1 #=qsPBBtgh68UJlE5Hw$TkT7A==, #=qYfTpvUh_jC5dOKfp3oA$a$b$FJD2k3o9Jrb8w9CInySnbfsO0HQf4ln5h79dbxa8 #=qFR9phsNymisrVabddAd8OA==) at #=q_jpGTnhSCdiEhHJ6se4J0IFa5Dmw1ez$m$ORCOBZEjTcPUi5PKQNimMyWYwfvNo4x842oQR1_AGB9ugNEekkrw==.#=qIoakeHStFXUa2AHCKtSOdZUvLDrFa4Orpyv$_jkkOJmspCOVdBbkJ_UokHOyfuzmxFGNWIcprDrFx0Kc1H6FB1G_4jZdZZMNSEyjMqTAI_g=(IEnumerable1 #=q5TZ1SjQvukY$5hj_YJh91g==, #=qiWb_GdPXBy57hPO7nT63wW_uh6O$TZiVwWzTtXcvawJAE4P$HFJhh3wqkIqbTt83 #=qiwN6UlyUAOoKQeRJOx_xpQ==) at #=qp3zGpbG2i9SNLszeVqQkh7K4ALyVkGrB7KX$cWHAuCKUvZuPq9EsKdkoQs7huFyk.#=qBd4q2YIIXt6UtEskScJftA==(DateTime #=quT0M19H4t_1w1ds02km1fg==, #=q1_a1b6wY1uBf_KE6EGlYwQ==[] #=qtUGZg56jTQSVda3SXiflQQ==, Boolean #=qvUxXIOqEaak08Vrzl7CggQ==) at #=qp3zGpbG2i9SNLszeVqQkh7K4ALyVkGrB7KX$cWHAuCKUvZuPq9EsKdkoQs7huFyk.Save(IEnumerable1 #=q_JfroTjjq7EKzmSUl2CfHA==) at AlgoTrading.Hydra.Model.SaveManager.SaveMarketDepths() in c:\Users\Vladimir\AppData\Local\Temp\AlgoTrading\Build Process Data\Export\SourceCode\Applications\AlgoTrading.Hydra\Model\SaveManager.cs:line 184 at AlgoTrading.Hydra.Model.SaveManager.b__3(Object sender, DoWorkEventArgs args) in c:\Users\Vladimir\AppData\Local\Temp\AlgoTrading\Build Process Data\Export\SourceCode\Applications\AlgoTrading.Hydra\Model\SaveManager.cs:line 82 at System.ComponentModel.BackgroundWorker.OnDoWork(DoWorkEventArgs e) at System.ComponentModel.BackgroundWorker.WorkerThreadStart(Object argument)


Теги:


Спасибо:


vk37

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


Забавно еще что условие на исключение такой ситуации в коде есть:```csharp foreach (var marketDepth in marketDepths) { if (marketDepth.Bids == null || marketDepth.Asks == null || marketDepth.BestAsk == null || marketDepth.BestBid == null) continue;

if (marketDepth.Bids.Length == 0 || marketDepth.Asks.Length == 0)
    continue;

//!!!!! Вот это условие !!!!!
if (marketDepth.BestAsk.Price <= marketDepth.BestBid.Price)
    continue;

_saveManager.MarketDepths.Enqueue(marketDepth);

}

Спасибо:

Mikhail Sukhov

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


Потому что объект MarketDepth переиспользуется. Нужно клонировать. И используйте Гидру. Она за долгое время научилась уже фильтровать такие косяки.

Спасибо: vk37


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

loading
clippy