山本ワールド
Windowsプログラミング
アルゴリズム Vitual C++ 2008/2013によるWin32/Win64 APIレベルのプログラム 基礎 Vitual C++ 2008/2013によるAPIレベルのプログラム(32/64bit) Wix3でインストーラーを作る Visual C++ 2008 Standard Editonによるフォームアプリケーションのプログラム(32/64bit) Vitual C++ 2008 Standard EditonによるAPIレベルのプログラム(32/64bit) Windows 7対応 Visual C++ 2008 ExpressによるAPIレベルのプログラム Visual C++ 2005 ExpressによるAPIレベルのプログラム Visual C++ Versiosn 5 BORLAND C++ Windowsプログラム全般 Excel VBA その他株漬キラーVersion2.2.0.12
概要
一度取り込んだ日足データは、メニューより全保存を実行すれば、次回からは差分のみダウンロードですみます。
Yahoo! ファイナンスのホームページから大量のデータを読み込むと帯域制限がかかるようなので、特に最初の読み込みの全銘柄の取得には非常に時間がかかります。一時ファイルに保存しておけば、二度目以降は、現実的な時間で読み込み可能です。お勧めは、銘柄を指定するファイルを作成し(100銘柄程度に抑えて)読み込むことです。
使用方法 ※現在サポートは行っていません。
2015/06/01 株漬キラー 32bit/64bit Version 2.2.0.13
Yahoo! ファイナンスで為替の時系列が表示されなくなったので為替を扱う機能を削除しました。
2015/03/01 株漬キラー 32bit/64bit Version 2.2.0.12 Vectorで公開
2015/02/22 株漬キラー 32bit/64bit Version 2.2.0.12
Yahoo! ファイナンスの株価データーが以前は50日分が1ページで掲載されていたものが、現在20日分となっているため、読み込みを行うと50日ごとに30日分歯抜けとなる現象が発生していました。
今回の修正は読み込み単位を20日単位に変更しました。
2015/01/09 株漬キラー 32bit/64bit Version 2.2.0.11 Vectorで公開
2014/12/30 株漬キラー 32bit/64bit Version 2.2.0.11
読込み方法の変更(帯域制限、リトライ処理)
Yahoo! ファイナンスのホームページから大量のデータを読み込む(100MB以上?)と帯域制限がかかるようなので、読み込み帯域の制限とリトライ処理を追加しました。修正により時間がかかりますが、全銘柄の読み込みが確実にできるようになりました。
日曜日に全銘柄を数十日分読込むと 、半日程度かかることがありました。下記に読込み時に要した時間等を示します。
一時ファイルを使用せずに全銘柄を読み込む場合
読込み時間 42968sec 読込み日付 2014/8/25~2014/12/26 読込みサイズ 537.47MB 3786銘柄読込み時に帯域制限が2回ほどかかり1回あたり100分程度読込み時にYahoo!側がエラーを吐き出している。
別の日に実行すると半分の時間で読み込める場合もある。
一時ファイル(2014/8/23~2014/12/19)とインターネットより2014/12/20~2014/12/26読み込む場合 3786銘柄
読込み時間 611sec 読込み日付 2014/8/23~2014/12/26 読込みサイズ 162.58MBインターネットからの読込み時に証券コードの範囲を指定可能とした
全銘柄を読み込むことは、非常に時間がかかる処理になりました。昔は、1時間もあれば読み込めた記憶がありますが、今では、最大で半日程度も必要となります。
年々、Yahoo!ファイナンス側のホームページが派手になったり広告が増えたりし必要なデータに対して無駄なデータが非常に多い状態となっています。
証券コードの範囲を指定して読込みおのおの別のフォルダーへテキスト形式でエキスポートしておき、今回追加したツール(kabuadd)により1つのフォルダーに合成することができます。
拡張DLLの読み込み処理の一部を変更
拡張DLLの一部が使用不可能となっていたので、修正連結決算読込み処理の修正
Yahoo!ファイナンス側のホームページの変更により読込みが正常に行われないケースが見られたので、修正読込み時に表示されるダイアログボックスのメッセージ処理を修正
Windows XPとそれ以降のWindowsではメッセージ処理の一部が異なっている。Windows XPで表示や操作に対して動作がもたつく現象が見られたので、メッセージループを修正
株価をエクスポートしたフォルダーを1つのフォルダーへ合成するツールを追加
コマンドライン版ですが、2つのエクスポート結果より、日付等の重複を除いて1つのフォルダーに統合するツールを追加しました。株価をエクスポートしたフォルダーより日付範囲を指定して証券コードごとにファイルを作成することが可能
従来よりコマンドライン版ですが、エクスポートされた全銘柄を証券コードごとのファイルに分解することができました。今回、日付範囲を指定して証券コードファイルを作成することができるようにしました。
銘柄を指定して読み込むためのファイルを添付
一時ファイルが使えない初期時の全銘柄の読み込みが非常に時間のかかるので、銘柄を指定して読み込むためのベースのファイルを添付しました。Excelやメモ帳なので、不要な銘柄を行ごと削除して保存し、読込み時に指定すれば、快適な読込みができます。
2014/07/23 株漬キラー 32bit/64bit Version 2.2.0.10
2014/07/18 株漬キラー 32bit/64bit Version 2.210 公開中
変更点
最新営業日が読み込みできなかった場合の再読み込み処理の追加。
Yahooファイナンス側でたまにホームページの最新日が表示されないなどの現象が確認できています。この現象は、日によって頻度が異なります。おそらくサーバーの負荷が一因と思われます。最新日が確実に取引されていると確認できる場合は、再読み込みをするように修正しています。ただし、最新取引日が確実に確認できない場合は、再読み込みにより読み込みが異常に遅くなるため、再読み込みしないようにしています。
連結決算の読み込み不都合の修正
ソースをVisual C++ 2013 Expressでコンパイル可能となるように修正した。
一部の処理についてメモリー消費を抑えるように変更
条件によっては、スタックオーバーフロー等が見られたため、スタックの消費を抑えるようにソースを修正しています。シミュレーションの修正
全銘柄シミュレーション時に株価が0円表示されるのを修正。ダイアログボックスの表示等の修正
時間のかかる処理中のカーソル表示を変更。銘柄限定読み込み時の全体銘柄数の表示を修正
ダウンロード
Version 2.210の正式リリース版をVectorにアップロードしました。
http://www.vector.co.jp/soft/winnt/business/se420730.html
2014/07/03 株漬キラー 32bit Version 2.210β 開発中
変更点
最新営業日が読み込みできなかった場合の再読み込み処理の追加。1年分の株価を読み込むときなどの存在しない証券コードへの読み込み速度を改善
連結決算の読み込み不都合の修正
ソースをVisual C++ 2013 Expressでコンパイル可能となるように修正した。
2014/07/03 株漬キラーの不都合等の情報
最新営業日の株価が読めない銘柄が発生する
最新営業日の株価が読み込めたり読み込まなかったり、しかもその銘柄が固定されていないとの情報を得ました。
IE10でチェック
Yahoo!側か株漬キラー側かの切り分けのため、IE11で同じ銘柄を同じURLで何度も更新して最新営業日の株価が表示されないケースがあるか調べた。URLは http://stocks.finance.yahoo.co.jp/stocks/history/?code=1316.Tで、2014/06/29の22:46と22:44のIEの表示結果を下図に示す。(図をクリックすると大きな図が表示されます)
上図のとおり、最新営業日である6/27が時系列に表示される場合とされない場合がある。
htmlファイルを5秒ごとに読み込み時系列をチェック
時系列のhtmlファイルを2014/6/30 0:13~2014/6/30 6:12の時間帯において5秒置きに取り込み最新営業日が表示されているかチェックする。htmlファイルを定期的に取り込むプログラムの作成
Visual C++ 2008を使用し、http://info.finance.yahoo.co.jp/history/?code=1316&sy=2014&sm=4&sd=20&ey=2014&em=6&ed=27&tm=dを5秒置きにd:\temp\yahootestフォルダーに連番のファイル名に保存するプログラムを作成した。ソースコード
htmlファイルより最新営業日を表示するプログラムの作成
Visual C++ 2008を用い取り込まれた連番のhtmlファイルより最新営業日を抽出するプログラムを作成した。d:\temp\yahooフォルダーを対象にし、当該フォルダーに含まれるhtmlファイルを順番に開き最新営業日を標準出力に表示する。
リダイレクトでファイルに落とせば一覧のファイルが作成できる。
表示例
D:\temp\yahootest\000191.html,2014年6月27日 D:\temp\yahootest\000192.html,2014年6月27日 D:\temp\yahootest\000193.html,2014年6月27日 D:\temp\yahootest\000194.html,2014年6月27日 D:\temp\yahootest\000195.html,2014年6月27日 D:\temp\yahootest\000196.html,2014年6月27日 D:\temp\yahootest\000197.html,2014年6月26日 D:\temp\yahootest\000198.html,2014年6月26日 D:\temp\yahootest\000199.html,2014年6月27日 D:\temp\yahootest\000200.html,2014年6月27日 D:\temp\yahootest\000201.html,2014年6月27日ソースコード
結果
2014/06/30 0:13~2014/06/30 6:12の時間帯
証券コード1316を2014/04/20~2014/06/27の時系列を取得します。最新営業日は2014/06/27です。 http://info.finance.yahoo.co.jp/history/?code=1316&sy=2014&sm=4&sd=20&ey=2014&em=6&ed=27&tm=dサンプル数4320回のうち最新営業日が6/26のケースが503回あった。これは全体の約12%であった。
2014/07/01 0:55~2014/07/01 07:10の時間帯
証券コード1316を2014/04/20~2014/06/27の時系列を取得します。最新営業日は2014/06/27です。 http://info.finance.yahoo.co.jp/history/?code=1316&sy=2014&sm=4&sd=20&ey=2014&em=6&ed=27&tm=dサンプル数4320回のうち最新営業日が6/26のケースは0回あった。
2014/07/01 7:57~2014/07/01 14:10の時間帯
証券コード1380を2014/04/20~2014/06/27の時系列を取得します。最新営業日は2014/06/20です。 http://info.finance.yahoo.co.jp/history/?code=1380&sy=2014&sm=4&sd=20&ey=2014&em=6&ed=27&tm=dサンプル数4320回のうち全数で06/20の取得ができました。
2014/07/01 21:59~2014/07/02 04:20の時間帯
証券コード1301を2014/04/24~2014/07/01の時系列を取得します。最新営業日は2014/07/01です。 http://info.finance.yahoo.co.jp/history/?code=1301&sy=2014&sm=4&sd=24&ey=2014&em=7&ed=1&tm=dサンプル数4119回のうち全数で07/01の取得ができました。
2014/07/02 07:51~2014/07/02 14:04の時間帯
証券コード1316を2014/04/24~2014/07/1の時系列を取得します。最新営業日は2014/06/27です。 http://info.finance.yahoo.co.jp/history/?code=1316&sy=2014&sm=4&sd=24&ey=2014&em=7&ed=1&tm=dサンプル数4320回のうち全数で07/01の取得ができました。
2014/07/03 00:09~2014/07/03 06:40の時間帯
証券コード1316を2014/04/25~2014/07/2の時系列を取得します。最新営業日は2014/06/27です。 http://info.finance.yahoo.co.jp/history/?code=1316&sy=2014&sm=4&sd=25&ey=2014&em=7&ed=2&tm=dサンプル数4320回のうち全数で07/02の取得ができました。
まとめ
日曜日から月曜日にかけて、最新営業日が読み込めないケースが発生しているが、その後は発生していない。一時的なものか毎週発生するものかは、次の日曜日に確認しないとわからない。
連結決算が読み込めない
YahooファイナンスのURLが変わっていたため変更したら読み込みができました。プログラムの変更等の方針
最新営業日株価が読み込めないときがある点の修正
最新営業日の株価が読み込める時と読み込めない時の違いが、Yahooファイナンス側のサーバーの負荷等の要因があると考えられる。時系列のページを見ると最新営業日に取引があった場合(営業時間は表示されない)、必ずリアルタイム株価に日付が表示されている。この日付と時系列の日付をチェックし、違いがあれば再度読み込む等の手法で解決する予定である。読み込み時が2014/06/29で最新取引日が2014/06/20である場合のホームページの例(図をクリックすると大きな図が表示されます)
Visual C++ 2013 Expressへの対応
いまだに本プログラムのソースを改造して使っているとの情報を得たことがないが、将来性を考慮しVisual C++ 2013 Expressでコンパイル可能なようにソースへの修正を加える。なお、従来のコードは初期バージョンがVisual C++ 2005で開発されていたため、Visual C++ 2005を考慮した記述となっていたが、中途半端なので、Visual C++ 2008とVisual C++ 2013をターゲットとした。2014/06/27 株漬キラー 32bit Version 2.210α
2014年6月25日より読み込みができないとの連絡をいただきました。
Yahoo!ファイナンス時系列のURLアドレスが変更となったこと、ホームページの構成が若干変更されたため読み込みができなくなりました。
とりあえず読み可能となるようプログラムを修正したバージョン2.210αを作成しました。
kabu2210a.zip
2014/06/17 株漬キラー 32bit/64bit Version 2.209
Version 2.209の正式リリース版をVectorにアップロードしました。
http://www.vector.co.jp/soft/winnt/business/se420730.html
2014/05/24 株漬キラー 32bit Version 2.209α
2014年5月中旬よりYahoo!ファイナンスのホームページの構成が変更されたため読み込みができなくなりました。
とりあえず読み可能となるようプログラムを修正したバージョン2.209αを作成しました。
しばらく忙しいので正式リリースは見送りました。
32bit版/64bitの実行ファイルのみダウンロードできるようにしました。
kabu2209a.zip
2013/07/20 株漬キラー 32bit/64bit Version 2.208
絞り込みの不都合の解消
絞り込み条件で一部絞り込みが無視する現象が発生しました。Version 2.207で株価の内部表現方法を整数から浮動小数点に変更したときにメンバ関数の引数を修正しなかったことにより継承前の絞り込みを実行しない関数が実行されておりました。
Version 2.208で修正を行いました。プログラムはVectorに置いてありますhttp://www.vector.co.jp/soft/winnt/business/se420730.html
2013/07/20 株漬キラーで何年分の株価が読み込めるか(拡張指標を使用しない場合)
Windows 32bit版の場合、認識するメモリの最大値は3GBです。しかも上位アドレスはシステムが使用するため実際は2GBまでです。
1日に3~5年分程で読み込みを追加しながら試してみました。
2002年~2013年までは取り込み可能でしたが、1995年~2013年はRuntime Error!が発生しました。これは必要なメモリ容量が確保できないため、発生するものです。
自宅の環境では1年分を読み込むのに1時間強掛かります。
Windows 64bit版の場合、2GBの制限がありません。数日にわたって分割して読み込んだところ1985年~2013年まで読み込みを確認しました。これ以上古い年は試していません。
一度に何年も取り込むとレスポンスが悪くなるので、寝る前に3年程度読み込みを設定し数日にわたって取り込むとうまくいきます。最新データのみ追加して取り込むことができます。 ただし、分割は日数単位のみでたとえば1回目で証券コード半分読み込み2回目で完了という読み込み方はできません。
2013/07/20 分割しながら読み込む方法
ファイルメニュより読み込みを選び、読み込み方法を一時ファイルまたは任意ファイルにチェックを入れます。銘柄選択は株価ファイルの銘柄にチェックを入れます。読み込み日時に読み込みしたい日付の範囲を指定します。ファイルに保存されている日付の範囲を超えた分がインターネットから読み込まれます。
2013/07/20 読み込み・任意ファイルとエクスポートの使用例
たとえば自宅のディスクトップパソコンで株価データを読み込み・エクスポートを行い、モバイルパソコンで株価データを任意ファイルで読みだせば、株価データを持ち歩くことができます。
2013/03/20 株漬キラー 32bit/64bit Version 2.207
今回のバージョンアップは下記の変更を行っています。
Yahoo! ファイナンスのホームページの構造が変わったため前バージョンで読み込みできなくなっていたのでプログラムを修正。
為替相場のデータを取り込めるように変更。 為替相場に対応するために内部データを32bit整数から単精度浮動小数点に変更。バイナリ形式の保存形式も単精度浮動小数点に変更したため、前バージョンのデーターは前バージョンの株漬キラーでテキスト形式でエクスポートし本バージョンでテキスト形式で読み込む必要がある。
Visual C++ 2008で作成されており、ソースコードも付属しています。(Programs Files\kabudukekiller\src等のフォルダーにsrc.zipとしてインストールされます。)
vectorよりkabu2207.zipをダウンロードし、展開し以下のファイル取得します。
readme.txt
setup32.msi
setup64.msi
32bit版を使用したい場合は、setup32.msiを実行、64bit版を使用したい場合は、setup64.msiを実行し株漬キラーをインストールします。
アンインストールは、コントロールパネルのプログラム(Windows 7)で行えます。
Vector ダウンロード kabu2207.zip
拡張DLL使用時に複数、時系列や全銘柄を開いた場合、終了時に例外が発生するのを修正
全銘柄等で右クリック時のメニューのリンク先を修正。
為替相場を読み取れるように証券コードを拡張
為替は小数点2位まで取り扱う必要があるため、全面的に単精度浮動小数点を用いるように変更。保存形式も変更
動作確認環境
ProBook 5220m(Core i3-M370)
Windows 7 64bit Home Premium Service Pack 1VirtualBox上での確認(ProBook 5220m(Core i3-M370))
Windows 2000 Service Pack 4(2CPU 512MB)Windows XP Professional Service Pack 3(2CPU 1024MB)
Windows Vista Ultimate Service Pack 2(2CPU 1536MB)
Windows 7 Enterprise 32bit Service Pack 1(2CPU 1024MB)
Windows 7 Enterprise 64bit Service Pack 1(2CPU 1536MB)
Core i7-2600(3.4GHz) Windows 7 32bit Home Premium Service Pack 1
Core i3-2100(3.1GHz) Windows 7 32bit Home Premium Service Pack 1
Core2Duo E6850(3.0GHz) Windows XP Service Pack 3
Core2Duo E4300(3.0GHz) Windows XP Service Pack 3
Pentium 4 531(3.0GHz) Windows XP Service Pack 3
2012/03/10 株漬キラー 32bit/64bit Version 2.206
今回のバージョンアップは、作者のホームページアドレスが変更となったため、ヘルプのリンク先を変更しました。ダウンロード
2010/02/21 株漬キラー 32bit/64bit Version 2.205
2009/12/04 株漬キラー 32bit/64bit Version 2.204
Windows 7 32/64bitに対応。株価分割に関してバグ修正を図る。H22 2/1まで使用可能
64bit版
インストーラーは付属していないので、解凍後、kabu64フォルダー内のkabu64.exeを実行する。実行に際しては、Microsoft Visual C++ 2008 再配布可能パッケージが(x64)が必要である。
2009/11/23 株漬キラー 64bit版
Visual C++ 2008 Standard Edition を購入したので株漬キラーを64bit化してみた。とりあえずコンパイルができようにしただけであるが、1994年から2009年までの約11年間の株価の取得ができた。32bit版では拡張DLL内ののメモリ確保に失敗して11年分は読み込み不可能であった。動作についてはほぼ同じスピードか少し速い程度であった。(Windows 7 64bit版での比較)デバック版で11年分を読み込もうとすると4Gのメモリでは強烈にスワップが発生し数分パソコンが操作不能になった。リリース版ではデバックに必要な情報やガード領域等が無いので問題ない。
ちなみにメモリ使用量は、12年分の全上場会社分の日データーで約1.78Gbyteである。(Windows 7 64bit版 全部の拡張DLLを使用した場合)
これをファイルにエクスポートすると262MBほどである。表示や検索の高速化のために移動平均等の計算結果をメモリに展開しているためである。
64bitへの移植メモ
GetWindowsLong は GetWindowsLongPtrに変更する。 GWLで始まる定数はGWLPに変更する。
SetWindowsLongも同様
ポインタは64bitとなる。
newやmallocの引数は64bitである。(32bitより計算する場合は型落ちに注意)
size_tより環境に依存しないSIZE_Tを使う。
32bitと64bitでソースコードを使い分けるときは64bitで定義される_WIN64が定義されているかどうかで使い分ける。
DLLやLIBファイルの名前に変更は無い。64bitでもcomctl32.libだったりする。(違うディレクトリにLIBファイルがリンクされる)
printf等で64bitの数字を表示するには %I64d と表記する。
2009/11/11 株漬キラーVersion2.203
インストーラーを実装。解凍ファイルよりsetup.msiを実行すれば株漬キラーと必要であればVisual C++ 2008 ランタイムもインストールされる。
アンインストールも可能。
インターネット読み込み時のスレッド処理を改良。読み込み時のCPU利用率が改善。
2009/10/12 株漬キラーVersion2.202β
拡張DLL周りのバグ修正
2009/10/12 株漬キラーVersion2.201β
前バージョンのバグ修正版です。またヘルプファイルを更新しました。
2009/10/3 株漬キラーVersion2.200β
今回は、読み込み不能となっていたのでとりあえず読み込み手段を提供するためにデバック中のものを公開した。したがっていろいろな機能が増えているが、デバックされていない機能が多いため、あくまでも暫定版の公開である。試用版なので209/12/1以降の日付は読み取りできない。(今後シェアウェアを目指している)
Yahoo!ホームページが変わったことにより読み込みができなくなっていたので修正。
高速化のため読み取り・保存形式としてバイナリ形式を選択可能とした。
連結決算をマルチスレッドで読み込みできるようにした。
全銘柄表示等カーソル行の1列目の内容をステータスバーに表示するように改良。(ミグスクロールで現在の行の銘柄がわからなくなるため)
ランキングで読み取り・テキストファイルで指定される銘柄のみ読み取り(一部機能しない)
拡張DLLでテキストファイルの内容を表示する機能を追加。たとえば業種情報などを取り込ませることができる。添付しているコマンドライン版の1day.exeを使って、標準出力に業種情報を表示できる。(リダイレクトでテキストファイルに落とし株漬キラーで取り込みが可能)
使用する拡張DLLを選択可能。(デバック中)
1day.exeを使って取り込んだファイルの一部
1301,水産・農林業,東証1部,(株)極洋,"水産品の開発輸入・買い付け主力。すしネタに強み。加工食品は業務用が軸。海外加工比率高い",194 1332,水産・農林業,東証1部,日本水産(株),"水産品に特化した食品会社を志向。家庭用冷食で成功。M&A駆使し世界的SCM網構築目指す",281 1334,水産・農林業,東証1部,(株)マルハニチロホールディングス,"水産最大手、三国間取引推進。07年、マルハとニチロが統合し加工食品を拡大中。M&Aに積極的",144 1376,水産・農林業,JASDAQ,カネコ種苗(株),"野菜・牧草種子が収益柱。農薬や農業・園芸資材を展開。配合肥料で住友化学と共同開発",960 1377,水産・農林業,東証1部,(株)サカタのタネ,"種苗専業で首位。好採算の一代交配雑種に強み。海外展開を積極化、中国・インド深耕へ",1412
ダウンロード
最新版はVectorからダウンロード願います。株漬キラー Version 2.200β 試用版
2009/3/8 株漬キラーVersion2.173β
2008/12/21 株漬キラーVersion2.172β
連結決算表示において、経常利益等桁数が多い金額については、カンマ区切りと百万円単位で表示するように変更。クリップボードにコピーできるように修正。
ダウンロード
株漬キラー Version 2.172β
2008/09/10 株漬キラーVersion2.171β
2008/02/25 株漬キラーVersion2.160β
- ロウソク・出来高・指標1・指標2の縦幅を変更できるように修正
- 簡易クロスヘアカーソルをサポート
- 株価データエクスポート時に開始日時を指定可能とした。
- ヘルプファイルの修正
上記修正に伴いヘッダファイルの一部が変更となった。よってDLLも変更した。
ダウンロード
株漬キラー Version 2.160β
移動平均増加率DLL Version 1.013β
グランビルの法則DLL Version 1.013β
一目均衡表DLL Version 1.013β
ポリシジャーバンドDLL Version 1.013β
株価移動平均乖離率DLL Version 1.013β
出来高移動平均乖離率DLL Version 1.013β
日経平均βDLL Version 1.013β
2008/02/09 株漬キラーVersion2.150β
印刷関係
複数銘柄を1枚の用紙に印刷できるように改良。(表示されている銘柄を1枚に収める。)
印刷及びメタファイル作成時に線の太さ・文字サイズ・日幅を指定できるようした。
メタファイル・余白等が株漬キラー実行中については保存されるように修正。
先行日数の指定が可能。(チャートオプションで指定) たとえば印刷時において株価最終日から1週間分を記入できるようにグラフに空きスペースを確保できる。
インターネットからの読み込み等に表示される状況表示のダイアログのメッセージループの変更
ダイアログの再表示等がスムーズになった。
ダウンロード
2008/02/02 株漬キラーVersion2.140β
日経平均β(営業日180日)のサポートに伴いDLLの追加、及び追加に伴う株漬キラー側の改良。
ダウンロード
株漬キラー Version 2.140β
移動平均増加率DLL Version 1.012β
グランビルの法則DLL Version 1.012β
一目均衡表DLL Version 1.012β
ポリシジャーバンドDLL Version 1.012β
株価移動平均乖離率DLL Version 1.012β
出来高移動平均乖離率DLL Version 1.012β
日経平均βDLL Version 1.012β
2008/01/27 株漬キラーVersion2.130β
メタファイル出力時のファイル名の修正
メタファイル出力時の画像サイズ設定が株漬キラーを実行している間は保存されるように修正
各DLLのドキュメントおよびバグ修正
ユーザー拡張DLLの仕様書の修正
ダウンロード
株漬キラー Version 2.130ベータ
移動平均増加率DLL Version 1.011
グランビルの法則DLL Version
一目均衡表DLL Version 1.010
ポリシジャーバンドDLL Version 1.010
株価移動平均乖離率DLL Version 1.010
出来高移動平均乖離率DLL Version 1.011
2008/01/22 株漬キラーVersion2.120β一目均衡表・ポリシジャーバンド・移動平均増加率・移動平均乖離率・グランビルDLL Version 1.010β
バク修正版
2008/01/20 株漬キラーVersion2.110β一目均衡表・ポリシジャーバンド・移動平均増加率・移動平均乖離率・グランビルDLL Version 1.000β
DLLについてはデバック中です。株価キラーの一部の指標をDLL化したことにより512MBメモリを搭載しているWindows XPでの動作が軽くなりました。DLLを使わなければ半分程度の容量で動作可能。もちろん全部のDLLを使用すれば重くなりますが。実行時に読み込まれるDLLは、kabudukekiller.exeがあるフォルダーにあるDLLとなります。また、一部の計算量が軽い指標については表示や検索のタイミングで算定するように変更してメモリの使用量を少し減らしました。このβーバージョンでは、Version 2.00の検索条件を読み込むとメモリオーバーフローが発生します。使用する場合はcond.csv chat_opt.csv lvw.csvを削除してから実行してください。いずれ前のバージョンからの読み込みにも対応する予定です。
2008/01/12 株漬キラーVersion2.100βを拡張する一目均衡表DLL Version 1.000β
2008/01/12 株漬キラーVersion2.100β
修正点
DLLで指標を追加できるように修正
連結決算をファイルから読み込みプログラムのバグ修正
コマンドラインに引数により自動的にインターネットから株価を読み込んでシャットダウンすることが可能
引数
/rcs 限定銘柄インターネットからの読み込み・連結決算をインターネットからの読み込み・保存・シャットダウンを行う
ダウンロード
12/31 株漬キラー開発経過
1.DLLで指標をユーザーが拡張できるように開発中のスクリーンショット(一目均衡を作成中)
2.Visual C++ 2008にも対応
12/06 インターネットからの読み込み速度検証
ある方から、株価読み込みが遅いという指摘をいただきました。そこで、検証してみました。
検証環境
Pentium-M(Banias 1GHz) 電力設定は最大パフォーマンス
RAM 512MB
OS Windows 2000 SP4
検証プログラム Visual C++ 2005 Express上でdebugモード
Webサーバー 同パソコンにhttpdをインストール。株漬キラーは、全指標等をメモリ上に展開するため、極端にメモリが少ないとスワップが頻繁に発生し大幅にパフォーマンスを落とすので注意。(RAM 128MB等)
読み込みページによる速度の違い(Yahooファイナンスから読み込む場合)
読み込む株価は12/05で 読み込みが終わった時間は22:57です。
- 自作のweb取得プログラムを改良し詳細から(たとえば http://quote.yahoo.co.jp/q?s=7203.t&d=t)読み込む。
- 自作のweb取得プログラムを改良し時系列から(たとえば http://table.yahoo.co.jp/t?c=2007&a=12&b=5&f=2007&d=12&e=5&g=d&s=7203.t&y=0&z=7203.t)読み込む。
2つの条件は、全銘柄について、読み込み時間帯によって差が出にくいように交互に1,2の条件で読み込むようにして時間を計測してみた。結果は、
1.詳細. 2.時系列 読み込み時間 229秒 163秒 読み込み株数 2017 2017 1銘柄当りhtmファイル 22k 17k である。まとめると1日分でもサイズが小さい時系列のほうが高速に読み込めることがわかった。
単純な読み込みと株漬キラーとの読み込み速度の違い(Yahooファイナンスから12/06の時系列読み込む場合)
- Yahooサイトより単純な読み込み(自作のweb取得プログラム)を使って,株漬キラーと同一銘柄を読み込む
- Yahooサイトより株漬キラーVersion2.00を使って限定銘柄読み込み
結果は、
1.単純な読み込み 2.株漬キラー 読み込み時間 1223秒(20.4分) 862秒(14.4分) 読み込み株数 4034 4034 実効転送レート 46kbyte/s 65kbyte/s
株漬キラーのほうが複雑な処理を行っているので、読み込み時間は遅いが、マルチスレッドを使って同時に4個の銘柄を読み込むので単純な読み込みより速くなっている。
パソコンにwebサーバーを立ち上げ、Yahooサイトより読み込んだhtmlファイルをwebサーバーで公開し、上記の条件で読み込んだ場合の速度の違い
webサーバーはPentium-M(Banias 1GHz)を使ったWindows 2000SP4にhttpdをインストールして実行させた。読み込みソフトも同一パソコンで実行。手順は自宅ホームページサーバ構築方法(暫定)を参照。結果は、
1.単純な読み込み 2.株漬キラー 読み込み時間 280秒(4.7分) 257秒(4.3分) 読み込み株数 4034 4034 実効転送レート 201kbyte/s 237kbyte/s 株漬キラーの方が速い。Yahooファイナンスの場合は、cgiを実行してhtmlファイルを作成していること、複数の人がアクセスすることなどから歩が悪い。
まとめ
時系列ページを読み込む限り株漬キラーは遅くないと思う。株価以外の文字等が多すぎてhtmlファイルサイズが肥大している。サーバー側の要因が主であると思う。Vectorで他の株価取得ソフト(Excel用)などをメモ帳で覗いてみたが、同じところを読んでいるようである。全銘柄の四値が簡単に取得できるページがあれば劇的に速くなると思われる。
短時間で全銘柄(銘柄リストを参照しても可)の4値(始値,終値,高値,安値)と出来高が取得できるフリーソフトを知っている方がいたら教えていただきたい。多分私の知らないページから読み込んでいるような気がする。株漬キラーの改良に役立てたいと思っている。
12/06 今後の改良予定等
- 指標等をDLLで動的に拡張できるように株漬キラー側を修正中
- DLL仕様を公開し、他の人が指標を公開できるようにする。(基本クラスをDLL側で派生して拡張する 私以外の人がフィボナッチ等を作成して配布することが可能となる)
- DLLは複数使用することができる。
- 株価読み込み部をDLL化し、Yahoo側のページの変更にすばやく対応できるようにする。また、他の人が自分のプログラムの一部として使用できるように検討。
10/31 20:10 2g000
完成
10/28 11:30 1g900
インポートでの連結決算読み込みにおいて、二回ファイルが読み込まれ、正常に動作しなかったのを修正。一部、重複した部分を関数として整理。Version2.00を11/1に掲載する予定。
10/14 15:50 1g816
正式リリース前の1つ前のバージョン
- ダイアログボックスのキーボード操作時の動作を修正
- 株価分割回数が正常に表示されないのを修正
- 銘柄検索時のバグを修正
- シミュレーション条件設定時のチェックボックスの動作を修正
10/10 6:30 1g815
インターネットより株価を読み込む部分において、株価分割比の数字の部分の頭だしがUNICODE化に伴い1文字ずれていたのを修正。
10/08 18:50 1g814
- チャート表示状態でメニュー切り替えに伴い、お気に入りが表示されなくなるのを修正
- リストビューにおいて行選択状態で編集+コピーを選ぶとクリップボードに内容がコピーされる。メモ帳やExcelに貼り付け可能。
- チャート表示状態でエクスポートメニューより拡張メタファイル(.emf)出力が可能とした。(Excelに拡張メタファイルとして取り込んだ例)
- インターネットより株価を読み込むスレッドでキューが満杯になった状態において、次に空くスレッドの予想を一番古いスレッドに変更。キュー満杯時の読み込み速度の低下の影響を低減した。(この辺はまだ改善余地がある)
10/06 23:20 1g813
連結決算のホームページが若干変わっていたので、それにあわせて読み込み部分を修正。
各リストビューの列幅の保存部分の修正。
10/05 22:00 1g812
連結決算の読み込みを修正
シミュレーション条件がUNICODEがらみで正常に読み込まれないのを修正
各リストビューの列幅を保存できるように変更。
基本的な機能を確定した。今後はデバック・チューニング・ソースの整形・ユーザーインターフェンスを洗練させ、Version 2.0として正式に公開する予定。
10/01 23:30 連結決算をインターネットより読み込む場合に正常に読み込まれないバグを発見
最近チャート関係のプログラムをいじっていたので、連結決算をインターネットから読み込むことがなかった。久しぶりに読み込んでみたらページの構成が変わっており読み込めなくなっていた。現在修正中。
9/30 18:40 1g810β
チャート上の作図機能
トレンドラインやコメントをチャート上に作図できるようにした。(作図結果はファイルに保存され読み込み時に再現される)
チャート表示ウィンドウをアクティブにすると作図メニューが現れる。作図メニューで作図したい図形を選択し、開始位置でマウスの左ボタンを押し、終了位置で左ボタンを離す。修正する場合は、修正する図形の近くで、左クリックすると、図形が選択状態になる。違う図形が選択された場合は、ESCキーを押すと解除される。DELキーを押すと図形は削除される。選択状態では、図形の端部や中心に四角マーカーが表示される。マーカー部分で左ボタンを押すと位置が移動し、離すと確定する。中心のマーカーは移動に使用する。線分の作図中にSHIFTキーを押しながら左ボタンを離すと水平線が引ける。
内部をUNICODE対応にした。
内部処理をUNICODEとした。ファイルに保存するときはSHIFT-JISに変換されるので、過去のバージョンと互換性はある。
UNICODE化によりWindows 2000以降のOSのみ対応となる。
9/9 13:40 1g809β
余白設定をできるようにした。(用紙サイズはプリンタ選択時にプロパティで変更)
チャート表示の見栄えを変更
MDI ドキュメントウィンドウの終了コードの変更
チャート表示でカーソル位置によりリアルタイムに各指標を表示するウィンドウを設定。(ドラックで位置変更が可能)
チャート表示でカーソル移動中にSHIFTキーを押すと縦カーソルが表示され、SHIFTを離すとその位置にカーソルが保持される
8/26 19:50 1g807β
チャートを印刷できるようにした。(余白設定・線種等の設定は今後修正していく。)
8/23 22:00 1g806β
処理中ダイアログボックスの見栄えを修正。インポート・エクスポートのフォルダー指定時にフォルダーの作成等が行えるようにした。
8/19 19:10 1g805β
株価のインターネット読み込み時のスレッド数をダイアログボックスで設定できるように変更。
ファイルからの読み込み・書き込みを高速化。(株価については、インデックスをメモリに全数バッファリングすることにより株価ファイルと別ループで保存することができシーク回数の低減を図った。ファイルの操作より状況表示のダイアログボックスを1銘柄ごとに更新するほうが圧倒的に時間がかかることが判明したので状況表示をなくした)最大5倍程度の高速化。
8/17 22:40 1g804β
マルチスレッド化にともない、読み込み済み株価にインターネットで読み込む場合の動作を修正。
8/16 06:30 1g803β
インターネットからの読み込み部を再度1からマルチスレッド化した。とりあえず16スレッドでコンパイルし、正常に動作した。最大で2倍近くの高速化ができた。
読み込み要求のバッファリングの管理方法等、更なる効率化とスレッド数をダイアログボックスで変更できるように、検討している。
8/15 06:20 1g802β
1g802のインターネット読み込みをマルチスレッド化したらヒープを破壊する現象が発生した。
とりあえず、スレッドにする前のルーチンを修正した。
8/12 15:30 1g802
チャート表示の日付表示の修正。
連結決算読み込み後のPBR等の自動表示。
インターネットから連結決算を読み込む部分を一部修正。決算のない年の扱い。
インターネットから株価を読み込む部分を今後のマルチスレッドに対応できるように修正。
8/06 21:40 1g801
チャート表示の目盛を細かくした。
新日鉄など出来高が極端に多い場合に先頭の1桁が消えるので、今後修正する。
8/04 15:30 1g800
テクニカル指標のマルチスレッド時のCPUへの銘柄割り振り方法の修正
インターネットからの読み込みを複数スレッドを使って高速化できないか検討中。
バージョン表記とファイル名を一致させた。
7/29 14:20 1g745
全銘柄シミュレーション時において、前回シミュレーション結果がリストビューになる残っていたのをクリアするように変更。
7/29 14:20 1g744
テクニカル指標算定をマルチスレッドに改良。一部クリティカルセッションな部分があるのでPentium IVのHT onで25%のスピード増加となった。(リスト管理クラスにおいて要素のスキャン用のポインタを内部に保持している関係で複数のスレッドから呼び出しをすると異常動作を起こすためクリティカルセッションに設定している。)おそらくクリティカルセッションの関係でクワッドコアーのCPUでもほとんどスピードが変わらないと思われる。今後改善予定。
リストビューの描画を抑制することにより、全銘柄・時系列・列非表示等が高速化。
出来高移動平均において、不要な線がでるのを抑制。
7/28 22:30 1g743
移動平均算定をチューニングして少し速度が速くなった。1.5年のテクニカル計算で2秒早くなった。同様な手法でほかの指標も今後チューニングする。
チャート上でシミュレーションに合致する日付の表示を条件ごとに色が変わるようにした。
チャート上でシミュレーション表示をon/offできるように改良。
7/22 19:30 1g742
チャート表示の見栄えを少しよくした。
7/19 17:30 1g741
ポリシジャーバンドの表示修正
7/19 15:20 1g74
ポリシジャーバンドをチャートに表示できるようにした。
7/18 20:50 1g73
連結決算をファイルから読み込むように指定してもインターネットから読み出してしまう点を修正。
7/11 16:50 1g72
旧バージョン(おそらく1g4)で読み込まれたデータで日付が重複している場合において、1g71バージョンで開いた場合、重複日付以降の時系列等が正常に表示されない点を修正。
1g5以降で読み込まれたデータは問題なく使えると思う。
7/10 22:20 1g71
条件選択後のリストビューがバッファオーバーランする可能性がある点を修正
7/01 09:20 1g7
お気に入りが正常に読み込み・保存されない点を修正
6/09 22:40 1g6
連結決算読み込みに関するバグ修正。株価読み込みと同時に連結決算を読み込むように修正。最新の連結決算情報がファイルに保存されている場合は、直接ファイルを読みに行くように変更。全銘柄ウィンドウを新規に作成した場合、自動的に株価が表示されるように修正。連結決算が読み込まれた場合、当該ウィンドウを自動更新するように修正。
6/03 14:30 1g5
全シミュレーション後にチャート上に条件にマッチした日を四角で囲むようにした。
6/02 16:50 1g4
webに時系列株価が公開される前に読み込んでしまった場合に後からその日付を読み直すことができる機能を追加
5/26 21:30 1g3
移動平均の前日比を表示および検索できるように修正
5/26 今後追加修正する予定の機能
- 連結決算を再読み込みするときに前回のインターネットの読み込み日をチェックする機能 6/10
- 連結決算詳細表示における数字を右寄せに修正 済み
- 連結決算詳細表示に列幅の最適化
- 連結決算詳細表示にフォーカスを行単位に変更 済み
- 連結決算一覧での銘柄選択時にチャート等の更新
- 連結決算一覧時にフォーカスを行単位に変更 済み
- 各リストビューで横スクロールすると銘柄名および日付がわからなくなるのでウィンドウタイトルに表示
- 銘柄選択時のプログラムのサブルーチン化
- チャート表示出来高が枠からはみ出るのを修正
- 各移動平均の傾きでソート等ができるように修正(トレンドの方向の検索) 済み
- トレンドラインの自動作成
- テクニカル指標の項目の追加
ダウンロード
最新版はVectorからダウンロード願います。
10/31 20:10 ソースファイルと実行ファイルのダウンロード 完成。
10/28 11:30 ソースファイルと実行ファイルのダウンロード 連結決算読み込みを修正。
10/14 15:50 ソースファイルと実行ファイルのダウンロード バグ修正
10/10 06:30 ソースファイルと実行ファイルのダウンロード インターネットより株価を読み込む部分において、株価分割比の数字の部分の頭だしがUNICODE化に伴い1文字ずれていたのを修正。
10/08 18:50 ソースファイルと実行ファイルのダウンロード クリップボードへの書き込みをサポート
10/06 23:20 ソースファイルと実行ファイルのダウンロード
10/05 20:00 ソースファイルと実行ファイルのダウンロード
9/30 18:40 ソースファイルと実行ファイルのダウンロード チャート上に作図できる機能を追加
9/09 13:40 ソースファイルと実行ファイルのダウンロード 余白設定、チャートにリアルタイムに値を表示するウィンドウを設定
8/26 19:50 ソースファイルと実行ファイルのダウンロード チャートを印刷できるようにした。(余白設定・線種等の設定は今後修正していく。)
8/23 22:00 ソースファイルと実行ファイルのダウンロード 処理中ダイアログボックスの見栄えを修正。インポート・エクスポートのフォルダー指定時にフォルダーの作成等が行えるようにした。
8/19 19:10 ソースファイルと実行ファイルのダウンロード ファイル読み込み保存の高速化
8/16 22:30 ソースファイルと実行ファイルのダウンロード マルチスレッド化にともない、読み込み済み株価にインターネットで読み込む場合の動作を修正。
8/16 06:30 ソースファイルと実行ファイルのダウンロード インターネット読み込みのマルチスレッド化
8/14 06:20 ソースファイルと実行ファイルのダウンロード 前バージョンのヒープ破壊現象の修正版
8/12 15:30 ソースファイルと実行ファイルのダウンロード チャート表示、インターネット読み込み部分の修正
8/06 21:40 ソースファイルと実行ファイルのダウンロード チャート表示の目盛を細かくした。
8/05 15:30 ソースファイルと実行ファイルのダウンロード テクニカル指標のマルチスレッド時のCPUへの銘柄割り振り方法の修正
7/29 17:30 ソースファイルと実行ファイルのダウンロード 全銘柄シミュレーション時において、前回シミュレーション結果がリストビューに残っていたのをクリアするように変更
7/29 14:20 ソースファイルと実行ファイルのダウンロード テクニカル指標計算のマルチスレッド化による高速化
7/28 22:30 ソースファイルと実行ファイルのダウンロード 移動平均のチューニングほか
7/22 19:30 ソースファイルと実行ファイルのダウンロード チャート表示の見栄えを少しよくした。
7/19 17:30 ソースファイルと実行ファイルのダウンロード ポリシジャーバンドの表示修正
7/19 15:20 ソースファイルと実行ファイルのダウンロード ポリシジャーバンドをチャートに表示できるようにした。
7/18 20:50 ソースファイルと実行ファイルのダウンロード 連結決算をファイルから読み込むように指定してもインターネットから読み出してしまう点を修正。
7/11 16:50 ソースファイルと実行ファイルのダウンロード 重複日付以降の時系列等が正常に表示されない点を修正
7/10 22:20 ソースファイルと実行ファイルのダウンロード 条件選択後のリストビューがバッファオーバーランする可能性がある点を修正
7/01 21:20 ソースファイルと実行ファイルのダウンロード お気に入りの修正
6/09 22:40 ソースファイルと実行ファイルのダウンロード 連結決算読み込み関係の修正
6/03 14:30 ソースファイルと実行ファイルのダウンロード 全シミュレーション後にチャート上に条件にマッチした日を四角で囲むようにした。
6/02 21:30 ソースファイルと実行ファイルのダウンロード webに時系列株価が公開される前に読み込んでしまった場合に後からその日付を読み直すことができる機能を追加
5/26 21:30 ソースファイルと実行ファイルのダウンロード 移動平均の前日比を表示および検索できるように修正 Version 1g3
5/26 12:50 ソースファイルと実行ファイルのダウンロード 連結決算の表示、増加率ランキング表示
5/20 21:45 ソースファイルと実行ファイルのダウンロード Yahooページ変更にともなう取引所の誤読み込み、読み込みバッファのオーバーフローチェック、PBR,PER等の読み込み表示保存をサポート
4/29 21:17 ソースファイルと実行ファイルのダウンロード インタネットからの読み込みが時間帯によって失敗する点を修正
4/16 20:54 ソースファイルと実行ファイルのダウンロード 読み込み後にウィンドウタイトルテキストがが元に戻らない点を修正
4/15 18:54 ソースファイルと実行ファイルのダウンロード Yahoo!のホームページに伴う変更。株価ダウンロード後にシャットダウンできるように変更。
2/11 14:53 ソースファイルと実行ファイルのダウンロード 子ウィンドウを最大化したときに最小化アイコン等が消える現象を修正
2/04 18:00 ソースファイルと実行ファイルのダウンロード 全シミュレーションのマルチスレッド化
1/31 14:00 ソースファイルと実行ファイルのダウンロード 全シミュレーション、移動平均の高速化
1/28 22:26 ソースファイルと実行ファイルのダウンロード cond.cppの全シミュレーション条件判定を修正
1/28 17:32 ソースファイルと実行ファイルのダウンロード
注意
このソフトは、株取引を奨励するものではありません。本ソフトを使用したことによる一切の損害について責任を負いません。
このソフトにより取り込まれた株価データを無断で再配布することは、株価データを提供しているYahooファイナンスの著作権を侵害しますのでご注意願います。個人使用にとどめてください。
このソフトは、フリーソフトです。ソフトの再配布は自由に行ってください。ただし、再配布にあたり事前にメールをいただけると幸いです。
このソフトは、作者が個人目的で作成したものを配布しているものであり、このソフトを無断で売買することにより利益を得ることを禁止します。また、このソフトを修正または改造して、再配布することも禁止します。再配布は、必ず、私が作成したことを記載し、サポートのため、下記ページへのリンクを掲載してください。