クオンツ投資セミナー 過去相場を使ってプログラムのリターンを検証する

今日はクオンツ投資セミナーの3回目でした。

正直、前回までの講義はネットで調べればすぐわかる簡単な内容であまり役には立ちませんでしたが、今回は講師が変わり内容がレベルアップしました。(講義資料122ページ+ローカル環境で実行可能なプログラム一式)

講義の内容は以下の通りです。

  • クオンツ投資システム処理フロー
  • 開発環境準備
  • 相場情報、財務情報取得(API、スクレイピング)
  • 低PER株スクリーニング
  • 取引信号プログラム
  • ローカル環境でバックテストを実行

サンプルプログラムの投資手法

今回の講義では割安株をスクリーニングし、移動平均線で売買を行うプログラムをゼロから作成し一通りの処理フローを理解します。

スクリーニングの条件は

  • 0 < PER < 30
  • PERの小さい順に並べ、売買停止株を除いた先頭の100件を購入対象としてリストアップ
  • 7営業日毎に再スクリーニングし購入対象リストを更新

売買タイミングは

  • 購入:当日のK線が10日移動平均線を上回ったタイミング
  • 売却:当日のK線が10日移動平均線を下回ったタイミング
  • 売却:スクリーニングの条件から外れたタイミング

開発環境

今回のプログラム作成で使用する開発環境は下記の通りです。

  • DB:MongoDB
  • プログラム言語:Python
  • MongoDB接続ライブラリ:pymongo
  • 中国株情報取得ライブラリ:Tushare
  • 統合開発環境:PyCharm

DBは検索速度、拡張性の点でMongoDBがお勧めだそうです。Tushareについては以前受講した人工知能セミナーでも使用したことがあります。

ai-china.hatenablog.com

プログラムの流れ

プログラムでは、日々の株価情報はTushareから取得しDBに保存。会社の財務情報(1株当たりの利益)は「东方财富」のサイトからスクレイピングで取得します。それら情報を元に割安株をスクリーニングして、移動平均線を使った売買を行います。

これだけ聞くとすごく簡単に思えますが、実際には、株式分割や売買停止、配当の考慮もありPGは複雑になっています。

次回以降の講座ではこの単純な取引プログラムのパフォーマンスをどのように上げていくかの話になります。