人工知能によるシステムトレードを計画する (2)

[前回](http://qiita.com/ynakayama/items/13716e317e5b336e123e)の続きです。

人工知能で金融データを読み解きトレードに生かすという応用を考えているわけですが、これはあくまで応用分野です。言い換えれば、さまざまな他の分野への応用に際しても基礎となる部分は同じです。数学だとか統計学などといったものは、もともとそれ専門の分野が確立されていたわけではありません。

たとえばナイチンゲールのクリミア戦争における医療レポートだとか、ビール醸造会社での大麦栽培の改良の測定だとか、このような現場で生まれた数学的エッセンスを抽出して体系的にまとめたものが生い立ちです。

![図.png](https://qiita-image-store.s3.amazonaws.com/0/38501/7c81de73-00ed-ffe1-213c-035464ad6201.png)

これを金融データに応用すると、未来を高い精度で予測できればそのまま実益に直結することがよくわかります。

データ分析をして未来を予測するということは、単なる一過性の流行りのバズワードではなく、ビジネスにおいて確かな価値を生み出す金の卵であるということです。

### 投資とギャンブルの違い

突然ですが皆さんは投資とギャンブルの違いがわかりますでしょうか。

[投資と投機、ギャンブルはどう違う](http://www.nikkei.com/money/features/32.aspx?g=DGXLMSFK04008_04092014000000)
マネーの常識・非常識 夏の集中講座（５） - 日本経済新聞

検索すればだいたいどこにも上のリンク先の記事にある通りのことが書かれているかと思います。

賭け事や宝くじなどのいわゆるギャンブルは、勝者が参加者の掛金から利益を獲得しますが、全体のうち残りは運営主催者が獲得する「マイナスサムゲーム」。

為替の FX トレードなどの投機は、勝者がいればその分だけ敗者もいる「ゼロサムゲーム」。

これに対し株式などの投資は、企業や経済の成長にあわせて分け合う利益全体も膨らんでいきます。つまりは「プラスサムゲーム」であると言われています。

株式の場合、その成長の期待値は年 7% (還元率 107%) であるという経済研究の論文もあります。

投資には確かにリスクがありますが、それを指してギャンブルだと言い出す人は、おそらく「リスクがある＝ギャンブルである」と思い込んでいるのではないでしょうか。リスクがあることとギャンブルは等価ではありません。

投資というのは株式だけでなく、たとえば成長中のベンチャー企業に資金を提供し、投資対象が成長したらその利益から一部を還元してもらおうというような行為も投資です。あるいは、勉強をして資格を身につけ、将来の業績を伸ばしてリターンを得ようというのも自分自身に対する投資と言えます。

### 投資をする人間の判断を読み解く

さて、人はこのように将来を見越してさまざまな物事に投資をするわけですが、どのように考えてどう判断しているのでしょう。

機械に仕事をさせるということは、言い換えれば人間が今までやってきた仕事を細かく分解してよくよく見直し、論理を明らかにするところから始まると言っても良いでしょう。

そこで機械に投資対象を判定させるにあたり、指標をまず明らかにしなければなりません。

人間は過去の経験から、だいたいこういう○○は成長するだろう、というふうに学んで次に生かします。機械に仕事をさせようと考えるなら、この経験 (学習) を機械に教えていく必要があります。

チャートはデータの並びからできています。このデータの並びからいわゆる勝つ確率の高いパターンを見つけ出すわけです。

ここで、マネックス証券の[チャートフォリオ](http://www.monex.co.jp/ServiceInformation/00000000/guest/G100/srv/chartfolio.htm)というサービスを見てみましょう。

これはチャートの形 (= すなわちデータの並び) から一定のパターンを検索することができるというものです。さて、検索できるということはわかりますが、どんなパターンなら勝てるのかということがわからなければ意味がありません。

それでは勝つパターンとしてはどのようなものがあるでしょうか。

こういう値動きをしたら、次は「絶対」こうなるというパターンがあるわけではありません。しかし、いくつか確率として高いパターンはあります。

例えば最近では[日経平均株価が 12 連騰](https://www.sbisec.co.jp/ETGate/?OutSide=on&_ControlID=WPLETmgR001Control&_PageID=WPLETmgR001Mdtl20&_DataStoreID=DSWPLETmgR001Control&_ActionID=DefaultAID&getFlg=on&burl=search_market&cat1=market&cat2=report&dir=report&file=market_report_op225_150602.html)しましたが、このような長い連騰の後では短期調整を挟んだあと大相場を迎える確率が高い、といったものです。

他にも[二番底は黙って買え](http://www.media-ir.com/press/kabuqa/qa6_9.shtml)という格言があります。これは下がって上がって、また下がり底を形成したらチャンスだというものです。

古くからは江戸時代の相場師、本間宗久によって考案された[酒田五法](http://swing-trade.net/trade151.html)というものがあります。

あるいは、ある値幅で行き来する[レンジ相場](http://www.kabuciao.com/tech/range.html)が形成されていることを検知できれば、その天井と底で売買を繰り返すことで利益を獲得することを狙えることになります。

つまり、絶対とは言えないけれど、高い確率で動きをある程度予想できるパターンはあるということが言えます。

### バックテストと人間の裁量

システムトレードでは作成したトレード戦略を検証するためにバックテストをします。バックテストとは過去のある時期まで遡ってその戦略を適用するとどれだけのリターンが得られるかを計算するものです。有名な FX 用のソフトウェアで [MetaTrader 4](http://www.metatrader4.com/en/download) というのを使えばこれを簡単にすることができます。

ただしこれも絶対的なものではありません。外部要因は常に変化していますから昔と今では条件は一緒ではありませんし、どのみち人の裁量が必要になります。単にロジックだけでお金が増えるというほど簡単なものではありません。人の裁量で、テクニカル指標が有効な場面でのみそれを利用する、ということになります。

同じく人工知能といっても SF に登場するような自律的思考を持つ機械を作れるわけではありません。基本的にはテクニカルと一緒で、それを利用することで有効な場面でのみ人の裁量で利用する、ということになるわけです。放置するだけで何もしなくても資産がどんどん増えていくというのはさすがにうますぎる話かと思います。

## トレンドの変化を察知する

さて、それではトレンドを推し量るためのテクニカル指標について追っていきましょう。前回登場したボラティリティと連動しやすいテクニカル指標としては次のようなものがあります。

### 出来高

[出来高](http://www.miller.co.jp/study/chart/05.html)は単なる売買の数で、テクニカル指標ではありませんが、価格の上昇に先行して上昇すると言われています。

取引は売買のバランスにより成立するので、たとえば出来高の移動平均を見るなどすると先行きを予測する手がかりになります。

価格の変動をあらわすボラティリティと比較的連動しやすいです。

![chart_2695.png](https://qiita-image-store.s3.amazonaws.com/0/38501/21c0580a-254e-e05e-2a22-e6cedc14844e.png)

上の図は明日決算発表を控えたくらコーポレーション (2695) ですが、決算発表前に加えて諸処の要因が加わり出来高を伴って急落しています。

### モメンタム

[モメンタム](http://www.kabuciao.com/tech/oscillator/momen.html)は勢いやはずみという意味ですが、金融の文脈では相場の勢いを見る指標であると言われています。

とはいえ計算方法は実に簡単です。当日の終値と n 日前の終値の差にすぎません。

n には日足では 10 や 25 が代入されることが多いようです。

### ROC

[ROC](http://www.kabuciao.com/tech/oscillator/roc.html) は Rate Of Change の略で、モメンタムを単に比率化した数値です。

(当日終値 / n 日前の終値) * 100 で求まります。

![chart_9742.png](https://qiita-image-store.s3.amazonaws.com/0/38501/704eeda8-d5ba-6674-1431-d6433462785b.png)

上の図はアイネス (9742) ですが、モメンタムが示す通り最近急騰していることがわかります。

### 移動平均線

一定期間 (5 日、 25 日など) さかのぼった期間の株価の平均値を線で結んだものです。やはり簡単な計算式ですね。

移動平均はトレンドを把握するのに役立ちます。

単純移動平均の他に加重移動平均や指数平滑移動平均などがあります。

### ボリンジャーバンド

上記の移動平均線に±標準偏差の線を引きます。

統計上、分布は標準偏差 ±1 の範囲に 68.3% 、 ±2 の範囲に 95.5% 、 ±3 の範囲に 99.7% の確率で収まるものとされます。

![chart_9682.png](https://qiita-image-store.s3.amazonaws.com/0/38501/7aa0dd29-1f3d-d231-7dbe-73e536792a1b.png)

上の図は弊社 DTS (9682) ですが、年初来高値を更新し 2,774 円にタッチするもボリンジャーバンドの上限で戻していることがわかります。

また 5 日移動平均を下値指示線として上昇トレンドが継続しているとわかります。

## テクニカル指標を素性にする

こうしてみると、テクニカル指標と呼ばれるものも実に単純な計算式で求められていることがわかります。

あまりに単純すぎるので、むしろこの数値をどうとらえてどう判断するかというところに工夫の余地がありそうですよね。

[以前に書いた](http://qiita.com/ynakayama/items/6a472e5ebbe9365186bd)機械学習による予測では単に日々の終値を素性として与えていました。

これに対し、テクニカル指標を素性とすることで、より人間の投資判断に近いことができるようになるのではないかと考えることができるわけです。

次回に続きます。