2007-12-09  アルゴリズム株取引システム―“ORIMONO”の概要―

アルゴリズム株取引の実験を始めて,もうすぐ1年になります。材料が揃ってきたので,そろそろ成果物を形にしてみようと思います。私はこの計画を「ORIMONO」と名づけました。ORIMONOは「おりもの」と読みます。

ORIMONOは決してカタカナ表記されることはありません。理由は察してください(いきなりなぞ)。

サービス概要

サービス概要

<図の説明>ORIMONOのサービス概要。

具体的な作業の流れ

売買の例

⇒大きな画像

<図の説明>売買の例。だれがいつ何をするのか。

巷で「システムトレード」や「アルゴリズム株取引システム」と呼ばれているものは,完全自動で株取引するのが普通みたいです。ORIMONOでは銘柄と買値の最終決定は半自動です。最初にコンピュータによる推奨値があって,それを参考に人間が選択するわけです。

全自動にすることもできるのですが,まだ安全性の検証が済んでいないのと,もともと個人で使うシステムですので運用資金が限られています。運用資金が少ないということは,取引銘柄の数も少ないわけですから,人力でやっても大した手間にはなりません。

全自動型は今後,必要に迫られたら検討することになると思います。

クライアントホスト

クライアントホストでは専用の取引アプリケーションを使います。普通,ネットで株を売買するときは証券会社が用意したアプリケーションやウェブサイトを人間が使うのですが,ORIMONOではこれらを機械的に処理します。

「取引アプリケーションが何をすべきか」はだいたい決まっていますが,「どうやって作るか」は何も決まっていません。今のところ,自前のクライアントソフトを作るよりもMicrosoft Officeで実装した方が良い結果が得られるのかなと考えています。

独自のものにこだわる理由なんてありませんし,どうでもいいことに時間が掛かる気がするのです。株価サーバは外に出してしまいますので,クライアントはサーバホストにアクセスできれば何でも良いわけです。

ただし今回のお題では「お金」を扱うという性質上,履歴の管理を慎重にしたいし,物事の推移を分かりやすく示す必要があります。そうなると,「グラフィカル」な資料作成能力に長けたMS-Officeは捨てがたいのです。

»固定リンク

2007-11-29  アルゴリズム株取引の実際―その5―

アルゴリズム株取引,久々の近状報告です。今回は3銘柄の実績を報告します。たまたま時期が良かったのだと思いますが,超短期間で収益を上げることができました。(僅かですが。)

本題に入る前に小話を少々。2007年6月から株取引を中止しておりました。なぜかというと,7月の参議院選挙で民主党が勝つと,株価が低迷すると予想されていたからなのです。実際そのとおりになりましたね。

さらに米国のサブプライムローン(subprime lending)の問題と相俟って,株価を下げる材料はあっても,上げる材料はなくなってしまいました。サブプライムローン問題ってどうも根深いらしくて,影響は数年間続くそうです。(詳しくは知らないので,これ以上は触れないことにします。)

話を戻しますよ。「株価が落ちまくって,もう怖いから株の売買なんかやらない」なんて人がいらっしゃると思います。その判断は正しい気もしますし,正しくない気もします。だって,株が本来の価値よりも安いとしたら,それはお買い得ということなのです。

いつものように銘柄選びはコンピュータに任せて,株を買ってみました。

4755:楽天(株)

4755:楽天(株)

「楽天」って,たぶん知らない人はいないと思います。国内ネットショッピングモール最大手の「楽天市場」を運営している会社です。この時期,推奨度の高い銘柄は皆無だったのですが,楽天の推奨買値と価格との乖離が目に付いたので,買ってみました。つぎの日,ちょっと上がったのですぐに売ってしまいました。

7868:(株)廣済堂

7868:(株)廣済堂

前場(午前の取引)で買って,後場(午後の取引)で売りました。いわゆるデイトレードになりました。

2398:(株)ツクイ

2398:(株)ツクイ

ツクイは介護の会社だそうです。かの「コムスン」と同業らしい。出来高の少ない銘柄のせいか,株価の変化がどうも作為的に感じました。

»固定リンク

2007-11-10  日本株情報サイト“あしたの株”を公開

11月上旬から,日本株情報サイト「あしたの株」を試験運用しています。体制が整ってきたので公開することにしました。

「あしたの株」サイト画面

⇒「あしたの株」(「上がっている株」「下がっている株」の情報) 

自家製の株価データベースの情報を公開

まず公開に至った経緯をご説明しましょう。私は2007年1月から,日本株のデータベースと自動取引システムの実験をしています。

「あしたの株」で公開している情報は,自動取引システムが使う推奨銘柄の一覧です。いままでアルゴリズム株取引のお話を何度かしてきましたが,具体的に「どの銘柄がよいのか」といった情報は公開していませんでした。この理由は単純で,コンピュータの指示どおりに買った結果,損をする事例がたびたびあったからなのです。

「アンタが勧めたから買ったのに,大損したわよ。どうしてくれるのよ?」

などとミエナイ人から恨まれたら,たまったものではありません。そのような不幸な事態を防ぐために,これまで情報公開に消極的だったのです。

ところで,「アルゴリズム株」の開発は着実に進んでいます。これまでは銘柄の一覧を出力するだけでしたが,証券会社の取引ツールと連携した完全自動システムの構築まで,あともう一歩という段階にまできました。

「開発に勢いをつけるためにも,情報公開が必要なのでは」と悟ったので,成果物を部分的に公開することにしました。

サイト概要

「あしたの株」では,機械的に算出した「上昇銘柄」と「下降銘柄」の情報を公開します。銘柄情報はいまのところ毎日午前1時ごろ,勝手に更新されます。

現在の更新時刻は暫定的なものです。最終的には23時ごろ更新できるようにしたいです。

注意事項

掲載している情報は,無保証なので注意してください。とくに「上昇率」(=相関係数)は90日間の株価を元に算出するため,とっくに調整局面に入って価格が落ちてきているのに上昇率は高いまま,なんていう状態になることがよくあります。作った人が言うのもなんですが,お世辞にも儲かる情報にはなっていません。

»固定リンク

2007-05-09  アルゴリズム株取引の実際―その4―

アルゴリズム株取引,3銘柄の事例をご紹介します。今回の報告分から新システムを使った取引です。新システムと旧システムとの違いは作業の速さです。銘柄を抽出する原理は同じです。新システムでは銘柄を探して,買い注文を出すまで最短で1分程度の作業時間が掛かります。

利益は労力に見合った額でなければなりません。私の場合,いまのところ極小額の取引しかしていませんので,銘柄選びに時間を掛けていてはだめなのです。コストは最小にすべきです。良い銘柄を手早く買えるように,これからも作業手順とコンピュータ・システムを改良していきます。

9621:(株)建設技術研究所

9621:(株)建設技術研究所

この時期,アルゴリズム取引の買い条件を満たす銘柄が存在しませんでした。お金を遊ばせておくのはもったいない気がしたので,推奨度が劣る銘柄を買って,利益2%で売り注文を出してみることにしました。わりと短期間で売買が終わりました。

6319:(株)シンニッタン

6319:(株)シンニッタン

株の保有期間はわずか1時間弱でした。朝買ってその日のうちに売ってしまうという,デイトレードになりました。

9448:(株)インボイス

9448:(株)インボイス

利益は出ましたが,この取引は失敗でした。ナンピン後も価格の下落に歯止めが掛からず,どうなることかと思いました。この会社はいわゆる「新興銘柄」です。何を材料に値段がついているのか良く分からない。新興銘柄はコンピュータの予想に乗りにくいようです。逃げ切れたのでもうどうでも良いといえば,どうでも良いのですけれどね。

»固定リンク

2007-04-07  アルゴリズム株取引の実際―その3―

アルゴリズム株取引,今回は2銘柄の事例と今後の展開をお話します。

9841:(株)BMB

9841:(株)BMB

結果的に儲かったのですが,売却するまでに時間が掛かってしまいました。いきなり300株買ってしまったのが間違いの原因でした。現在はもうちょっと安全な買い方をしています。

6319:(株)シンニッタン

6319:(株)シンニッタン

今回は,購入後の株価の急降下を想定することにしました。100株買った後,すぐに-3.5%で100株のナンピン買いの注文を出しておきました。でもナンピン買いは成立することなく,あれよあれよという間に価格が上昇し,翌日+3.0%で売却することができました。

新システムを開発中

アルゴリズム株取引,ただいま銘柄抽出機能を強化したシステムを開発中です。新システムでは,WWWブラウザで株価のデータベースにアクセスします(いわゆるCGIスクリプトです)。推奨度や予算などの条件をつけて銘柄を抽出できるようにしたので,銘柄をかなり速く選定できます。

新システムを使えば株を売却した後,つぎにどの銘柄を買えば良いか,すぐ見つけることができるのです。

新システムの画面

<画像の説明>新システムの画面(開発中のもの)です。中身のお話をしますと,今回はPerl-CatalystというMVC(Model View Controller)フレームワークを使って実装を進めています。

»固定リンク

2007-03-12  アルゴリズム株取引の実際―ナンピン買いの指針―

アルゴリズム株取引の続報です。新たに「ナンピン買い」の指針を決めることにしました。「ナンピン」とは過去に買った銘柄の株を買い増しして,以前の買値を引き下げる買い方です。

あらまし

本方式のアルゴリズム株取引では,株を買ってからさらに価格が下がってしまう現象がたびたび発生します。元々ちょっと価格が下がるという性質があるので仕方がないのですが,一度下がると,予定した売値に価格を戻すまで時間が掛かってしまいます。

価格が下がる性質は悪いことばかりではありません。下がったときにナンピン買いすれば,もっと早く売れるはずなのです。でもいざナンピンするとなると,「それじゃいくらでナンピンすれば良いのか」という話になります。当たり前ですが,ナンピンした後もっと価格が下がってしまい,結果として損をする可能性もあるのです。

※手っ取り早く結論だけを知りたい方は,以後を読み飛ばして「まとめ」をご覧ください。

知りたいこと

約束事。

ほか,期間や銘柄の抽出方法は「前回のシミュレーション」と同様にしました。

結果(1)―買付け後の値下げ率―

買付け後の値下げ率

<説明>買った株の価格が瞬間的に下がるとき,いくらまで下がるのか調べることにしました。ナンピンするには,価格が下がっていなければいけないわけですが,買注文を出すにはその下がった価格を予想しておかなければならないのです。

「4%程度下がることが多い」ということが分かりました。

結果(2)―ナンピンによる株式の保有期間―

ナンピンによる株式の平均保有期間
ナンピンによる株式の保有期間の標準偏差

<説明>売却後の利益を2%,3%,5%にしたとき,各々のナンピン価格で株式の保有期間がどう変化するか調べました。保有期間の平均値と標準偏差を図にしました。初回買付け後の株価の平均値下げ率は4%程度であることが分かっているので,ナンピン時の価格は-4%を中心に-9%~0%(1%刻み)とすることにしました。

ここでひとつ,お断りしておかなければなりません。今回は標準偏差を算出してみましたが,本当に標準偏差で良いのか(何であれば良いのか)十分に調査できていません。考え方は正しいと思っていますが,いまの私の能力ではあまり自信がありません。

まとめ

分析の結果,株価が3%から4%下がったらナンピンするのが良さそうです。中間を取って「買値から3.5%価格が下がったらナンピンする」としましょう。

求める利益によって,ナンピンの価格は変わるのですが,利益3%で売りたいと思っていたとしても,状況によって価格を少し下げて売りたくなるかもしれません。どっちに転んでも大丈夫なように3.5%にします。

»固定リンク

2007-02-25  アルゴリズム株取引の実際―その1―

1月に作成したアルゴリズム株取引アプリケーションの続報です。その後,コンピュータの指示どおりに株を買付け後に売却し,3.4%の利益を得ることに成功しました。経緯をお話します。

試しに買ってみたら

最初は半信半疑でした。「どうも信用ならんな」と思いながらも,適当に買ってみました。株を買うのは初めてだったので,100株(単元株,15万円弱)だけ買うことにしました。

丸久8167(東証2部)

<画像の説明>株価の推移です。2007年1月23日に1470円で買付け,2007年2月22日に1520円で売却することができました。3.4%の利益を得ることができました。株式の保有期間は30日間でした。なおこの図はMS-Excelで作成しました。

実際に起きたこと

考察事項

株を買ってから価格がどんどん下がっていきました。「このアルゴリズムって失敗作なんじゃないの?」と思った人がいるかもしれません。本方式では「上昇トレンドの銘柄が一時的に躓いて,価格を下げたときに買う」という性質があります。買った直後に下がることは十分に考えられるのです。

私はあらかじめ過去の株価の推移からシステムの動作をシミュレーションし,この性質を把握していました。「そのうち上がるだろう」とは思っていましたが,買ってから価格が下落していく様は,見ていて気持ちのいいものではありませんでした。

2月21日から2月22日には,いろんな出来事がありました。日銀の金利引上げ発表の直後でしたので,かなり株価に影響したと思います。翌日23日にはまた価格が下落しています。売り払った後なので関係ないと言えば,関係ないのですけどね。

検討事項

今回の取引で注目したのは「出来高」です。出来高とは株が売買される数量のことです。出来高の高い銘柄は,売買が活発なのです。

私,出来高をまったく考えずに株を買ってしまいました。これは間違った判断だったと思っています。出来高が低い銘柄は,一部の株主の思惑で価格を操作されやすいように感じました。

»固定リンク

2007-01-21  アルゴリズム株取引の準備―その4―

早いものでお膳立てが完了しました。

口座開設できました

先週,ネット証券に口座の開設を申し込んでいるという話をしました。その後,審査を通過し口座の開設に成功しました。私,ドキュンなので一体どうなることやらと思っていましたが,金さえ払えるなら相手がドキュンだろうが何だろうが,構わないようですね。

ネット証券っていろいろあって,どこがいいのか分かりませんでした。今回は「ジョインベスト証券」にしてみました。選んだ理由は「パフィー(PUFFY)が広告していたのを覚えていたから」です。最初は会社名を知らなかったのだが,パフィーだけは鮮明に覚えていたので(だって意外な組み合わせでしょ)「パフィー 証券」で検索したら辿り着けました。

こんな理由でいいのかしらん。でも本当のことだから素直に書きました。

単元未満株の罠

ネット証券では(当たり前ですが)インターネットで株の取引をします。口座を開設できたので,早速ログインしてシステムを弄ってみました。(手続きが済んだのは週末でした。週末は市場がお休みなのと,そもそもまだ口座に入金していないので取引はできません。)

注文画面を見て「あれー」って思いました。単元株と単元未満株では取引の勝手が違ったのです。以下,予備知識として説明しますが株って「必ず1株単位で買える」というものではないのです。銘柄によって,売買する最低株数というものが決まっているのです。どういうことなのかというと,株価が3万円だったとしても,単元株数が100株の場合は300万円ないと株を買えません。ただし,最低株数に満たない株(単元未満株)でも証券会社を通すと買うことができます(どういう仕組みなのかは知りません)。

話を戻しますよ。単元未満株の取引は,自由度がかなり低いのです。以下,「あれー」の正体です。

私の場合,コンピュータの指示を参考に取引するつもりです。(そうでなければ「アルゴリズム株取引」になりません。)

「夜間,コンピュータに推奨銘柄を抽出させる」「朝,買値を指定して買注文を出す」「買えたら,売値を指定してすぐ売注文を出す」「あとは株価を注視しないで,ほかの作業をする」←こういう段取りで,事を進めるつもりでいたのです。

単元未満株でも同じことができるのかな,と思っていましたが,そうは問屋が卸しませんでしたね。

まだまだ勉強不足

ここまで話を引っ張っておいて,アレなんですけれど,どうも私が株を買うのはまだ早い気がします。1月11日に出した予想をいま検証してみると,ちゃんと儲かる結果が出ているのですが,どうも躊躇してしまうのです。

どこかに,計り知れない罠が潜んでいる気がします。

根本的に重要なことを勘違いしている気がするので,もうちょっと調査してみようと思います。

»固定リンク

2007-01-16  アルゴリズム株取引の準備―その3―

上田センセイ考案手法の実装物の効果を検証しました。今回は長文な上に内容がやや難解です。読もうとする人はほとんどいないでしょうが,そんなの知ったことではありません(なぞ)。がんがん行きますよ。

あらまし

1月上旬,私は上田センセイが考案した相関係数0.98法により,儲かりそうな株を自動抽出するシステムを完成させました。自動的に最新の株価データを分析し,推奨する銘柄と買値,売値を教えてくれるようになりました。

ところで,本当にコンピュータの指示を信じてよいのでしょうか。確かに提示される銘柄はそれっぽい気がします。でも細かな挙動やシステムの癖は何も分かっていません。どうして数字の裏づけの取れてないシステムを信用できるというのでしょうか。世の中に欠点のないものなど存在しないはずなのです。

そこで性能を測ってみることにしました。私は以下のことが知りたいと思いました。

これらの疑問を解決すべく分析を進めることにしました。

分析の概要

さて,全銘柄を分析しようとすると計算量が膨大になってしまいます。そこで以下の方法により試行回数を減らしました。

分析には限界があります。操作(2)の結果は局所解です。操作(1)で抽出が漏れた銘柄は,操作(2)の対象外となります。この場合,分析の精度が低下します。

それから,重要なことなのですが,今回の分析では標本数が足りていません。相関係数が0.98以上の結果は精度が低い可能性があり,あまり信用できません。ただし,まったく信用できない,というわけでもありません。

結果(1) ―取引可能件数―

相関係数ごとの取引件数

<説明>2006年4月1日から2007年1月12日の期間で,何件の銘柄が買い条件を満たしたかを調べました。本方式では「買い条件は相関係数が0.98以上の銘柄」としていますが,0.98未満の銘柄も調査対象にしました。相関係数が0.98を超えた件数はわずか10件でした。相関係数0.98以上の銘柄は稀にしか現れないのです。このままでは取引がほとんどできません。買い条件を緩和することは可能でしょうか。

結果(2) ―勝率―

相関係数ごとの勝率

<説明>勝率とは,買ってから予想価格まで上昇し,売ることに成功する確率です。成功の反対,すなわち「失敗」は,買ったけれど予想価格まで上昇することがなく,売ることができなかった場合を指します。

相関係数と勝率との関係。相関係数0.98未満でも勝率は極端に下がらないことが分かりました。相関係数0.97以上を買い条件としても良さそうです。

利率と勝率との関係。利率とは,買値と売値を比較し,結果として何割儲かったかという数値です。利率を5%とした場合,利率3%よりも売却に失敗する確率が高くなりました。利率を欲張るほど損をしやすくなることが分かりました。

結果(3) ―売却率と保有期間―

売却率の推移

<説明>株を買ってから予想価格まで上昇し,売却できるまでに要した期間を調べました。

利率3%の場合。10日間で50%の取引が完了しました。32日間で75%の取引が完了しました。95%の取引を完了するには137日間掛かりました。

利率5%の場合。20日間で50%の取引が完了しました。55日間で75%の取引が完了しました。95%の取引を完了するには180日間掛かりました。

方針の決定

分析の結果,この子の正体がだいたい分かりました(なぞ)。以下,使い方の心構えです。

この方針は,あくまで今回の分析結果から導き出したものです。この先,ころころ変わる可能性があります。

»固定リンク

2007-01-11  アルゴリズム株取引の準備―その2―

その後,上田センセイ考案手法の実装に成功しました。

前回のおさらい

今回やったこと

というわけで,実用的な機能はだいたい載せ終わりました。作ってみると,株のデータってそんなに規模が大きくないことに気づきました。現在の設計でも過去5年間くらいのデータなら余裕で分析できると思います。

開発画面 ⇒大きな画像

<画像の説明>開発環境の画面です。仕様上,推奨しない銘柄の買値や売値も算出しています。「注文」ってボタンはいまのところただの飾りです。そのうちネット証券に接続するかもしれません。

今日の結果

それでは,気になる今日の結果をお話しますよ。「買ってもよい」とされる銘柄は「4553 東和薬品(株)」のみでした。「7862 トッパン・フォームズ(株)」も射程圏内に入ったものの,買い条件には僅かに届きませんでした。あと5円下がったら買えたんですけどね。どっちにしろ買いませんが。お金もないことだし(ふめい)。

これから挑戦したいこと

»固定リンク

2007-01-05  アルゴリズム株取引の準備―その1―

※注意:金融商品に詳しい人が読むと,記述のおかしな箇所に気づくかもしれませんが気にしないでください。

お正月の自由課題として,株取引に関係するアプリケーションの構想を練ってみました。それらしい試作品ができたのでご紹介します。

いまのところ,このアプリケーションの商品化の予定はありません。というのも私,株の知識はまったくないに等しいのです。最近まで「ローソク線の読み方すら知らなかった」という状態だったもので,どうも思うようにいかないのです。

相関係数0.98法

「株なんか分かりません」と言いながら,どうしてこの手の分野に足を突っ込んでみたのかというと,ある一冊の本と出会ったからなのです。

上田太一郎センセイの「データマイニング実践集」という本を読んだのだが,その本に「相関係数0.98法」というものが載っていたのです。

これが何かと言うというと――

これらを機械的な計算でやってしまおうというものなのです。もちろん株取引の世界に完璧な方法は存在しません。それでも何千という銘柄の中から,成長銘柄に見当を付けてくれるとしたら,なんだか使えそうな気がしました。

大雑把な手順

上田センセイは,著書にてMS-Excelで解析した例を紹介していました。しかし極小規模なものであり,「全銘柄の中から成長銘柄を探す」といった,実用的な使い方ができるものではありませんでした。

そこで,私はSQLiteで独自の株価データベースを作成することにし,約4000の銘柄を対象に相関係数0.98法を適用してみることにしました。

以下,概要です。

  1. 過去6か月間の全銘柄の株価(日単位)のデータベースを作成する
  2. 全銘柄に対して安値の相関係数を求める
  3. 相関係数が0.98以上の銘柄を抽出する

さて,「4000銘柄の株価を1日単位で記録したとしたら,6か月分ってどれくらいの件数になるの?」と思った人がいるかもしれません。たしか件数は50万件ほどでした。データベースに登録するまで90分くらい掛かりました。

結果発表

いよいよ「相関係数0.98法」の結果発表です。ここまで引っ張っておいて期待を裏切るようですが,残念ながら相関係数が0.98以上になる銘柄はありませんでした(本当のことをいうと,期間の設定の精度がまだ低いのです)。仕方がないので上位5位を紹介することにします。

銘柄相関係数
3226 日本アコモデーションファンド投資法人0.9626
7974 任天堂(株) 0.9611
7230 日信工業(株)0.9606
6726 オー・エイチ・ティー(株)0.9570
7269 スズキ(株)0.9564

どうですか。調査を含めて3日間ほどの作業でしたが,意外にもそれらしい結果が出たような気がします。成長銘柄らしきものを見つけられるようになりましたが,まだ売買の時期を判定する処理はついていません。これからもうちょっと機能を充実させてみようと思います。

»固定リンク