2008年12月19日金曜日

夕場まで通して見れるようになった

売買が成立した時の値を歩み値として記録していく上で、FutureData.CurrentPriceStatusの値によるデータの選別の仕方が良く分からないので、今まで
fsdRwl.EnterUpgradeableReadLock();
try {
if (seq.Footer.Prev[0].IsHeader ||
(seq.Footer.Prev[0].Item.Performance < item.Performance
&& seq.Footer.Prev[0].CompareTo(item) < 0)) {
fsdRwl.EnterWriteLock();
try {
try {
seq.Insert(item);
} catch (InvalidOperationException) {
//showTrace("Confliction!");
}
} finally {
fsdRwl.ExitWriteLock();
}
}
} finally {
fsdRwl.ExitUpgradeableReadLock();
}
こういうコードを書いていた。なお、最終時刻より時刻が真に増加した場合にのみ追加するコードになっているので、ロジカルにはInvalidOperationExceptionのキャッチは要らない。

で、これだと後場から夕場までを通してみる事ができない。一度出来高がリセットされるから。
というわけで選別する条件を
seq.Footer.Prev[0].IsHeader ||
(seq.Footer.Prev[0].Item.Performance != item.Performance
&& seq.Footer.Prev[0].CompareTo(item) < 0)
に直した。これで夕場まで通して見れるようになった。

2 件のコメント:

匿名 さんのコメント...

Test
test

匿名 さんのコメント...

test