予測市場戦略の単一市場ポジション制限は常に機能しない問題を何度も修正してきましたが、原因を特定できませんでした。
今日ついに根本原因を見つけました:注文タイプの選択ミスです。
問題の現象
H12天気戦略はリリース以来、2つの奇妙なバグがあります:
1. 単一市場のポジションが常に$10 制限を超える
2. 32件の注文を出したが、成立したのは0件(成立率0%)
最初はロジックの問題だと思い、重複排除関数、ポジション計算、注文状態のチェックなどを調査しましたが、問題ありませんでした。コードの観点から見ても正しいはずです。
しかし、実運用では全く効果がありませんでした。
根本原因の診断
コードを見直すと、私はずっとIOC (即時成立またはキャンセル)の注文を使っていました。
IOCのロジックは:注文後すぐに注文簿と照合し、マッチしなければキャンセルするというものです。
これにより、2つの問題が発生します:
• ポジション超過:IOC注文は即座にキャンセルされるため、pending状態に留まらず、重複排除のチェックが効かなくなる(注文を検知できない)。そのため、戦略は同じ市場に対して同じスキャン周期内に繰り返し注文を出してしまう。
• 成約率0%:天気市場は流動性が低いため、注文簿はしばしば空であり、IOC注文はすぐにキャンセルされる。
原文表示