appricot’s diary

日々の勉強のメモ

Can ChatGPT Forecast Stock Price Movements? ==> 読後メモ

概要

  • 以下の論文を要約。
  • ChatGPTで、株価を予測。
  • 各News headlineに対して、企業の株価の観点でPositive, Negative, Neutralというラベルを付与。この結果と、株価のDaily Returnに相関があることを確認。
  • ChatGPTによる結果は、既存のSentiment Analysis手法、GPT1,2やBERTに勝る結果。
  • 特に小型株での予測性能、Negative newsでの予測性能が高い傾向。

 

Data

  • 米国上場企業のDaily returnとNews headline
    • Oct., 2021 - Dec., 2022
    • 4,138社
  • Webからクロールした上記企業に関連するNews
    • 単純に、各企業の名前やTickerが含まれる記事を収集
    • 期間は、Oct., 2021 - Dec., 2022
    • うち7割は、プレスリリースに対応
    • 67,586 headlines
  • ChatGPTが学習に利用しているデータ
    • 2021年9月まで。
    • モデルの評価に利用するHeadlineや株価データは、ChatGPTの学習期間より後(2021/10~)のもの。

 

Prompt

  • 以下のようなPromptをChatGPTに与える。
    • Forget all your previous instructions. Pretend you are a financial expert. You are a financial expert with stock recommendation experience. Answer “YES” if good news, “NO” if bad news, or “UNKNOWN” if uncertain in the first line. Then elaborate with one short and concise sentence on the next line. Is this headline good or bad for the stock price of **company name** in the term **term**? Headline: **headline**
  • ChatGPTによる日本語訳は、以下の通り。
    • 以前の指示をすべて忘れてください。あたなは財務の専門家のふりをしてください。株式の推奨銘柄の経験を持つ財務の専門家です。最初の行で「YES」は良いニュース、「NO」は悪いニュース、「UNKNOWN」は不確かな場合に回答してください。次の行で、簡潔かつ短い文で説明してください。
      • このHeadlineは、term期間中のXX社の株価にとって良いですか、悪いですか? 

 

手法

  • 特定の日の、特定の企業について、ChatGPTにNews headlineを与えて、判定結果がPositiveなら1, Unknownなら0, Negativeなら-1とする。該当するNews headlineが複数ある場合には、平均をとる。
  • 売買タイミングとポジション保持期間
    • 朝6時前のNews headlineを用いた場合、当日の始値でポジションをとり、終値で精算。
    • 朝6時〜Market CloseまでのNews headlineを用いた場合、当日の終値でポジションをとり、翌日の終値で精算。
    • Market Close以降のNews headlineを用いた場合、翌日の始値でポジションをとり、終値で精算。
  • ChatGPT-3.5のスコアがPositiveならLong。NegativeならShort。

 

評価

  • 評価期間は、2021/10 - 2022/12の間
  • ChatGPT-3.5を用いた場合、550%のリターン。
    • 買いから入るパターン、売りから入るパターン、どちらでも高いリターンを記録。Longで儲けた分が+200%。Shortで儲けた分が+250%。
    • 特にBad newsが起きた場合の予測性能が良好。
    • Sharp ratio = 3.1
    • Maximum draw down = -22.8%
  • ChatGPT-4の場合、330%のリターン。
    • Sharp Ratio = 3.8
    • Maximum draw down = -10.4%
  • 同時期に、全ての株を同じ分量で保持していた場合、累積リターンはマイナス。

 

他のLLMとの比較

  • 以下の回帰モデルを構築。
    • 1期先の特定企業の株価リターン=γ * 今期の特定企業のSentiment Score+ a + b
      • Sentiment Scoreは、ChatGPTの出力。
      • γはChatGPTの出力結果(News headlineのSentiment)の影響を示す係数。
      • aは特定企業の影響を示す係数。
      • bは特定日の影響を示す係数。
  • GPT-3.5, GPT-4は、BERTや以前のGPTに比べて、パフォーマンス良好であり、株価リターンを予測能力が、高いことを確認。
    • ChatGPT-3.5: γは、0.259 (t-testの値は5.259)
      • ChatGPTのスコアが-1から+1に変わった場合、+0.518%株価上昇
    • GPT-4: γは、0.176 (t-testの値は5.382) 
    • GPT2-Large: γは、0.035 (t-testの値は1.051)
    • BERT-Large: γは、0.001 (t-testの値は0.02)
  • ChatGPTによる予測性能は、大型株・小型株の両方で良好。特に、小型株では、良好。

 

Impression

  • インデックスファンドの結果が悪かった2021/10 --> 2022/12の期間に+550%のリターンというのは、驚き。
    • 全ての取引のうち、数回の取引で大きく利益を出しただけでは・・と思い、時系列での累積リターンのグラフを確認したところ、評価期間中、累積リターンはコンスタントに上昇していることを確認。つまり、予測を当てる頻度も高く、コンスタントに利益を出していったことが読み取れる。
  • とはいえ、モデルの評価期間が1年程度というのは短い気もする。せめて5年は欲しい。
  • 株価予測の実現方法は、至ってシンプルな印象。ChatGPTについて、Fine-tunningせず、Promptのみ株価予測に特化。Promptの設計は、単に「XX株が上がるかどうか」を聞くのではなく、ニュース記事を与えた上で、「金融の専門家を真似つつ、そのNewsがGood newsかBad newsか」を聞くようにしている点がポイント。
  • Promptの工夫でどれだけパフォーマンスが変わってくるか、個別株のみならず、他の金融商品(債券、為替、コモディティ)にも活用できるか、気になる。
  • 今回のChatGPTベースの株価予測で、うまくいかなかったケースは、どんなケースなのか?
    • 株価の変動要因は、個別企業の要因以外に、金利などマクロ経済要因もあるはず。マクロ経済要因に起因する個別株価の上下は、今回の手法では、はずしているのでは?
  • Newsの本文ではなく、あくまでもHeadline(見出し)だけを利用して、センティメントを判断している点も、気になる点。ポジネガ判断だけなら、本文は不要ということか。
  • Bloomgergにも、この論文の解説記事あり。

www.bloomberg.co.jp