Testing fills with 1 minute data

Discussion in 'Data Sets and Feeds' started by mikkom, Dec 8, 2011.

  1. mikkom

    mikkom

    Hello,

    I'm trying to test a portfolio of strategies with longer term data and I only have 1 minute data.

    All my orders are limits (with some stops as security measures).

    What would be a reasonable way to model fills? For example for buys, I currently model a fill if the 1 minute bar low (I take spread into account so no need to remind me of that) is <= limit price but I think that might be too optimistic or is it? If I use < then I assume some of the fills that would happen in reality will not and this might mean that when more fills are done, the whole strategy changes.

    Any ideas?

    edit: And these are not "hft" strategies, the holding time is at least a minute (very rarely, this is a fixed minimum time), usually much longer (even months).
     
  2. If you assume the Limit Buy Orders fill if Last Traded Price <= Limit Price, you'll likely get an over-optimistic impression of the strategies performance (i.e. you'll think # trades, % winners, average trade, etc are all higher than they will likely be in reality). {A}

    If you assume the Limit Buy Orders fill if Last Traded Price < Limit Price, you'll likely get an over-pessimistic impression of the strategies performance (i.e. you'll think # trades, % winners, average trade, etc are all lower than they will likely be in reality). {B}

    In my expereinec though, unless you're HFT and colocated in the exchange so that you can guarantee the best queue position for all trades, real US equity fills will be closer to case {B} above.

    Also remember that while you might be able to get a better queue position for your entry orders (because perhaps you can submit your entry limit orders well in advance), you are less likely to have that luxury with target orders. So while you might think you can be closer to {A} with your entries, your targets will almost certainly be closer to {B}.
     
  3. You have one-minute data. Assume that if the price moves above/below your limit orders then you will get a fill. One penny above/below is probably fine as long as you don't have a limit out there for 1000 shares and the stock only printed 100shs a penny up/down.

    Just make sure that it traded more shares than your limit at least a penny above/below and you probably would have gotten filled.
     
  4. rosy2

    rosy2

    use <b><</b> and look at size traded
     
  5. Craig66

    Craig66

    Do you make sure the price has previously traded though the limit price before using the < print, or do you just use the first < regardless of previous prices?
     
  6. You will have a very rough gauge of the strategy but not even close on the execution.

    You really need tick data cause ask/bid diverge from last trade especially for thinner instruments. Just record ask/bid/last and you'll see ask and bid traverse the ladder looking for order matches. If you trade any size reflect against level II dom data.

    Problem with the consolidated data is it doesn't differentiate out of sequence orders. ie. issue with an order 10 minutes old gets resolved and records into the instant bar.

    Typically people advise you to let last trade price go through in testing but your creating an artificial fill bias.
     
  7. xbaha

    xbaha

    its simple:

    1. losing trades always get filled.
    2. quick winning trades will never fill.
    3. some winning trades will fill.

    if your PF is anything less than 3, forget it.