夏痩(なつやせ)

投稿日:
夏痩(なつやせ)の男外車に髪長し   佐藤俊夫

#kigo #jhaiku #haiku #jtbt

 「夏雲システム」で関谷氏が運営しておられる「じたばた句会」に投句したものです。

(みず)(あたり)

投稿日:
(みず)(あたり)車の音に休まれず   佐藤俊夫

#kigo #jhaiku #haiku #jtbt

 「夏雲システム」で関谷氏が運営しておられる「じたばた句会」に投句したものです。

投稿日:
自転車よ(ぼう)()汗やら涙やら   佐藤俊夫

#kigo #jhaiku #haiku #jtbt

 「夏雲システム」で関谷氏が運営しておられる「じたばた句会」に投句したものです。

投稿日:
殴らるゝ夏もありけり終電車   佐藤俊夫

#kigo #jhaiku #haiku #jtbt

 「夏雲システム」で関谷氏が運営しておられる「じたばた句会」に投句したものです。

寿司

投稿日:
車海老()かれて寿司の手際かな   佐藤俊夫

#kigo #jhaiku #haiku #jtbt

 「夏雲システム」で関谷氏が運営しておられる「じたばた句会」に投句したものです。

(むぐら)

投稿日:
明け暮れは(むぐら)を友に()ゆまじく   佐藤俊夫

#kigo #jhaiku #haiku #saezuriha

涼し

投稿日:
涼し()に見ゆるあはれやノフラージュ   佐藤俊夫

#kigo #jhaiku #haiku #saezuriha

株式売買ユーティリティのメンテナンス

投稿日:

 標記システムはこの3月に手直しして、快調に動いている。

 しかし、この株価好調の折柄、どうも売買成績がそれほど良くない。

 毎日の売買シミュレーションの結果は、成績の良いものがテーブルに格納されて提示される仕組みだ。成績の悪いものは日々の値動きにより次第に排除されていく。ふと気づいてこのテーブルを見てみたら、銘柄数が減っている。はじめのうちは100社以上が残っていたが、今見ると70社ほどに減ってしまっていた。

 ははあ、これだな、と思い、先週から少し試行錯誤して、東証一部の貸借銘柄リストを1893社、東証のサイトから貰ってきた。これを対象銘柄テーブルに全部ブチ込んだ。

 前は自分の気に入った東証二部の銘柄も入れていたが、売買両方向でシミュレーションするので貸借銘柄でないと都合が悪い。東証二部の銘柄を混ぜると貸借銘柄でない銘柄を削除したりするのが面倒になることと、東証一部の貸借銘柄は信用の高い銘柄で自然、時価総額も高いということになるから、これも好都合だと思ったのだ。時価総額が高ければ、そう簡単には倒産などしない。以前は時価総額の高い順に上からリストを持ってきていたが、それはシミュレーションに時間がかかっていたから銘柄数を厳選するためで、最近は計算機を性能の良いもの(Corei7+メモリ32GBのデスクトップマシンのVM)に替えたので、この部分は気にしなくてよくなったのだ。

 株価データは無料を期するため、「Yahoo!株価」からトロトロとスクレイピングする仕組みである。ところが、約1900社の全部のダウンロードには50時間ほどもかかる。

 先週の土日からそれに手を付け、シミュレーションはようやく7.1(木)の未明、真夜中に起動した。

 ところが、朝までかかって1527銘柄ほどシミュレーションしたところで、停止してしまった。

 データにゴミでも入ったかな、と思い、一度スクレイピングした全部のデータを消去して、ダウンロードからもう一度取り掛かることにした。また改めて50時間以上かかる。

 しかし、今度も1526銘柄で異常終了してしまった。

 そんなことに、昨日の土曜日の早朝まで費やしてしまった。今まで最大の銘柄数は700銘柄くらいしか食わせたことがないので、そういうバグがあることがわからなかったのである。

 シミュレーション部分はCで書いてある。どこかにメモリの開放忘れでもあるのかな、とソースを読んでみるがそんなことはない。

 しかし、PostgreSQLへのアクセスにlibpqを使っているのだが、そのリザルトオブジェクトを開放していない場所が1か所あることに気づいた。ある銘柄の過去5年分の日足データを列挙するループに入る直前に「res = PQexec(con, sqlstr);」なんてことをやり、この「res」には過去5年分の日足データが入る。「res」をループ内で使うのだが、ループを出た後でこの「res」を開放しないまま、再び「res = PQexec(con, sqlstr);」が呼ばれるのだ。どうも、これを1500回も繰り返すとメモリリークを起こすようだ。

 そこで、日足データ列挙ループの出口を出てすぐのところに「PQclear(res);」というコードを足した。

 これでもう一度様子を見ることにする。