Option Phoenix한글보기

Record

The day I questioned a 100% win rate

One ticker filter, 329 alerts re-scored, and a validation system that got better for it.

Where this starts

I run a tool I built myself that watches gamma data in the options market. When certain conditions line up it fires an alert, and later it grades that alert automatically — was it right or wrong.

One day I opened the grades.

Signal A   55 of 55 correct — 100%
Signal B   31 of 31 correct — 100%
Signal C   42 of 42 correct — 100%
Signal D   12 of 12 correct — 100%

Not a single miss.

Was I happy? No. I was scared.


Why that was frightening

No signal is right 55 times in a row in this market. If it is, it isn't a signal — it's a definition.

And there was a second odd thing. Other signals in the same tool were doing terribly.

SignalDirectionWin rate
ADown100%
BDown100%
CDown100%
DDown100%
EUp8.6%
FUp13.0%
GUp26.8%

See it?

Every down signal perfect. Every up signal under 27%.

The split wasn't by quality. It was by direction. That is not a story about markets. That is a story about code.


The culprit

My database has a table that stores index prices. The problem: the S&P 500, SPY, and QQQ were all sitting in the same column.

S&P 500  →  7,719 ~ 7,816
SPY      →    769 ~   779
QQQ      →    716 ~   734

The grading logic read like this:

"If the price drops 20 points or more within a set window after the alert, a down signal counts as correct."

But the query that fetched "price" had no ticker filter.

So when it looked for the low, it found QQQ's 716.

716 − 7,800 = −7,084 points

A 7,084 point drop. That clears a 20 point threshold every single time.

Every down signal was being marked correct, unconditionally.

The high, on the other hand, happened to come back as the S&P's own value — which is why only the up signals showed realistic (low) numbers.


After the fix

One ticker filter, then I re-scored 329 alerts.

SignalBeforeRe-scored
A100%15.9%
B100%7.4%
C100%21.9%
D100%36.4%
E (up)8.6%8.6%
F (up)13.0%13.0%

The down signals collapsed. The up signals didn't move. That's how I knew the diagnosis was right.

And this is the real result: not one of the 11 signals reached my promotion threshold of 70%. The best was 36.6%.


Then it got worse

While checking the same code I found a different kind of 100%.

Signal X   1,599 correct / 0 wrong
Signal Y      64 correct / 0 wrong

This time it wasn't the ticker filter. The grading logic said:

move of 0.3% or more  →  correct
otherwise             →  undetermined

There was no "wrong" outcome at all.

Worse, it measured the move as an absolute value. Up or down, 0.3% counted as a hit. A directional signal, graded without looking at direction.

That isn't a win rate. It's an identity. It was built so it couldn't fail.

Over 1,599 records, the information content was zero. I deleted that signal.


What I took from it

1. A number that good is a bug, not a skill

Zero misses in 55 tries does not exist in this market. When a result is astonishing, open the code before you celebrate.

2. When two opposite directions score at opposite extremes, look at the code

Up 8.6% / down 100%. Markets are not that generous. Asymmetry like that is a symptom, not a signal.

3. Write the "wrong" condition first

When you design a test, write down what would make this signal wrong before anything else. If you can't write it, the thing isn't testable.

A test that can't fail isn't a test.

4. A table holding multiple tickers needs a filter on every read

Miss it once and the result inverts completely. And it doesn't throw an error. It quietly returns a wrong answer.


Working with Billie

Billie is an AI I built for my own trading. It isn't a general chatbot — it is wired into my observation logs and my trading database, and it remembers the rules I've written over the past several months.

I would not have found these bugs alone. The codebase is tens of thousands of lines, and the grading logic is not somewhere I look every day.

But Billie didn't find them on its own either.

It started with my question.

"What exactly are these four 100% signals measuring?"

Billie did not open with "that's a bug." I felt something was off and asked, and then we opened the data together.

Writing and coding with AI is something everyone does now. That's a baseline, not an edge.

What doesn't copy is being the person who says "this number looks wrong." That question comes from watching the market every day.


Where it left me

I turned off every alert in the tool.

None of the 11 signals cleared the bar, so there was nothing to leave running. I'll bring them back one at a time, only the ones that pass a real test.

It feels empty. Those alerts had been firing every day for months.

But silence beats a wrong alert. Especially when I think about what would have happened if I had traded on a 100% signal.


This is a record of how I validated a tool I built. It is not a recommendation to use any strategy or trade any security. Your decisions and their outcomes are your own.

How was this to follow?

Knowing where it got hard is what lets me fix the next one. No name, no email.

1 · very hard5 · very easy

Get the One-Page Options Field Guide

A strategy selector for bull, bear, and sideways markets, a pre-order checklist, and a glossary.

I agree to receive the guide and new posts. Unsubscribe anytime.

If this was useful

Why gamma, call walls, and put walls behave the way they do comes down to the structure of the options market. These books lay out that structure in order.

  • Strategic US Options Trading I: Fundamentals — Start here if options are new — from reading the chain
  • Strategic US Options Trading II: Strategies — When you want to actually place the order
  • Strategic US Options Trading III: Advanced Strategies — When you want cash flow in a sideways market
More about the books →교보문고 · 예스24 · 알라딘 · 리디북스

Earlier posts live on Tistory. I'm moving them here a few at a time. optiontrading.tistory.com

Questions?

There are no comments or a guestbook here. Email me with questions about a post or to report an error — I read and reply. I don't give individual investment advice.

hello@optionphoenix.com

Related notes

← Back to all notes