Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create signal quality test #9

Open
milktrader opened this issue Mar 19, 2014 · 2 comments
Open

Create signal quality test #9

milktrader opened this issue Mar 19, 2014 · 2 comments

Comments

@milktrader
Copy link
Member

Suppose a long-only signal is in the market for 100 of 300 days.

The null hypothesis is that profit (or some other metric) from this signal are no better than chance.

I suppose the first pass should build a distribution from any random 100 values from 300, but maybe duration of consecutive days should be accounted for in drawing random samples (i.e., the signal was long for two periods, 80 days and 20 days, so the random draws should be subject to this constraint of consecutive days without replacement).

@milktrader
Copy link
Member Author

There probably should be some naive (and impossible) assumptions about getting filled, etc with this test. The signal typically closes with the last print at which point it's not possible to get filled at that price. Essentially, the test assumes that you predict the signal with 100% accuracy and get filled at the closing price, regardless of whether that's even possible given the bid/ask nature of markets.

Modeling orders is a whole different enterprise than the goals of this test, which is a very rough first pass on whether a signal can identify a structure, or is no better than random.

@milktrader
Copy link
Member Author

If returns are to track when signal is true then the special case when a signal is true on the last observation needs to be accounted for. Clearly, a next-day return cannot be attached to this signal since it's unknown. Given this, all signals (the one being tested and random ones) should assign the last observation to either

  1. last signal to false
  2. last return to 0

I'm inclined to the first option.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant