We have released a new sim server that has a new architecture to run sims much faster. This will enable us to do many things in the future, like daily ranking.
It also has a fix in the Rank->Performance tool. The Rank performance was using Friday’s close for the bucket’s performance calculations.This could introduce look-ahead biases. The new version uses Monday’s close. The rank performance runs do vary slightly in my tests, but it depends also on the factor nodes that you use (more short term price action nodes would have more impact)
I was pounding my head trying to figure out what error I had made to make one of my favorite weekly ranking systems performance decline from just a few days ago. I’m glad I saw this.
It’s always better to get more accurate data, even if stats are lower. Thnx.
Why is Monday's close better? I don't see the logic. What I do see is significant performance differences in some of my ranking systems (~ 10% annually).
Bill
What might make sense is to use Monday's open instead of Friday's close. But then we would need actual open prices for the entire data base (the early open prices are fictional).
In the absence of actual open prices I think it makes sense to approximate them by the nearest time-price opportunity. That would be Friday's close.
Please return the ranking system performance statistics to Friday's close until actual open prices are available, at which point switching to Monday's open makes sense.
Bill
We are going to add a dorpdown where you can choose the price. We won’t make friday’s open available because we’re also going to improve the open-price estimate prior to 2004 (the year they became available)
The current open price is filled in with (hi+lo)/2, but a better guess would be:
if prev-close between hi & lo
{
open = prev-close
}
otherwise (there was a gap)
{
if (prev-close) > hi // gap down
{
if close > (hi+lo)/2
{
// closed closer to hi price
// most likely a late rally
// after gapping down
open = low
}
otherwise
{
// gapped down and kept
// going lower
open = hi
}
}
otherwise // gap up
{
if close > (hi+lo)/2
{
// closed closer to hi price
// most likely continued to rally
// after gapping up
open = lo
}
otherwise
{
// lost steam after gapping up
open = hi
}
}
}
Please note that guessing the open price when missing is needed even if we find a way to backfill the Compustat database with open prices from InteractiveData.