クオンツ戦略の検証方法
live でも rejected でも、残す項目は同じ。見出しの数値はグリッド全体の中央値。
正直なスコアカード
公開されているクオンツの話は、ほぼ勝ち戦略だけを売る。qbuntu は live / promising / marginal / rejected の全部を、結果が良くても悪くても同じ証拠で残す。この領域に欠けているのは、 バックテストを通ることと、本番で儲かることは別だという記録。live も勝利宣言はしない。rejected が失敗を説明するのと同じ指標、同じ方法、同じ留保を載せる。
ベストランではなく中央値を出す理由
戦略は一つのバックテストではない。数百通りのパラメータのグリッドだ。その中の最良を見出しにすると、見栄えがして再現しない数字を選ぶことになる。qbuntu の見出しはグリッド全体の中央値。期待してよいのはこちら。最良値も残すが、代表値ではない上限として明示する。
短期リバーサル(東証グロース)。パラメータ 320 通り。
同じデータ。Sharpe 1.98 を見出しにすると正しくて役に立たない。中央値 0.30 が、この戦略について引用して間違えない数字。
判定の付け方
判定も見出しと同じで、最良ではなく中央値のパラメータで決める。promising になるには、典型的なパラメータが二つの基準を同時に超える。 中央値 Sharpe が 0.5 を超え、かつその中央値の p-value が 0.05 未満。 エッジが最良パラメータにしかない戦略は marginal であり、promising ではない。marginal の条件は、中央値 Sharpe が 0.05 を超え、 グリッドのどこかの p-value が 0.10 未満。rejected はそれ以外。 中央値にエッジがないか、相場の局面をまたいで持たない。ほとんどの戦略はここになる。
東証の上場銘柄全体(約 3,747 銘柄、回転率フィルタなし)で標準的なファクターを回すと、 中央値で promising に届いたものは一つもなかった。最良パラメータは強く有意でも、 それを載せるのは勝ち戦略サイトのつまみ食いと同じ。正直な答えが marginal や rejected であること自体が、このプロダクトだ。
レコードの中身
- verdict — live / promising / marginal / rejected。不採用には理由コードが付く。
- performance_summary — 見出しは中央値の Sharpe、Max DD、alpha、p-value。単位はフィールド名に入っている(
max_drawdown_pct、alpha_annualized_pct)。単位を付けられない値は推測せずnull。 - grid_summary — 分布。組み合わせ数、中央値 / 最良 / 最悪 / p25 / p75。
- methodology — コスト、スリッページ、ポジションサイズ、レジーム、シグナル、リバランス、ベンチマーク。
- provenance — データ源と
computed_asof。数字には出どころがある。 - facts[] — 一つずつ引用できる主張。
/cite/<fact-id>は不変。単位と、その主張が成り立つ条件が付く。
機械可読の契約は /v1/schema(JSON)。 各戦略には /ai/strategies/<slug>.md と /v1/strategies/<slug> がある。
自分の結果を載せる
この JSON を手で書く必要はない。アイデアかバックテストを持ってくると、qbuntu 側の AI が上のスキーマに正規化する。 だからレコードは比較でき、同じ正直さのルールに乗る。書式は記入欄ではなく、全部がそこに収束する形だ。
投稿が既にある戦略の再現だった場合、重複としては捨てない。既存の判定を支持するか否定するかの再現として相互リンクする。独立した再現は結果を強くする。 コミュニティのレコードは出自が別で、qbuntu が検証したものとは区別できる。