Boyd・Busseti・Diamond・Kahn・Koh・Nystrup・Speth

予測から売買量と保有経路を決める

『Multi-Period Trading via Convex Optimization』詳細解説

利益を予測するモデルと、その予測を「いつ・どれだけ売買するか」へ変えるモデルを分ける。
この論文の中心は、後者をリスク・費用・現在の保有・将来の環境と一緒に解くこと。

1. 予測が同じでも、適切な売買は違う

上昇を予測していても、すでに大きなロングを持つ口座と、ノーポジションの口座では、同じ注文を出すべきとは限らない。さらに、短期上昇の後に下落を予測するなら、買った後に売り戻す費用まで考える必要がある。

著者が扱うのは、与えられた予測をどう使えばよいかという問題。予測シグナルの発見・学習自体は対象外である。[Abstract、§1、§4冒頭]

予測は入力。注文は、口座状態を含む判断の出力
将来予測値幅・リスク・費用→現在の口座保有・純資産・制約→最適化利益と負担を比較→今の注文維持・変更・反転

模式図:箱の幅は寄与率を示さない。

問いと答えの道順

① 上昇予測だけで買う量を決められるか?
決められない。現在の保有、リスク、売買・保有コストが必要。

↓ 今の一期間だけでは、将来の反対売買や流動性を評価しきれない

② 将来を考えると、今日の注文はどう変わるか?
将来のポジション経路と費用を含めて、今日の売買を選ぶ。

↓ 将来の予測は更新される。計画をそのまま実行すべきか?

③ 計画期間が、そのまま保有期限になるか?
ならない。最初の注文だけ実行し、次の時点で解き直す。

↓ 理論上の売買構造と、掲載成績の実用性は別に確認する

④ 多期間最適化の優位は、何を示しているか?
掲載例では良いフロンティア。ただし人工予測と追加の将来情報を使う。

図・矢印は説明の順序を示す模式図。因果関係の実証や研究の実施順序を示すものではない。

2. 探索・分析:売買判断の構造

2.1 単一期最適化:予測を「今の売買量」に変える

現在の保有から、ポートフォリオの価値を最も改善する変更量を選ぶ。予測の符号だけでなく、変更後のリスクと、変更そのものの費用を比較する。

max_z  r̂ᵀz − γrisk ψ(w + z)
             − γtrade φ̂trade(z)
             − γhold  φ̂hold(w + z)

subject to  1ᵀz = 0
            z ∈ 売買制約、w + z ∈ 保有制約

これは論文の実用的な単一期最適化(Single-Period Optimization)の式(4.9)。各項の役割は次のとおり。

売買量にかかる項と、保有量にかかる項
予測利益変更で得るリターン→売買コスト変更する量 z→リスク・保有費変更後の量 w + z

模式図:各項の尺度・重みは係数で調整。

この区別により、「今持っているロングを維持する」と「同量のロングを新しく作る」は、同じ取引後ポジションでも異なる判断になる。

定義・検証記録:ウェイト、売買量、制約、現金
  • 材料:原論文§2、§4、式(4.9)、本文p.43。
  • w:各資産・現金の保有額を、現在の純資産vで割った値。負の資産保有はショート、負の現金は借入。
  • z:売買額を同じ現在のvで割った値。購入はプラス、売却はマイナス。資産+現金のベクトル。
  • γrisk、γtrade、γhold:それぞれの項の強さを調整する係数。費用の実際の請求額そのものではない。
  • 保有制約:レバレッジ上限、銘柄別上限、現金下限、因子エクスポージャーなど。
  • 売買制約:売買量を予測市場出来高の一定割合以下にする、回転率上限、売買禁止など。
  • 計画内の1ᵀz = 0は、現金からの費用支払いを省略した近似。費用は目的関数には残る。実際の現金残高は実現費用を差し引いて更新する。
  • 厳密には、w + zは取引前の純資産で正規化した取引後保有量。費用を反映する厳密モデルでは合計が1とは限らず、近似モデルでは1となる。

2.2 コストを入れると、なぜ「動かない」が最適になるのか

上昇予測があるだけでは、取引費用を回収できるとは限らない。特に比例費用は、小さな保有変更の利益を打ち消し、現在のポジションを維持する領域を作る。

説明用の一銘柄モデル:
max_x  μx − (q/2)x² − a|x − x₀|

売買しない条件: |μ − qx₀| ≤ a
現在の保有から見た、限界利益の三つの領域
μ − qx₀ < −a売却して減らす→|μ − qx₀| ≤ a現在の保有を維持→μ − qx₀ > a購入して増やす

模式図:簡略一銘柄モデルからの導出。

「売買しない」は「ノーポジションにする」ではない。μ − qx₀は、今のポジションから保有を少し増やす限界利益。その絶対値が片道コストa以内なら、x = x₀のまま動かさない。

導出記録:売買しない領域は論文結果ではなく、簡略モデルからの導出
  • 対象:一銘柄+現金。その他の保有制約・保有費用は省略、q > 0。
  • x₀:現在の保有、x:取引後保有、μ:一期間の期待リターン、q:二次リスク罰則、a:片道比例コスト。
  • x = x₀での絶対値の劣勾配は[-1, 1]。最適条件は0 ∈ μ − qx₀ − a[-1, 1]。
  • 制約なしで閾値を超える場合、購入側はx = (μ − a)/q、売却側はx = (μ + a)/q。
  • 図は説明用の模式図。実市場で推定した閾値ではない。

大きな注文を抑えるコストは、別の効果

φtrade(u) = a|u| + bσ |u|^(3/2) / √V + cu

論文の代表的なモデル(2.2)は、比例コストに市場インパクト項を加える。uは注文額、Vは期間内の市場出来高。注文を大きくすると費用が比例以上に増え、流動性が低い期間ほど高くつく。

滑らかな二次費用などによる「少しずつ近づく」と、比例費用による「閾値以内は動かない」は、同じ性質ではない。[§2.3、§4.8]

2.3 多期間最適化:今日の取引が、明日以降の自分を困らせないか

単一期では、今日の入り口の費用は扱える。しかし、明日の予測が反対向きなら、今日作るポジションが明日の反転費用を増やす。多期間最適化(Multi-Period Optimization)は、この連結を明示的に扱う。

期間ごとの売買が、次の期間の保有を決める
現在の保有 w_t今日の注文 z_t→次の保有明日の注文 z_t+1→将来の保有その後の費用・制約

模式図:実測の価格経路ではなく、計画内の依存関係。

max  Σ[ r̂τ|tᵀ(wτ + zτ)
        − γτ ψτ(wτ + zτ)
        − φ̂holdτ(wτ + zτ) − φ̂tradeτ(zτ) ]

各期間:wτ+1 = wτ + zτ、1ᵀzτ = 0
        売買・保有制約を満たす
期間τ:t, …, t + H − 1

式(5.1)のポイントは、将来の保有経路を選ぶこと。r̂τ|tは「時点tの情報で作った、将来の期間τのリターン予測」であり、未来に観測する実績ではない。

定式化記録:何が単一期と違い、何が近似か
  • 現在のw_tは既知。未来の売買z_t…z_t+H−1と、未来の保有を変数にする。
  • H = 1なら、基本的な単一期問題(4.4)に戻る。式(4.9)の費用倍率は実用上の調整として拡張できる。
  • 各将来期間の予測・費用・リスク・制約を入力する。情報がなければ一定値で置くこともできるが、有用な将来情報が増えたことにはならない。
  • 将来の費用を「保有経路の変化」にかけるので、隣接期間の判断が結びつく。
  • 期間リスクの和を分散として解釈する場合は、期間リターンの独立性を暗黙に使う。より一般には、各期保有への罰則として解釈できる。[p.48]
  • 予測リターン・費用は目的関数に残し、ウェイトの伝播だけを近似する。厳密モデルとの違いは2.6節で説明。

2.4 同じ予測でも、費用が変わると保有経路が変わる

短期の利益と後の反転費用を、単純な条件で確認する。第1期間の期待リターンは+1%、第2期間は−1%、第3期間はゼロ保有へ戻す。下の図は解説用に最適化で計算した例であり、原論文の結果でも市場データの実測でもない。

計算例:片道費用で変わる最適ポジション
保有 / 口座純資産-0.4-0.200.20.40123期間(0=初期)0.1%費用0.3%費用0.6%費用

低コストの線は+0.40から−0.40へ反転し、中程度の線は同じ方向でも±0.20へ縮む。高コストの線はゼロのまま。上昇・下落の予測が正しくても、往路・反転・復路を含む費用によって「取引しない」が選ばれる。

片道費用第1期間第2期間第3期間
0.1%+0.40-0.400.00
0.3%+0.20-0.200.00
0.6%0.000.000.00
計算記録:説明例の目的関数・制約・解法
max  .01x₁ − .01x₂
     − .01(x₁² + x₂² + x₃²)
     − a(|x₁| + |x₂ − x₁| + |x₃ − x₂|)
subject to  x₃ = 0、|xᵢ| ≤ 1
初期保有:0、a = .001 / .003 / .006
  • ポジションは口座純資産に対する比率。正はロング、負はショート。
  • 費用aは売買額に対する片道比例費用。反転時は、ロング解消とショート新設の両方の売買額にかかる。
  • CVXPY+CLARABELで実際に解き、最適状態と解を確認。計画全体を表示する説明例であり、更新される予測を使う実運用の再最適化実験ではない。
  • 期待リターンは人工的に設定。費用・リスクも実市場の推定値ではない。

2.5 計画は複数期間、実行するのは最初の売買だけ

未来の計画は、今の行動を評価するために使う。明日以降に出す注文を、今日すべて固定するのではない。

一歩だけ実行し、実際の状態から再計画
時点 tH期間を計画→実行最初の注文だけ→時点 t + 1新情報で解き直す

模式図:未来の注文を約束する図ではない。

Model Predictive Control(モデル予測制御)またはreceding horizon controlと呼ばれる。時点tでH期間を最適化し、z_tだけ実行する。次の時点では、実際の約定後保有と新しい予測から、再びH期間を解く。[p.50]

時間に関する量意味他の時間との違い
売買の更新頻度どの間隔で判断を解き直すか毎時更新しても、毎時必ず売買するとは限らない
予測対象期間どの将来区間のリターンを予測するか予測入力の過去lookbackとは別
計画期間H何期間先まで意思決定に含めるか固定の保有期限ではない
実際の保有期間再計算を繰り返した結果、保有が続く時間Hより長くなる場合もある

終端で現金へ戻す制約は、「その日に必ず退出」ではない

論文は、計画末尾で現金やベンチマークへ戻す終端制約を説明する。これは退出費用を考慮するためであり、H期間後に実際に清算すると約束する意味ではない。翌時点には再び先まで計画するので、終点は移動する。[p.51]

原典確認:終端制約・複数時間尺度
“This does not mean we intend to liquidate the portfolio in H periods; rather, it means we should carry out our planning as if this were the case.”

原論文p.51。全額現金へ戻す例は、入り口だけが魅力的で出口が高いポジションを避けるための計画条件。

  • §5.5は計算を軽くする複数時間尺度の例を示す。H = 100、T_med = 5、T_long = 21とし、今・5期間先・21期間先・終端でだけ計画上の売買を置く。
  • これは100日間の全注文を固定して実行する方法ではない。現在の最初の行動だけを実行する原則は同じ。
  • シグナル減衰を将来予測へ反映する例もあるが、減衰半減期がそのまま最適保有時間になるという結果ではない。

2.6 凸にすることで、何が解きやすくなり、何を捨てているか

共分散による二次リスク、比例費用、3/2乗の費用、レバレッジ制約などは凸最適化として扱える。適切に定式化された問題では、局所解に左右されず、モデル内の大域的な最適解を求められる。

ただし「モデルを最適に解いた」と「現実の市場で最適」は別。将来予測と費用モデルの誤差に加え、計画内には口座更新の近似がある。

実際の口座更新(式2.11):
w_t+1 = [(1 + r_t) ∘ (w_t + z_t)] / (1 + Rᵖ_t)

計画内の近似(式5.1):
w_t+1 ≈ w_t + z_t

予測誤差に対して、賭けを小さくする

期待リターンの誤差を|δ| ≤ ρと置くと、最悪の予測誤差を考えたリターンは、次のようになる。[式(4.6)、pp.31–32]

r̂ᵀ(x − w_b) − ρᵀ|x − w_b|

確信の弱い銘柄ほどρを大きくし、ベンチマークから大きく離れる保有を抑える。予測を正しくする処理ではなく、予測が外れたときの感応度を抑える処理である。

計算上の境界:非凸制約と原典の誤植
  • 最小取引額、保有銘柄数上限、整数ロット、取引実施時の固定料金は非凸になる。凸緩和後に対象や符号を固定して再計算する近似も説明される。近似の大域的最適性を保証する意味ではない。[§4.7]
  • 全期間の不確実性を分岐させる完全な動的計画法と、この予測経路を解き直す方法は異なる。後者は実用的な近似。[§1]
  • 原PDF p.31の説明文には、ロングに対する最悪リターンをr̂ + ρと書く符号の誤植がある。|δ| ≤ ρの定義と直後の数式に沿えば、ロング側の最悪値はr̂ − ρ。ここでは整合する数式を採用。

3. 結果:論文のシミュレーションは何を示したか

定式化が分かっただけでは、その運用効果は分からない。著者は2012年1月〜2016年12月の株式データを使い、費用と調整係数、単一期と多期間の違いを示している。

以下の数値は論文が報告するシミュレーション結果。そのまま実運用できる予測戦略の成績ではない。

3.1 口座が大きくなると、同じ再配分でも高くつく

同じ銘柄均等配分を目指し、再配分の頻度と初期資産を変える。比較するのは、年率取引費用と、均等配分ベンチマークに対する年率active risk(追随誤差)。

原表再描画:再配分の頻度と口座規模
年率取引費用(%)00.050.10.150.20.250.300.40.81.21.6年率active risk(%)1億ドル100億ドル

再配分を減らすほど、線は右下へ進む。費用が下がる一方、ベンチマークからのずれが増える。100億ドルの線が1億ドルより上にあるのは、ほぼ同じ回転率でも、市場インパクト項で大口の費用が増えるため。

検証記録:Table 7.1の全値と比較設定
  • 材料:Table 7.1、本文p.59。図は原表から再描画。
  • 対象:2016年12月のS&P 500構成銘柄のうち、2012〜2016年を通じて取引された銘柄。期間は2012年1月〜2016年12月。
  • 初期保有:各資産1/n、現金0。再配分時はこの均等配分へ戻す。非再配分期間は売買しない。
  • 市場データ:Quandlの価格・出来高。現金リターンはFederal Reserve overnight rate。
  • 比例費用a = 5bp、ショート保有費s = 1bp/期間、b = 1、c = 0。価格の始値・終値から日次変動の代理量を作る。値は推定モデル・仮定を含む。
  • active returnはポートフォリオリターンから均等配分ベンチマークを引いた値。active riskはその差の標準偏差。
  • 値はすべて年率。active risk 0.00%などは原表の丸め値であり、厳密なゼロと解釈しない。
初期資産再配分active return %active risk %取引費用 %回転率 %
1億ドル毎日-0.070.000.07220.53
1億ドル毎週-0.070.090.04105.67
1億ドル毎月-0.120.210.0252.71
1億ドル四半期-0.110.350.0129.98
1億ドル毎年-0.100.630.0112.54
1億ドル保有のみ-0.361.530.000.00
100億ドル毎日-0.250.010.25220.53
100億ドル毎週-0.190.090.16105.67
100億ドル毎月-0.200.210.1052.71
100億ドル四半期-0.170.350.0729.99
100億ドル毎年-0.130.630.0412.54
100億ドル保有のみ-0.361.530.000.00

3.2 予測が同じでも、リスク・売買・保有の罰則で結果が変わる

単一期最適化で複数の係数を試した後、著者が選んだフロンティア上の点を比較する。横軸は年率超過リスク、縦軸は年率平均超過リターン。ここでの「超過」は現金リターンとの差。

原表再描画:著者が選んだ単一期のフロンティア点
年率平均超過リターン(%)0612182430048121620年率超過リスク(%)Table 7.2

点は右上へ並び、リスクを増やすほど高いリターンを取る関係を示す。ただし、単にγriskだけを動かした一本の経路ではなく、売買・保有の罰則も変えた候補から選ばれた点である。

Table 7.2の一例は、γrisk = 32、γtrade = 7、γhold = 10で、年率超過リターン12.35%、超過リスク5.43%。この値は、下記の人工予測と期間内の係数選択を使った掲載例の値である。

著者は、最適化側で実際の借株費用より強くショートを罰すると、全体の成績が改善する例を説明する。最適化のγholdを10倍にしても、シミュレーターで請求する借株費用を10倍にするわけではない。行動を調整する正則化として働く。[§7.3]

検証記録:Table 7.2の全値・予測・リスク・選択
  • 初期純資産1億ドル、初期均等配分、レバレッジ上限3。対象・期間・実現費用は§7.1の設定。
  • リスクモデル:過去2年の実現リターンから15因子+対角のモデル。月初に推定し、月内では同じモデルを使う。
  • 売買費用に使う出来高・変動の予測:過去10期間の移動平均。
  • 資産リターン予測:r̂_t = α(r_t + ε_t)。ε_tは平均ゼロの独立ノイズ。σ²_ε = .02、典型的σ²_r = .0005、α = .024を採用。[式7.1]
  • これは実現リターンr_tを使う人工予測。著者自身が実際の予測ではないと明記する。
  • 粗い係数探索→細かい探索→掲載候補を選択。同じ全期間で選んだ結果で、未使用期間の独立評価ではない。
  • 原文は最後の探索を410 simulationsと記載するが、掲載された全組合せ数には不整合がある。ここでは原表の15行だけを再描画し、未公開候補を補作しない。
γriskγtradeγhold超過リターン %超過リスク %
1000.008.00100.001.330.39
562.006.00100.002.490.74
316.007.00100.002.981.02
1000.007.5010.004.641.22
562.008.0010.005.311.56
316.007.5010.006.532.27
316.006.5010.006.882.61
178.006.5010.008.043.20
100.008.0010.008.263.32
32.007.0010.0012.355.43
18.006.500.1014.967.32
6.007.5010.0018.5110.44
2.006.5010.0023.4013.87
0.326.5010.0026.7917.50
0.187.0010.0028.1619.30

3.3 多期間の線が上にある。でも、同じ情報の比較ではない

著者のFigure 7.7は、単一期とH = 2の多期間最適化のフロンティアを比較する。多期間側は、今日と翌日の売買を計画し、今日だけ実行する。

原論文Figure 7.7:単一期と多期間の比較
原論文Figure 7.7。横軸Excess risk、縦軸Excess return。赤MPO、緑SPOのフロンティア。

原PDF本文p.69(PDF72頁)の図を抜粋。赤=多期間、緑=単一期。年率超過リスクと年率超過リターン。元図の座標・凡例を保持。

赤い多期間の線が、緑の単一期の線より上に位置し、同程度のリスクで高いリターンを示す。しかし著者は、この優位性の大部分を「今日だけでなく、明日のリターン予測も持つこと」で説明している。

計画方法だけの純粋な効果を切り分けた比較ではない。多期間側には、翌日の実現リターンから作った人工予測も今日与えている。さらに、翌日の予測は翌日になっても同じという設定である。[pp.66–69]

掲載比較に含まれる、入力情報の違い
単一期今日の人工予測→多期間 H = 2今日+翌日の予測→掲載結果多期間が上の線

模式図:追加情報を含む比較。計画方法だけの因果効果ではない。

検証記録:多期間比較と成績の適用範囲
  • 対象・市場データ・初期純資産・初期配分・レバレッジ・リスクモデルは単一期例と同じ。
  • H = 2。今日と翌日の費用推定には、単一期と同じ予測値を用いる。
  • r̂_t|t = r̂_t、r̂_t+1|t = r̂_t+1。両方とも式(7.1)からの人工予測。翌日もr̂_t+1|t+1 = r̂_t+1。
  • 多期間側も同期間で罰則を探索。Figure 7.7の点を画像から読み取って精密数値へ変換することはしていない。
  • 母集団は期末構成銘柄から選ばれており、生存者バイアスがある。著者は対象期間が上昇相場だったことも指摘する。
  • スプレッド・借株費用などは一定値の仮定。実運用や別市場での優位性は、この掲載例から直接は確認できない。

4. 洞察:保有時間ではなく、保有判断を更新する

予測を使う価値は、取引する口座によって変わる

同じ予測でも、小さなロング・ショート口座には使えて、大きなロング専用口座には使いにくいことがある。理由は、費用・制約・現在の保有が異なるから。予測の精度と、ポートフォリオで使ったときの価値は一致しない。[§4.8、p.44]

売買ルールの一連の判断を、同じ問題で扱う

行動最適化での意味
エントリーゼロ保有から非ゼロの保有へ変更
維持現在の保有を変更しないことが最適
追加・縮小予測利益と限界リスク・費用を比較して量を変える
撤退ゼロまたはベンチマークへ戻す
反転反対方向の利益が、解消・新設費用とリスクを上回る

個別のif文を先に固定する代わりに、同じ予測・口座状態・費用モデルから各行動を選べる。ただし、係数と計画期間は別に選ぶ必要があり、最適化器がすべての設定を自動的に発見するわけではない。

実務へ移すなら、区間別の予測と口座状態が必要

perpへの適用は、ここでは外挿・未実装。資金調達率の支払い・受取りは保有に伴う費用へ対応づけられるが、担保、cross-margin、維持証拠金、清算、契約倍率を含む口座モデルは別途必要。株式+現金モデルをそのまま置き換えるだけでは済まない。

Q&A

シグナルの半減期から、保有時間を決めればよい?

この論文の方法はそうではない。半減期は将来の予測経路を作る材料になり得るが、現在の保有・費用・リスク・他の予測も判断に効く。また、シグナル値が持続することと、将来の追加リターンを予測し続けることは別。実際の保有時間は、再最適化の結果として決まる。

予測が弱まったのに、ロングを維持するのは合理的?

あり得る。少し売る利益が、売却費用以下なら、現在のポジションを維持する。これは予測が強いことを意味せず、保有変更の費用を含む判断である。比例費用の例では |μ − qx₀| ≤ a がその領域。

Hを長くすれば、必ず良くなる?

必ずではない。将来の予測・費用・制約に有用な情報があるか、予測誤差と計画近似がどれだけ効くかに依存する。計算も増える。論文は、問題構造を活用すればHに対して線形に計算量を増やせると説明し、長い期間を少数の売買時点にまとめる例も示す。

コストを正しく推定すれば、γtrade = 1が正解?

そうとは限らない。著者は、最適化側の費用倍率を売買行動の調整係数として扱う。掲載例でもγtradeを変えると結果が大きく変わる。ただし、成績評価側には現実的な費用を差し引く必要があり、評価費用まで都合よく変えることとは異なる。

多期間最適化は、固定保有時間の最適化の代わりになる?

求めるものが違う。固定時間の最適化は「同じ売買ルールで何時間後に退出するか」を選ぶ。ここでは「今の状態で、今どれだけ変更するか」を更新する。退出・反転を状態に応じて決めたい場合に対応するが、固定timeoutを一つ推定する論文ではない。

付属ソフトウェアを入れれば、完成戦略になる?

ならない。CVXPortfolioは、リターン予測・リスク・コスト・制約を組み立て、方策とシミュレーターを分けるための実装。利益を生む予測や取引所固有の口座モデルは別途必要。論文§6のAPI例は当時のものなので、現行版で実装する際は現在のAPIを確認する。

原典と参照箇所

原論文の主張、原表からの再描画、解説用模式図、人工的な計算例を区別して掲載。今回、新しい市場データの分析・戦略検証は行っていない。