さて、データ容量のおはなしの続き。
現システムでは銘柄+日付をファイル名とし、4.5時間分のみ格納、1レコードは20byte。これによる利点欠点は以下の通り。
利点1:土日はファイルが出来ないため効率的
利点2:取引時間外の空レコードがないため効率的
利点3:データ欠測時はその日のファイルをバックアップマシンよりコピーで済む。
欠点1:小さな(5400byte)ファイルが大量にできるためクラスタ利用効率が悪い
→ディスクの実使用量が大きい(月データ372MB→実使用562MB)
→ファイル操作に時間がかかりいらつく(゜ _ ゜)
欠点2:処理時にファイルのオープンクローズが頻発するため非効率
→キャッシュが補助してくれるからあまり気にしなくてもよい鴨
欠点3:レコードサイズが大きいためオンメモリ時にメモリ喰い
主に欠点3、1を改善したいというわけで、
新システムでは銘柄+年をファイル名とし土日、取引時間外を含まず、1レコードは8byte
20(取引日数)×4.5×60×8byte×4000銘柄 = 164MB
実使用量比として30%程度までダイエットが見込める皮算用。





お久しぶりです。
食べ物は時々チェックしてますよw
足データの記録方式についてなんですが、基本、DB使ったほうがよくないですか?
それと、分足を、時間に紐付けたデータとしてみるよりも、
取引所&時間で紐つけたほうが現実的ではないかと。
取引所は銘柄で場の時間帯は決まってますから、場に該当する時間帯の分だけ記録すればいいのではと。
データの形をアプリケーションに合わせようとすると現実世界が歪んでしまいますので、基本的には、ERとかで現実描写をしたうえでアプローチしたほうが先々よいのではないかと思います。
まあ、それもこれもDBをつかうとう前提ですが。
私は、Tickで記録してますが、アプリケーションの
要求で、Tickを集約して、1分、や5分やらに集計させるようにしてます。ただ、毎度毎度集計すると時間がかかるので、一度集計したものは、計算済みテーブルに格納したりとかしてます。
DB化のメリットとして、場中に、ひらめいたことを、SQLたたいて検索&検証できるっていう点があります。
が....私がSQLを完成させるころには、その日の場は終了ってことは、しょっちゅうですw。
たぶろーさん、コメントありがとうございます。
コメントでこういう話題が出るとうれしい。
さて、DBですが、過去のバージョンでは利用してました。
現在うちのシステムはバージョン4。
Kabu1 MS-Access(Jet-MDBテーブル)
Kabu2 同上
Kabu3 SQLServer(ADO.NET2.0-MDFテーブル)
Kabu4 固定長レコードファイル
たぶろーさんのおっしゃるように、基本的にはDBを使ったほうが柔軟で生産性に優れた開発が行えますね。(仕事でももちろんDB使います。)
ただ、あえてDBを使わない理由というのはたしかに存在するのです。
少し前に速度的な比較を載せましたが、ミドルウェアとしてADO.NET(DataTable)を選択した時点で相当のスピードコストを犠牲にしてたりして、直線的な構造のデータであればあるほど、結局昔ながらのランダムアクセスファイルの方が驚くほど速かったりするわけです。ご参考まで。
というわけで場合に応じて使い分けていきたい所存デス♪
技術コメントとか大歓迎デス♪(゜ _ ゜)v
シーケンシャルファイルのほうが速度は圧倒的に早いですよね。
それは良く分かります。
私は、SQLServerをつかってますが、結局、自分のトレードが何を目指すのかってところに、行き着くんですね。
システムは目的があって成立するってことで。
私は、チャート云々よりは、データの分析を可能な限り多様に行えることを最初の主眼においたので、DBという選択をしました。チャート表示はの二の次三の次っていう位置づけです。
速度面は、アプリの工夫でなんとかしようかな、ってノリでw
実際、初期表示は、遅いですよーーw(自慢になりませんが)
いまのところ、自分のトレードの欠点は、アプリのスピードよりも、分析面のほうが大きいかなと思い、速度については放置してる状況です。
今は、10分以内にSQLを構築する能力が欲しい...そんな感じですw
がんばってください。
>私は、SQLServerをつかってますが、結局、自分のトレード
>が何を目指すのかってところに、行き着くんですね。
うんうん、そのとおりだと思います。
うちはたまたま4000銘柄すべてを扱うシステムのためバックテストに時間がかかるのが不満でこういう進化をしてるだけで、開発者の数だけ、いろんな形態のシステムがあったほうが面白いと思いますょ。
ただひとつ共通で言えることは、自動売買システムの開発はおもしろい♪と言うことです。もっと株プログラマが増えるといいな。