扱う銘柄を増やす

投稿日:

 東証の時価総額上位300社と、自分の気に入った銘柄70社あまりを売買シミュレーションにかけてみていたが、ふと気づいてスクリーニングしてみると、私が採用している「過去5年で10回以上の売買実績があり、その勝率が95%以上であるもの」が70社そこいらしかないことがわかった。

 そこで意を決し、東証の時価総額上位1000社の株価データを持ってきて、計算機の性能が激速になったのを生かしてシミュレーション、その中から残ったものを日常シミュレーションにかけることにした。

 昨夜18時51分に株価の取得をはじめて、今13時間あまり。残り2百数十社だ。普段は差分だけをダウンロードする仕組みなのでこんなにはかからないのだが、さすがに初回はものすごく時間がかかる。シミュレーションと違って、株価のダウンロードはデータ提供元である「Yahoo!ファイナンス」の性能に依存しているからである。

 シミュレーションは3時間強ほどで終わるだろうと見積もっている。

株式売買シミュレーションシステム

投稿日:

 十何年動かしてきた標記システム。

 先日、古いサーバを見限って、セキュリティの堅いデスクトップマシン上の仮想マシンに「Fedora 31」を導入し、その上に移設したところだ。

 さすがはCerelonの32ビットから「Devil’s Canyon」ことCore i7-4790Kへの移設だけあって、性能には目を見張るものがある。

 前記した通り、前はマシンの性能上の限界から、自分が着目した49個の銘柄を分析の対象としていた。

 ところがどうだ。目を見張るようなスピードでカッ飛ぶようになったこのシステム、東証1部上場の時価総額上位銘柄から300社を持ってきて、自分が気になる銘柄71社を合わせた371社合わせてシミュレーションしても、1時間余りで終わってしまう。前のマシンでは20時頃からスタートさせて、23時~24時頃までかかってしまっていたのだ。

 これはもう、大幅に手を広げて、株式の売買に励むよりほかない。

Fedora 31で自作の株式売買シミュレーションシステムを動かす

投稿日:

 自宅で10年以上の間、株式の売買シミュレーションシステムを運用してきた。Linux上で作動する。

 以前、このブログでも少し書いたことがあるが、これで多少儲けても来ている。

 このシステムは、株価をネットからダウンロードするプログラムをPerlで、これを格納するRDBはPostgreSQL、シミュレーションはCで、ユーザインタフェースはPHPで、というハイブリッド(笑)なつくりである。プラットホームは古いIntel Cerelon D “Prescott-V” 2.66GHzのマシン上に最初Fedora Core 5をインストール、順次アップグレードし、最後はFedora 9となっていた。

 2年ほど前からだったろうか、株価をネットからダウンロードするプログラムがうまく動かなくなってしまっていた。株価は「Yahoo!ファイナンス」の時系列データから無料で頂戴してくるのだが、これはデータではサービスされておらず、htmlの中から特徴的なタグに正規表現でマッチングさせて株価を取り出してくる仕組みになっていた。なので、うまく動かなくなっていたのは、さしずめYahoo!ファイナンスの仕様が変わり、htmlのフォーマットなどが変わったのだろう、と思っていた。実際、正規表現でマッチングさせて目的のデータを切り出すコードになっているから、わずかでもhtmlが変わると、途端に消化不良を起こすのである。

 原因究明や修理が面倒で、また、しばらく株式も値動きがあまりなくて面白くなかったから売買もしておらず、シミュレーションシステムも放りっぱなしになってしまっていた。

 そんな折も折、ここへきて、新型コロナウイルス蔓延により外出の自粛が推奨される事態となった。ために、やむなく家に垂れこめている。平日は仕事に(いそ)しんでいるからあまり暇はないが、休日などはどうしても無聊(ぶりょう)となる。

 そこで、意を決して上述のシステムを修理することにした。多分、Yahoo!ファイナンスの仕様、就中(なかんづく)htmlのフォーマットを分析すれば、すぐに修理できるだろうと思っていた。

 ところが、その推量は全然違っていた。

 株価ダウンロードプログラムは、htmlをダウンロードするのに、CPANの「LWP」ライブラリ等は使わず、Perl内から「wget」を呼び出して使っていた。そうしないとSSLの部分が面倒だからだ。

 問題は、このSSL部分にあった。Yahoo!全体の仕様が、TLS1.2未満のSSLを拒絶するよう変更されていたのだ。Fedora 9は、OpenSSL0.9.8までしか対応しておらず、そしてOpenSSL0.9.8はTLS1.0までしか対応していない。

 そこまで確かめて、やっと思い出した。私のシステムが動かなくなった2年ほど前というと、ちょうどSSLのセキュリティホールやSHA-1アルゴリズムの危殆(きたい)化などが取り沙汰され、あちこちのサイトやブラウザがどんどんバージョンアップされて行っていたのだ。

 私はその頃、仕事が非常に忙しく、自宅のPC環境など(かえり)みている暇がなかった。それで、他人事のようにそれらのニュースに接していたのである。

 原因は、wgetとOpenSSLが古い、ひいてはプラットフォームOSが古いことにあった。

 最新のFedoraシリーズのバージョンは「31」になっており、そもそも平成17年(2005)発売のCerelon Dのような32ビットCPUには対応していないから、もう、古いLinuxマシンはそろそろお払い箱だろう。

 私のデスクトップマシンはCore i7 4790K 4GHzにメモリは32GBをブチ込み、ストレージは1TBのHDDから、先日2TBのSSDに換装したところだ。されば、ここはもう、仮想化しかあるまい。

 VMWare Playerをダウンロードしてインストール。非営利であれば無料である。これにFedora 31のisoイメージを本家サイトから貰ってきてインストールする。

 動かしてみてびっくりした。私のような商用のSystem V育ちの者にとって、Linuxの「init」システムは長年慣れ親しんだシステムなのだが、Apache2を動かそうと/etc/rc.d/init.d/の下を覗いてビックリ仰天!何も入っていなくて、空っぽではないか!(笑)

 こ、これは……!とGoogle先生にお尋ね申し上げ、今は「init」は否定の憂き目にあい、「systemd」というものに置き換わっているということを知る。

 「systemctl」というサービス・コマンドの操作を調べ、これでhttpdを動かす。PostgreSQL、PHP、wgetなど必要なものをyum改め、「dnf」で次々とブチ込む。

 それから(おもむ)ろに株価ダウンロードシステムを動かす。……まったく何の支障もなく、プログラムの変更もなく作動するようになった。

 phpで作られたユーザインタフェースについては、POSTやGETの引数を直接グローバル変数として扱うことのできるかつてのPHPの仕様が廃止されてしまっており、そのままでは動かなくなってしまっていたが、そこは彌縫(びほう)的にパッチ当てをした。

 SELinuxを調整しないとPostgreSQLとPHPが協調動作しないなど、多少ひっかかったところもあったが、元の通り株価売買シミュレーションシステムは作動するようになった。

 さすがは Core i7 だ。生マシンから仮想マシンへの移設とはいえ、もはや骨董(こっとう)品に近い Cerelon の生マシンから移設しただけあって、C で書いたシミュレーション部分は、目を見張るような素晴らしいスピードでカッ飛んでいく。

 もともとこのシステムでは、過去5年分の株価データに対し、8900通り×49銘柄の売買シミュレーションを行っていた。Yahoo!ファイナンスに株価の整理値が出揃う20時50分頃から「cron」でこのシステムを起動していたのだが、これだけの組み合わせのシミュレーションを行うと、全部終わるのは23時くらいにはなってしまっていた。

 ところが今回の移設で、それらシミュレーションがなんと10分ほどで完了するようになった。かつて誰かが言っていたが、「稚拙で鈍足なアルゴリズムでも、意外にマシンパワーの進歩で解決されてしまう」ということの実例を目の当たりにした次第である。

 さて、そのようにしてシミュレーション結果を見てみると、やはり、新型コロナウイルスの影響で、相場は鉄火場と化している。大変な勢いで売買指標が出ている。これは大変だ。

 今この鉄火場に飛び込むのは危険である。ウイルス禍が一段落し、上昇相場になったところからが勝負だろう。

来簡の始末

投稿日:

 たまっていた来簡、株式の取引報告書、広報誌など、全部ScanSnapに叩き込んで始末してしまう。

 マシンの性能がいいので、文字の認識もあっと言う間。

株で少し損

投稿日:

 今度の大暴落、さすがに少々損をした。一つは20%、もう一つは17%。

 自作の「株式売買ユーティリティ」は、澄まして損切りメッセージを出してくる。

 7年前の「リーマン・ショック」の時は、このメッセージに従わず、大損をしてしまった。システムが自作であるため、かえって自分のプログラムを信じることができず、ニュースや新聞の記事などから「ここは過敏に行動すべきではない」などと考え、つい買い建玉を持ったままにしてしまったのだ。失敗だった。

 今回はその時の教訓を守り、無情に損切り。冷徹に自作プログラムを信じ、その指示にのみ従う。損切りにあたって、新聞やニュースの論評は一切参考にしないことだ。ブン屋より私のプログラムのほうが正しい。

 今回の暴落では「売り」から入ったので、その分の儲けもあり、傷は浅い。

大発会、これぐらいみごとに当たると

投稿日:

 大発会。

○ 「〔東京株式〕格言通り騒がしく」(時事通信)

大発会ニュース

 半と出た(笑)。

 いやあ、これぐらい当たると、なんだか自分でもオッソロシくなるなあ。……って、私が当てたんじゃない、私が作ったプログラムが当ててるだけですけどね。

ぐはーっ、大発会は売りからかいッ

投稿日:

28年大発会

 平成27年の株の売買は、まずまず、損得のない、平らかな取引状況であった。

 大した持ち玉もなかったから適当に見流していた大納会後の株動向だが、自作売買指示プログラムの大納会後の分析結果を見て、いやもう、ビックリした。これ、全部同じ銘柄だぜ?真っ青に売り気分一色。

 普通、大発会は値上がりするんだけど、私のプログラムは「寄り付きで成り行き」をシミュレーションするようにできているんで、寄り付きで売らなくっちゃならない。つまり、この通り行ったら、初日は損。

 けどまあ、ひとつ、イッとこうかい。丁半、どう出るかねえ、キッシッシッシ……。

カラ売り期日

投稿日:

 去年の11月13日に建玉した信越化学工業(東証4063)、なかなか利益が出ぬまま、来週決済期日が近づいてきてしまった。まあ、たぶん放置しておいても損はしないんだけどさ……。

 タマに私開発の株式ご託宣プログラムも、こうなるんだよな。これが、10日くらい後の建玉だと、そんなに悪くはなかったんだが。

4063-26-11-13