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分ほどで完了するようになった。かつて誰かが言っていたが、「稚拙で鈍足なアルゴリズムでも、意外にマシンパワーの進歩で解決されてしまう」ということの実例を目の当たりにした次第である。

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

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

時事断片

投稿日:
文化と商売

 ……って、いや、日本文化を変えられても困るんだけどさ。

 ま、そもそも、ハンバーガーもサンドイッチもドーナツも、そんな毎日毎日食わんわな。今日日(きょうび)、日本のデブが毎日毎日食うのは化学調味料と脂肪タップリのラーメンだよ(笑)。

 だがしかし、ラーメン屋も相当苦戦していると仄聞(そくぶん)する。万人向けの味の中に、変わった趣向をエイヤと入れたりするものだから、結果として味に飽きやすいんだろうね。

大阪・拳銃強奪

 オッソロシイ。早期逮捕、裁判、厳罰、徹底膺懲(ようちょう)を待ちたい。

 この男を見つけ出し、狩り、投石し、殴り、叩き、謝罪させねばならぬ。許すな。

翌日追而(おって)書き

 この男は翌日逮捕された。飯森裕次郎というこの男、これがまた、障害者手帳を持つ精神障害者と言うことで、いろいろと小難しそうである。また、有名人とまでは言えないまでも、父は大会社の重役で、これがまたいらぬ取沙汰をされそうだ。

翌々日更に追って書き

 しかも、更にややこしいことに、元自衛官であることまで出てきた。それでまた、ネットとテレビの間で騒がしくなっている。テレビニュースなどは「テレビ会社の重役」ということをまったく報道しないまま、「元自衛官」ってのを先に報道したそうだ。ところがネットの新聞ソースなどでは「テレビ会社の重役の息子」というのが先に出た。

 これについて、ネット上では「テレビ業界に都合の良い偏向報道だ」「これだからテレビは駄目なんだ」などと騒ぎ立てている者が多いようだ。

あー、これ、既にあるよな……

 これ、なー……。国とかはまあ、昔からすでにやってるよな。

 戦前は陸軍士官学校・海軍兵学校。これは当時、卒業すれば高等教育修了とみなされ、大学卒業どころか、「それ以上の栄誉」とされた。……まあ、戦争に負けちゃったからねえ……。跡形も残っちゃいないが。

 戦後は防衛大学校とか防衛医科大学校が「給料くれる大学」の代表だろう。こちらは長い間、各種学校と同じ扱いとされ、卒業しても大学卒業とはみなされなかったが、30年ほど前に学位認定機関となり、今ではれっきとした大学で、博士号の取得まで可能である。結果、防衛大学校も防衛医科大学校も、東大ほどではないにもせよ、各国立大程度には難しく、優秀な学生を集めることに成功している。数こそ少ないが、世界各国からの留学生も受け入れており、なかなかどうして、魅力的なところである。

 しかし、防衛大学校や防衛医科大学校は卒業したら自衛官にならなければならない縛りがあり、また在学中もピシピシと体育会的シゴキが待ち構えていて、そこが敬遠される理由になってもいる。

 なので、「給料はくれるわ、入学後のシゴキなんかないわ、卒業後は何をしようが自由だわ」という、何の縛りもない大学を作ったら、優れた頭脳が殺到して成功するのではないか?

 国でやりませんかね。教育費も高騰していることですし。

PC乗り換え

 最近私も、自宅のPCのHDD容量が逼迫してきたので、4TBのHDDを買おうか、少し奮発して2TBのSSDを買おうか迷っている。

 「迷っているヒマがあったらSSDの4TBを買え!」……と、昔の私なら即断したところだろうが、いや、待ってください、4TBのSSDって、8万円からするぞ(苦笑)。

 ムリでしょうが。8万円あったら、安手のノートPCを1台買うぞ。

DTCP-IPクライアント

投稿日:

 妻と娘はいつもテレビの前にひしめいている。

 私はあまりテレビを見ない。しかし、たまに見たい番組もある。そういう時に限って愚妻愚娘(ぐじょう)によってテレビもレコーダーも蟠踞(ばんきょ)占有されている。

 子供の頃の私は父母兄弟によってテレビの前から追いやられ、見たいテレビなど見られない立場にあった。大人になってからは十何年もDQN(ドキュソ)屋敷の大部屋で暮らしていたので、そもそもテレビがどうとか言うような生活ではなかった。結婚してからは妻や娘がテレビを見るので、私は見たいものなど見られない。そうこうするうちにテレビなど見たくもなくなってしまい、今度は裏返ってテレビもテレビ局もマスコミも大嫌いになってしまった。

 しかし、ごくたまに見たいドキュメンタリーやドラマもある。年に2、3番組というところか。今夜放映のNHKスペシャル「人類誕生第3集 ホモ・サピエンス ついに日本へ!」は、見たい。

 リアルタイムで見ると途中で便所にも行けないから、当然ハードディスクレコーダで録画だ。しかし、見たい時間帯は愚妻愚娘どもとぶつかる。

 他方、ハードディスクレコーダはPCから接続できる。今時家庭内のLANにつながらないハードディスクレコーダはないので、電気的にはPCとつながっているのが普通だ。加えて、最近のオーディオ・ビジュアル機器には大抵「DLNAサーバ」という機能がついている。私の家のハードディスクレコーダはパナソニックの「DIGA」DMR-BW690という古い機種だが、これにも勿論DLNAサーバの機能がある。

 一方のPCは、これも最初から「DLNAクライアント」というプロトコルがインストールされている。Windowsに最初からインストールされている「メディアプレイヤー」にも、このDLNAクライアントの機能がある。DLNAとは「Digital Living Network Alliance」の略であり、つまり業界標準の映像等共有配信プロトコルと思えばよかろう。

 但し、DLNAサーバやクライアントがあるだけでは、ハードディスクレコーダ内の録画番組をPCで見ることはできない。録画番組の一覧を見ることができるだけだ。自分で家庭用ビデオやデジカメで撮った動画をハードディスクレコーダに移した場合などはそれをDLNAプロトコルで見ることができるが、放送の録画は見られないのだ。これは、「DTCP-IP」、すなわち「Digital Transmission Content Protection – IP」という規格により番組がプロテクトされているためである。このプロテクトがかかった番組をPCで見るためには、正規のコピー制御機能を実装した「DTCP-IPクライアントソフトウェア」をPCにインストールする必要がある。

 このDTCP-IPクライアントにはフリーのものはなく、通常は有料である。とはいえ、1900円とか、そんな値段だから心配はいらない。

 私はネットの評判を参考に、「sMedio TV Suite」というソフトウェアをMicrosoft Storeから入手した。体験版は6日間無料である。

 こうして、愛用のWindowsタブレット「ASUS TransBook T101HA-G128」でテレビが視聴できるようになった。家族一同リビングでくつろぎつつ、しかしお互い別の好きな番組を(いさか)いなくのんびり見ることができるわけである。

無題

投稿日:

 パソコンが壊れて修理。自作だからメーカに電話してポン、というわけにもいかぬ。




どうやらHDDの自然劣化らしい。新しい Deskstar 80MB(IBM ATA100)を購入してきて取り付ける。また壊れたらイヤだから、ファンをケースに増設した。
 苺、かなり繁茂しつつある。



 こうなってくるとなんだか植えた場所も狭苦しく、なんだか気の毒。
 しかし、ミョーに草花がいとおしい。子供のころ、草花を植えるとその育つスピードの遅さにやきもきしたものだったが、いまは草花が音を立ててぐんぐん伸びているように見える。
 結局、俺もオッサンになってしまい、人生おしまいだってことだね、ほんと。草花がいとおしいようじゃオシマイだよ。しかしまた、そんな自分自身がいとおしかったりもする。