So Nakashima

So Nakashima

Data Scientist

トレーディングに活用する機械学習モデルの評価指標

トレーディングに活用する機械学習モデルの評価指標

1. 概要

データサイエンティストの中島です。この記事では、トレーディング分野で機械学習モデルの評価に使われる指標について解説します。

2. 導入

機械学習モデルは様々な業界や領域で活用されています。金融もその例外ではなく、トレーディングに機械学習モデルが活用されています。例えば自動取引や異常検知に使われており、この記事では特に自動取引について解説していきます。トレーディングが行われる領域は株式や債券にとどまらず、電力自由化を背景として発電量や関係する資源にも広がっています。そのため、トレーディングにおける機械学習モデルの活用はますます重要になってきています。

機械学習モデルを運用するときには、構築したモデルが業務上の課題を解決しているかを確認する必要があります。このためには対数尤度のようなモデルを訓練する目的関数の値を見るだけでは不十分で、業務上の観点から見た指標で良い数字が出ている必要があります。トレーディングも例外ではなく、構築したモデルを活用した取引戦略が「良い業績」を上げているかを評価する必要があります。

取引戦略が「良い業績」かを判断するために、トレーディングの分野独自の評価指標が使われています。例えばモデルを使った取引戦略でどれくらい儲かったかという利益の観点の指標が必要になります。またトレーディングでは損失が出ることもあるため、モデルを使うことのリスクがどれくらいかを評価する指標も必要です。取引戦略の評価はデータサイエンティストのみならずトレーダーも行うため、評価指標はわかりやすい必要があります。

この記事ではトレーディングでよく使われる評価指標について説明します。評価指標の定義や意味については 1 のように良い本がすでにありますが、一冊の本で全てをカバーできるわけではなく様々な情報源を調べる必要があります。加えて Web 上の情報は、お金が動くという特性からか雑多で分かりにくくなっています。このような状況で定義を調べる作業は金融の専門家にとっては簡単ですが、自分のようなドメイン知識を持たないデータサイエンティストがプロジェクトを推進する場合には難しいところでした。このような課題が解決される記事になっていれば幸いです。

▼Tips
エムシーデジタルはトレーディングに機械学習モデルを応用するプロジェクトに携わっていました。このプロジェクトでは構築した様々なモデルに対し、評価を行い、最終的には自動取引を行うシステムの開発を目指していました。その過程でモデルの評価のための指標の計算部分を担当した経験がこの記事のもとになっています。

3. トレーディングと機械学習

評価指標の説明に移る前に、まずは簡単にトレーディングに機械学習モデルがどのように活用されているかを説明します。

3.1. 取引のモデリング

機械学習を使うかどうかに関わらず、投資家は投資戦略に基づいて財を市場で売買し、お金を儲けようとします。この記事では簡便のため、単一の財の取引にしぼって考えることとします。そうすると、投資家の全資産は現金と財の2種類から構成されることとなります。この組み合わせはポートフォリオと呼ばれ、現金と財それぞれの量で特徴づけることができます。すなわち時刻 $t$ での投資家のポートフォリオは現金の量 $C_t$ と財の量 $m_t$ で特徴付けられます。投資家は実際に所持している財を売却するだけではなく借りた財を売る空売りもできるため、財の量 $m_t$ は負の値もとりえます。財の量 $m_t$ が正・ゼロ・負のそれぞれのとき、投資家はロング・ニュートラル・ショートポジションをとっていると呼びます。またロング(ショート)ポジションをとってからそれを解消し別のポジションに移行するまでの一連の行為をトレードと呼びます。

投資家の目的は、何らかの取引戦略に基づきポジションとその大きさ $m_t$ を市場の動向に合わせうまく調整することで、ポートフォリオの価値を高めていくことと定式化できます。この記事では取引コストは無視して、ポートフォリオの価値 $V_t$ を次のように定義します。時刻 $t$ での財の取引価格が $p_t$ であるならば、ポートフォリオの価値 $V_t$ は

$$ V_t=C_t+m_tp_t $$

です。

ポジション $m_t$ の調整には機械学習モデルも活用できます。この場合しばしばポジションの大きさは無視して、正負のみを予測する識別問題としてモデリングします。具体的には、ある時間幅 $h$ を定めた上で、現在時刻 $t$ の財の価格 $p_t$ と比べ先の時刻 $t+h$ の価格 $p_{t+h}$ が上昇するか否かという2クラス分類問題を解きます。ある閾値より変化量の絶対値が少ない場合は変化なしとみなす3クラスの分類問題にする場合もあります。価格が上昇すると予測されているならロング、下落すると予想するならショートポジションをとることでお金を儲けることができます。ポジションの大きさの決め方には様々なものがあります。詳しくは 1 をご参照ください。

3.2. モデルの学習に使えるデータ

先述した分類をする機械学習モデルを訓練する上で、最も重要なのは取引の情報の集まりである市場データです。注目している財がどのような価格で取引されてきたかの履歴を知ることができます。生の市場データの扱いは煩雑なため、しばしば図1のように時間軸を分割し、バーと呼ばれる各区間での始値・高値・安値・終値を使って簡易に分析をすることもあります。バーの間隔の決め方には様々な手法がありますが、この記事では簡便に 10 分ごとの等間隔のものを念頭に解説します。

▼Tips
ある時間幅の中で一番初めの取引価格を始値、一番最後の取引価格を終値といいます。また時間幅の中で最も高い取引価格を高値、最も低い取引価格を安値といいます。これら 4 つの値を用いたモデリングは簡便なためよく使われますが、板(銘柄別の注文控え)の情報が失われてしまうなど欠点もあります。特に実運用に近くなってきた場合は、流動性が十分かや注文価格と取引価格が一致するかなどの確認のため生の情報を当たる方が望ましいです。

図1. 5分間隔で分割した三菱商事株価の市場データの例
図1. 5分間隔で分割した三菱商事株価の市場データの例
取引価格は5分ごとに始値・高値・安値・終値の4つに集約され、蝋燭図として表現されています。この図は SBI 証券のサイトより引用しています 3

モデルの学習には他のデータも利用することができます。例えば企業の財務情報などのファンダメンタルデータ、アナリストが解析済みのデータが活用されます。またそれらに含まれないオルタナティブデータが使われるようになってきています。オルタナティブデータの例としては、 SNS や人工衛星から得られるデータがあります。

4. 取引戦略の評価指標

この説では機械学習モデルによる取引戦略を評価する指標を説明します。評価指標は大きく分けて 3 つあります:

  • どれくらい収益性があるかを測るもの
  • どれくらいリスクがあるかを測るもの
  • それらを合わせたもの

また、トレードのレベルで取引戦略を詳細に分析するための指標もあります。

4.1. 収益性の指標

4.1.1. ポートフォリオの価値・Profit and Loss

収益性を測る最も単純な方法はポートフォリオの価値 $V_t$ の時系列を見ることです。これに加えて、初期時刻からどれくらいポートフォリオの価値が変化したかで定義される Profit and Loss (PnL) もよく用いられます。PnLの定義は

$$ \mathrm{PnL}_t = V_t-V_0 $$

です。

4.1.2 リターン

取引戦略による儲けはどれくらいのお金を投資しているかに比例します。この影響を取り除くため、現在のポートフォリオ価値で相対化した儲けもよく用いられます。そのような量はリターンと呼ばれ

$$ R_t= (V_t-V_0)/V_0 $$

と定義されます。市場データが適当な時間 $\{t_i\}_{i=0,1,…}$で分割されている場合は、時間幅ごとのリターン

$$ r_i= (V_{t_{i+1}}-V_{t_i})/V_{t_i} $$

も用いられます。

4.2. リスクの指標

投資戦略の評価においては、どれだけ儲けられたかだけではなく、どれくらい損する可能性があるかというリスクの観点も重要です。

4.2.1. リターンの標準偏差

リスクの単純な方法としては標準偏差が用いられます。例えば時間幅ごとのリターン $\{r_i\}_{i=0,1,…}$ が得られている場合、その標準偏差 $\sigma$ としてリスクを測ることができます。

標準偏差はリスクを測るためよく使われる指標ですが、正のリターンと負のリターンを区別せず扱ってしまっているという問題があります。我々がトレーディングにおいてより知りたいのはポートフォリオ価値が下落するリスクのため、負のリターンの大きさの方がより知りたい指標となります。これを踏まえ、負のリターンのみでの分散 $σ^-$ をリスクの指標として用いることもあります。

$$ σ^-= (\{\min\{r_i ,0\} | i=0,1,2,…\} の標準偏差). $$

4.2.2. Drawdown

他にも、どれくらいの下落幅があり得るかをみて直接リスクを評価することができます。含み益最大のところからどこまで下落したかは drawdown (図2)と呼ばれ、以下のように定義されます。

$$ \mathrm{drawdown}(t) = V_t- \mathrm{max}_{s<t}V_s. $$


特に最大の下落幅の drawdown は最大 drawdown と呼ばれ、どれくらい損しうるかのリスクとして考えることができます(この記事では drowdown を負の値として定義しているため、最大 drawdown は最小値を用いて定義されます。)。

$$ \mathrm{max\_drawdown} = \mathrm{min}_t \mathrm{drawdown}(t). $$

図2.ドローダウンの図示
図2.ドローダウンの図示
過去最大のポートフォリオ価値と現在のポートフォリオ価値の差は drawdown と呼ばれています。また最大の drawdown もリスクの指標として捉えられます。

4.3. リターンとリスクを合わせた指標

4.3.1. Sharp ratio

投資戦略の評価ではリターンとリスクの双方の視点が必要でしたが、複数の指標があると評価が難しくなります。そのためうまく二つの要素をまとめた単一の指標があると便利です。

そのような指標として有名なものが Sharp ratio です。Sharp ratio は時間幅ごとのリターン $\{r_i\}_{i=0,1,…}$ の平均を $μ$ とすると $μ/σ$ と定義されます。

Sharp ratio は標準偏差で測ったリスクあたりどれだけのリターンを期待できるかを表しています。

4.3.2. Sortino Ratio

Sharp ratio リスクの指標として、ポートフォリオ価値の上昇も含まれる標準偏差を用いています。そこで負のリターンの標準偏差 $σ^-$ を使い $μ/σ^-$ と修正した指標を定義することで、ポートフォリオ価値の下落のリスクのみに注目することができます。これは Sortino Ratio と呼ばれています。

4.3.3. Calmar Ratio

他にも drawdown を使ってリスクとリターンのバランスを測る指標として Calmar Ratio が知られています。Calmar Ratioはリターンと最大 drawdown の比として

$$ R_T /(-\mathrm{max\_drawdown}) $$

と定義されます。ここで $T$ は取引戦略を実行した期間の長さです。

4.4. トレード単体の評価

今までの指標は取引戦略を実行した結果全体を評価するものでした。より詳細に取引戦略を評価したい場合、トレード単体の性質を調べることも行われます。

4.4.1. トレードレベルでの基礎的な指標

トレードの性質を確認するためによく使われる指標としては、以下のような指標やその統計量(平均・分散)があります。

  • ポジションを保持している時間
  • ポジションを閉じてから次にトレードを始めるまでの時間
  • トレードで買ったか負けたか(PnL, a.k.a. Profit and Loss, が正か負か)
  • 連続した勝ち負けの数

4.4.2. トレードごとの儲け

他にも トレードごとの儲けを調べたい場合は、トレード単位での PnL やリターンを定義することができます。例えばトレードの PnL は

$$ \mathrm{TradePnL} = V_{t’}-V_t $$

と定義されます。ここで $t$ はポジションを取った時刻で $t’$ はポジションを閉じた時間です。

4.4.3. Maximum Favorable Excursion / Maximum Adverse Excursion

あるトレードで儲けられていたとしても、ポジションを開いたり閉じたりするタイミングを前後に変えることでより儲けられていた可能性があります。またあるトレードで損していた場合も、ポジションの開閉のタイミング次第では損を減らすことができた可能性があります。

トレードの開始や終了が適切であったかを評価するのに使えるのが Maximum Favorable Excursion (MFE) と Maximum Adverse Excursion (MAE) です(図3)。MEFはトレードの最大含み益であり、下記のように定義されます。

$$ \mathrm{MFE} = \mathrm{max}_{s∈[t,t’]}[V_s-V_t]. $$

例えばあるトレードで儲けられたものの MFE がより大きい場合、ポジションを閉じるのが遅いという問題を取引戦略が抱えている可能性があります。

逆に最大含み損は Maximum Adverse Excursion (MAE) と呼ばれ

$$ \mathrm{MAE} = \mathrm{min}_{s∈[t,t’]}[V_s-V_t] $$

と定義されます。MAE が大きい場合、ポジションを開くのが早すぎるという問題を取引戦略が抱えている可能性があります。加えて MAE はトレードごとにどれくらい損をする可能性があるかのリスクの指標としても捉えられます。

図3.MFE と MAE の図示
図3.MFE と MAE の図示
トレードの最大含み益と最大含み損はそれぞれ MFE と MAE と呼ばれます。


▼Tips
この章で説明した指標の計算にはバックテスト(ヒストリカルデータでのシミュレーション)がよく用いられます。この際に注意しなくてはいけないのは、バックテストを使い指標を計算し改善するというサイクルを回してはいけないという点です。これは過学習を避けるためです。市場データは自己相関があるため交差検証を有効に行うのが難しいです。また仮にリークがない交差検証を行っていたとしても、一本の時系列のみで改善のサイクルを回すのは過学習に陥りやすいです。そのためバックテストによる指標の確認は、問題のあるアルゴリズムを除外したり、シナリオごとの挙動をみたりする目的で行うべきです。詳しくは 1 を参照ください。

5. まとめ

この記事では、機械学習を用いた投資戦略を評価する際に使われる指標についてまとめました。投資戦略においては収益性を評価する指標、リスクを評価する指標、そしてそれらをバランスした指標が使われていました。ここに上げた指標は私がプロジェクトを通じて出会ったもののみであり、他にも様々な指標が使われています。全てをカバーできていないのは恐縮ですが、この記事で大まかな全体像が伝わり、今後の読者の皆さまの調べ物の出発点になっていれば幸いです。詳しくは参考文献も参照してください 12

金融については初学者の自分がプロジェクトに追いついていくのは大変でしたが、振り返ってみると非常に勉強になったなと思っています。特にプロジェクト中に助かったのは、金融の経験が豊富なデータサイエンティストと一緒に進められ様々な助言をもらえたことです。色々なことを学びながら進められたことは良い経験になりました。

エムシーデジタルは、このプロジェクトのように多種多様な産業分野に飛び込んで、様々な経験を積める環境です。興味を持ってくださった方は、ぜひお気軽にカジュアル面談でお話ししましょう!

エムシーデジタルの採用情報はこちら

6. 参考文献


  1. マルコス・ロペス・デ・プラド(著)、長尾 慎太郎 (翻訳), 鹿子木 亨紀 (翻訳), 大和アセットマネジメント (翻訳)(2019)ファイナンス機械学習―金融市場分析を変える機械学習アルゴリズムの理論と実践 ‎ 金融財政事情研究会

  2. 吉川 大介 (2022)  データ駆動型ファイナンス: 基礎理論からPython機械学習による応用 共立出版

  3. SBI証券 国内株式 | SBI証券 2024年3月8日 20:01に取得

RSS

Tags

Previous

Shinsaku Segawa

Shinsaku Segawa

MCD Data Science Competition 開催の振り返り

はじめに データサイエンティストの瀬川です。少し前になりますが、2023年12月18日(月)にオフラインで主催した MCD Data Science Competition の振り返りをまとめたいと思います。 開催概要 MCD Data Science Compet

  • #TechBlog
  • #Kaggle

Next

Konatsu Seki

Konatsu Seki

エムシーデジタル全社合宿 in 湯河原

こんにちは! エムシーデジタルの関です。 今回は、3月に開催した1泊2日の湯河原全社合宿の様子をお伝えします。 昨年よりも規模が大きくなり、今回は約70名のほぼ全社員が参加し、研修兼宿泊

  • #Corporate
  • #Culture
  • #Value
  • #合宿