SQの収益機会を利用する -戦果編- 2018年11月
1月7日の記事で述べた戦略に基づき取引を行うプログラムを昨日(2018年11月のSQ日)稼働させた結果を報告する。
乖離は生じておらず、従って取引は行われなかった。
日経225銘柄中、前日前々日に開示情報がなかった銘柄は152銘柄であり、その中に8時59分55秒時点で3%以上、上方あるいは下方乖離していた銘柄は存在しなかった。
SQの収益機会を利用する -戦果編- 2018年10月
1月7日の記事で述べた戦略に基づき取引を行うプログラムを10月12日(2018年10月のSQ日)に稼働させるつもりであったが、プログラムの設定を誤ったため稼働せず。 また来月以降稼働させて結果を報告する。
SQの収益機会を利用する -戦果編- 2018年9月
1月7日の記事で述べた戦略に基づき取引を行うプログラムを今日(2018年9月のSQ日)に稼働させた結果を報告する。
稼働結果
8時59分50秒時点で上方乖離している銘柄が15銘柄(下方乖離が5銘柄)存在したため、乖離率上位2銘柄(ミネベアミツミ、アドバンテスト)に修正後終値の2%上に売り注文を出した。しかし、2銘柄ともに9時30秒時点で約定していなかったため注文を取り消した。これはプログラムが9時30秒時点で未約定かつ買い気配の乖離率が2%未満のものを取り消しするように作ってあるためである。
プログラムの不備
このプログラムの仕様は意図と反するものであった。特別買い気配の場合9時時点で前日終値の付近から板寄せが始まるため、上記のロジックで注文の取り消しを行うと特別気配の銘柄はすべて取り消されてしまうことになる。
収益についての考察
プログラムの不備により取引ができなかったが、結果として正解だった。即ち、取引を行っていた場合、損失を出していた。仮に乖離銘柄すべてを同金額取引した場合0.81%の損失であった。
下表は上方乖離銘柄とその株価等である。ここで調整率は22,810/22,630 = 100795である。概算損益率は当日始値で売り建て、当日終値で清算した時の損益率である。
code | 会社名 | 前日終値 | 調整後終値 | 当日始値 | 当日終値 | 乖離率 | 概算損益率 |
---|---|---|---|---|---|---|---|
6479 | ミネベアミツミ | 1,944 | 1,959 | 1,980 | 2,031 | 1.05% | -2.58% |
6857 | アドバンテスト | 2,230 | 2,248 | 2,297 | 2,341 | 2.19% | -1.92% |
8331 | 千葉銀行 | 680 | 685 | 684 | 693 | -0.21% | -1.32% |
8725 | MS&AD | 3,318 | 3,344 | 3,394 | 3,423 | 1.48% | -0.85% |
2503 | キリンホールディングス | 2,783 | 2,805 | 2,830 | 2,798 | 0.90% | 1.15% |
2871 | ニチレイ | 2,842 | 2,865 | 2,892 | 2,832 | 0.96% | 2.07% |
3401 | 帝人 | 2,131 | 2,148 | 2,181 | 2,172 | 1.54% | 0.41% |
4021 | 日産化学 | 5,500 | 5,544 | 5,610 | 5,710 | 1.20% | -1.78% |
4452 | 花王 | 8,743 | 8,813 | 8,893 | 8,885 | 0.91% | 0.09% |
5108 | ブリヂストン | 4,079 | 4,111 | 4,172 | 4,149 | 1.47% | 0.55% |
5706 | 三井金属 | 2,870 | 2,893 | 2,920 | 3,030 | 0.94% | -3.77% |
6103 | オークマ | 5,620 | 5,665 | 5,710 | 5,970 | 0.80% | -4.55% |
6305 | 日立建機 | 3,295 | 3,321 | 3,360 | 3,360 | 1.17% | 0.00% |
7951 | ヤマハ | 5,560 | 5,604 | 5,650 | 5,680 | 0.82% | -0.53% |
9531 | 東京ガス | 2,677 | 2,698 | 2,727 | 2,704 | 1.06% | 0.84% |
考察と今後
本日の日経平均株価の始値は23,035.78円、終値は23,094.67円であり始値が上方に歪んでいたとは考えられない。即ち、8時59分50秒時点の気配から歪みを発見しようという意図は失敗したといえる。
また、8時59分50秒時点の最良買い気配が調整後終値よりも3%以上高い銘柄でも実際の始値と調整後終値の乖離率はほとんどの場合(アドバンテスト以外)2%未満であった。気配の観測をもう少し長くする(例えば8時59分58秒時点で乖離を判定する)ことが必要かもしれない。
なお去年の9月も上方乖離が18銘柄あったが売り建てによって収益は上げられない。(参考) 9月になにか特別なことがある可能性があるが、2年分のデータでは情報不足であるし、市場に関する知識が不足していてわからない。
今後、このプログラムを稼働させるか、稼働させるとして修正は行うか、についてはしばらく考えてから決めたい。
主成分分析と特異値分解
主成分分析および特異値分解の数学的背景を解説する。本稿は初歩的な確率論および大学初年度レベルの線形代数の知識を前提とする。
主成分分析
を確率変数とする。このとき、との共分散を第成分とする行列
をの共分散行列という。これをとおく。
= であるので は対角行列となる。
また、 の線形結合で表される確率変数
,
(は実数)
に対してとの共分散は
と計算できる。言い方を変えれば は が張る実ベクトル空間上の共分散で定義される二次形式に対応する行列となっている。
任意の確率変数 に対して であるので共分散行列は非負正定値対称行列となる。よって は直行行列で対角化可能で固有値はすべて非負実数となる。この固有値を大きい順に並べて とおく。このとき を の第主成分という。
第主成分に対応する固有ベクトルから決まるの線形結合を とおく。このとき の共分散行列は対角行列となり、対角成分は となる。言い方を変えれば
が成り立つ。
主成分分析とは主成分およびその固有ベクトルを求めることである。主成分に対応する固有ベクトルは上記のとおり共分散の意味でよい性質を持つ基底となる。 が多次元の観測データの各成分であるとき、主成分分析はデータの成分を線形変換することでデータの共分散の意味で簡潔な表現を与える。特に相対的に小さな主成分に対応する固有ベクトルをデータにおけるばらつきが小さいとして無視することでデータの次元の削減が可能となる。(ただし各成分の尺度がそろっている必要がある。)
特異値分解
特異値分解とは複素数係数の行列に対する以下の定理で与えらえる分解のことをいう。
を複素数係数の 行列とする。のランクを とおく。
このとき 次ユニタリ行列 , 次ユニタリ行列 と正の実数 が存在して
,
(は 行列で に対して 成分が , それ以外の成分が0.)
が成立する。
さらに上記の分解において は を定めれば一意に決まる。
証明
はエルミート行列であるのでユニタリ行列によって対角化可能。また任意の 次元複素ベクトル に対して
なので は非負正定値。よって の固有値はすべて非負実数。その固有値を大きい順に とおく。また を 次ユニタリ行列で が対角行列でその対角成分が左上から順に となるものとする。このとき の第列ベクトルを とかくと
が成り立つ。
のうちゼロでないものの個数を とし、 に対して 次元ベクトル を
で定義する。このとき、 はそれらで張られるベクトル空間の正規直交基底となっている。なぜならば
となるからである。(ここで はKroneckerのデルタ関数。)
を次元ベクトルで と合わせて の正規直交基底となるものとする。 を を並べた行列とする。 が正規直交基底なので はユニタリ行列。
このとき の第成分は でそれ以外の成分はゼロとなる。なぜならば の第成分 であり
のとき
かつ のとき
かつ のとき
より よって
となるからである。
とおくと となるので、 が言えれば定理の前半が証明できたことになる。これは の両辺のランクを考えれば自明である。( はユニタリ行列なので右辺のランクは のランクと一致する。)
あとは の一意性を証明すればよい。定理の条件を満たす分解 が与えられたとする。このとき
となるので は の固有値の平方根。即ち、上述の方法で得られたもの以外存在しない。
(証明終わり)
定理1の の分解を の特異値分解といい、 を の第特異値という。
特異値分解によって行列の低ランク近似が得られる。 とし、 を第特異値までを対角成分に並べた行列とする。このとき はランク のとサイズの等しい行列となり、そのような行列の中である意味で最も良く を近似した行列となる。この近似の尺度を説明するために以下の定義を行う。
定義
複素数係数の行列 のFrobeniusノルムとは のすべての成分の複素絶対値の2乗の和のことである。
このとき以下が成り立つ。
を上述のとおりとする。このとき はランク の行列で のFrobeniusノルムが最小となる行列である。
SQの収益機会を利用する -戦果編- 2018年7月
プログラムが読み込む日付ファイルの記述方法を誤ったため今月は稼働せず。
ガチャと損保と推移行列 -線形代数の応用-
線形代数の応用の1つである推移行列について概説する。固有値、固有ベクトルといった概念が確率的現象の解析に利用できる様を見る。本稿は大学初年度レベルの線形代数の知識を前提とする。
推移行列
定義
有限個の状態を考える。ある時刻の状態がであるとき次の時刻の状態がである確率がで与えられている確率的現象があるとする。成分がで与えられる行列をの推移行列という。
の推移行列をとおき、ある時刻でが状態である確率をとし、これらを縦に並べた状態分布ベクトルをとおく。即ち
とする。
このとき が成り立つ。
例えば2つの状態を考え、からになる確率を0.4、からになる確率を0.3とすると推移行列は
となる。
定常分布
推移行列に対してとなる状態確率ベクトルをの定常分布と呼ぶ。即ち次の時刻においても各状態をとる確率が変わらない状態のことである。これに関して以下の命題が成り立つ。
任意の推移行列に対して定常状態が少なくとも1つは存在する。
定常分布は線形代数的に言えばの固有値1に関する固有ベクトルなのでこの命題は
「推移行列は固有値1を持ち、その固有ベクトルとして状態分布ベクトルとなるものが存在する」
ということを主張している。
命題1の証明を与えよう。
まず固有値1を持つことを示す。
であることからとおけばが成り立つ。
これはがの右作用に関する固有値1の固有ベクトルであるということである。右作用と左作用の固有値は等しい(言い方を変えれば転置行列と元の行列の固有値は等しい)のでは(左作用に関して)固有値1を持つ。
ある次元実ベクトルが状態分布ベクトルであることとかつのすべての成分が0以上であることは同値である。あるベクトルのすべての成分が非負または非正ならばそのベクトルに適当に何倍かしてとできるので、の固有値1の固有ベクトルとしてすべての成分が非負または非正なものが存在することを示せばよい。
これを示すために状態集合が"確率的に分割可能"という概念を導入する。これは状態集合を2つに分割してそのどちらかからもう一方に到達する確率が0となるようにできる、ということである。即ち、状態集合の添え字の集合が2つの共通部分を持たない空でない2つの部分集合の和集合となっており、がすべてのに対して成り立つとき、は確率的に分割可能であるという。
の固有値1の固有ベクトルとしてすべての成分が非負なものが存在することを示す。状態集合は確率的に分割可能でないと仮定してよい。なぜならばもしが確率的に分割可能であるならば分割されたより小さい状態集合に対して定常分布を求めればよいからである。
をの固有値1の固有ベクトルとし、の第成分をとかく。
とおく。このとき
であり、1つ目の不等式の等号が成立するのは のときで、2つ目の等号が成立するのは のとき。もしのいずれも空集合でないならば状態集合は確率的に分割可能でないことと矛盾する。よってかのいずれかは空集合。即ちの成分はすべて非負あるいはすべて負となる。これが求めるベクトルである。(証明終わり)
一般に定常分布はただ1つとは限らない。また、時刻が十分経過したときに定常分布に収束するとも限らない。実際、推移行列がで与えらえる場合、すべての状態分布ベクトルが定常分布となるし、推移行列がで与えらえる場合、定常分布を除くすべての状態分布ベクトルは収束しない。
自動車保険料率
推移行列の応用の1つとして自動車保険のクラス別料率が挙げられる。
ある期間に事故を起こしたかどうかに応じて保険加入者のクラスが決定され、それによって保険料の異なる自動車保険を考える。保険料を決定する時点では加入者のクラス分布はわからないため、これに対してなんらかの仮定を置いて将来予想される保険料収入と保険金支払いがバランスるように保険料を設定する必要がある。この際にクラス分布として前項で述べた定常分布を用いるという考え方がある。その正当性を簡単な例を用いて説明しよう。
3つのクラスが存在する自動車保険を考える。ある期間の事故発生確率はクラスによらずで与えらており、ある期間に事故を起こすと次の期間では一つ下のクラスになり、無事故であると1つ上のクラスになる契約であるとする。このとき上のクラスから順に番号付けされているものとするとクラス分布の推移行列は
で与えらえる。
この推移行列はただ1つ定常分布を持ち、どのような初期状態から始めても定常分布に収束することを証明しよう。
推移行列の固有多項式を計算することで固有値がであることがわかる。したがって推移行列は対角化可能である。固有値の固有ベクトルを1つずつとりとおく。ただしとしては定常分布をとる。このとき、は3次元ベクトル空間の基底となっているので任意の初期状態は の形に書ける。
このとき
であり、よりで.
極限においても各成分の合計が1であるという条件は成り立つのでがいえる。即ち. つまりは定常分布に収束する。(証明終わり)
上記の証明が具体的に固有ベクトルを求めることなく完了している点に線形代数のありがたみがある。つまり対角化可能であることさえわかれば時刻における分布が指数関数の線形結合であることわかるのである。この例のように対角化可能であることさえわかれば固有ベクトルを具体的に求めることなく有用な情報を引き出せることが多々ある。
ガチャ
推移行列のもう1つの応用例として最近のゲームにおけるガチャで特定の数の景品をそろえる確率を計算しよう。
即ち、以下のような問題を考える。
種類のあたり景品があるくじ(復元抽出) を考える。あたりを引く確率はどれも同じであるとする。この確率をとおく。くじを回引いた後、あたり景品を種類持っている確率をに対して求めよ。
景品を種類持っている状態を第状態とすると推移行列は
で与えられる。
初期状態は(確率1で0種類の景品を持っている)なので求める確率は となる。
これを求めるために固有値、固有ベクトルを計算する。
が三角行列なので固有値は対角成分に並んでいる数である。いくつかの固有ベクトルを具体的に計算することで固有ベクトルは以下となることが予想できる。
ただし、は二項係数でのときと定義する。
これらは実際、の固有ベクトルとなっている。即ち、以下の命題が成り立つ。
に対して
が成り立つ。
証明は二項係数の計算に習熟していれば容易なので省略する。
さらにの変換行列との変換行列は互いに逆行列となる。即ち、
これも証明は二項係数の計算をがんばるだけである。
これらの命題よりとおくとであり、
が成り立つ。
これより景品を持っていない状態から始めて回くじを引いた後、景品を種類持っている確率は
と計算できる。(これも二項係数の計算をがんばる。)
例えば の場合で100回くじを引いた後、景品を持っている確率はおよそ
0種類 : 0.59%
1種類 : 5.47%
2種類 : 19.73%
3種類 : 34.65%
4種類 : 29.65%
5種類 : 9.89%
と計算できる。