タグクラウド
Firefox をダウンロード!!

ヒストリカルデータベースシステムの構想。

posted by SBT at 2006-04-15(土) 18:10

ヒストリカルデータのデータベース化は、個人的なもの故に非常に簡素な画面、かつレート表示のみといったものになりましたがちょっとした調べごとには重宝しています。

ヒストリカルデータ検索

ヒストリカルデータのデータベース化 ソースデータの取得と加工。
ヒストリカルデータのデータベース化 CSVファイルのMySQLへのインポート。
ヒストリカルデータのデータベース化 PHPスクリプトの作成とサーバーへのアップロード。

重宝はしているものの、そこは付け焼き刃的に作成しただけあって、ちょっとした不便さや穴があったりと、とりあえず作ってみた感は拭えなかったりもするわけです。
そんなわけで、見慣れたチャート表示で視覚的にも把握したい、という思いもあり、チャート表示のできるものを作成するための構想を思い描いています。 システムトレードをする気はなく、システムを作ること自体が目的なわけでもありませんので、本末転倒にならないようにできるだけ簡潔な方法で実現可能かどうか、前回の反省も含め下調べ・下処理をしてみました。

FXのデメリットである「ブローカーごとに違うレート」による弊害を少しでも和らげるために、手に入る範囲内のヒストリカルデータをあらゆるところから取得します。
データごとにフォーマットが違うので、後々のためにフォーマットを統一しておきます。
(ところで、有料のデータってどうなんでしょうか。
上記の理由で求める完璧なデータを手に入れることはまず無理だとは思いますが、そこそこ使えるものなのでしょうか。)

前回の方法は手間がかかりすぎる上に無駄も多く、同様のことをやる気が起きなかったので、今回はsedawk等のUNIX系ツールのWindows版を使い、解説サイト(sedawk)の必要なとこだけをざっと読み流しながら出来る限りの処理してみました。
実行ファイルさえがあればそれですみますし、コマンドラインならではの多様な使い方ができる非常にシンプルながらパワフルなツールですね。
日付・時刻関係で、FXに独特のちょっとした問題があるので、その辺りの処理をどうするかについては考え中です。

データベースにはMySQLを使いますが、前回があまりにも適当かつ穴だらけだったので、今回はもう少し時間をかけて設計する必要がありそうです。
ブローカーごとに主要通貨ペアの各データを持たすことができれば良いと考えています。

データベースの処理にはMySQLが相性よく、簡単に処理できるのでPHPを使います。
チャートを表示するのにはJpGraph(GDライブラリ必須)を使います。
日本語での表示も考えてsazanamiフォントも一緒にいれておきます。

適当にJpGraphのサンプルをいじってみましたが、驚くほど簡単にローソク足チャートが描けますね。
表示に関するカスタマイズの自由度もかなり高いようです。
これならば、やる気になればテクニカルインジケーターの表示も簡単にできそうですね。
JpGraphのマニュアルを読むのにはちょっと時間がかかりそうなので、必要に応じて読んでいくことにします。

処理したデータの表示にはXHTMLCSSを使いますが、前回の様にPHPソースとXHTMLソースと混合させる手抜きは止めておきます。
テンプレートエンジンを使う程の大げさなものでもありませんし、データの再利用性を考えると、データ部分はJSONを介してPHPとJavaScriptでやりとりして表示させるか、PHPにXMLを出力させてXSLTかJavaScriptで表示したほうが良いかもしれませんね。
ただ、XML+XSLT、XML+JavaScriptは(個人的に)扱いにくい上にまともに使ったことがないので、JavaScriptでの扱いが簡単なJSONを使った方がよさそうです。
扱うデータ自体がシンプルなものですし、これならAjaxでの表示も簡単なのでストレスもたまらなそうです。

構想が実現可能かどうか、色々と情報収集や試行錯誤をしながら下調べ・下処理をしてみましたが、考えていたことが思ったよりも遙かに簡単に実現できそうです。
むしろ、柔軟な条件検索に対応するための処理を書くほうが大変だったりするのかもしれません。

各ブローカーが、ヒストリカルデータやこういったサービスをもっと積極的に提供してくれると非常にありがたいのですが、そういったブローカーが少ないところを見ると、やはり、そこにはいろいろな事情や不都合があるからなのでしょうね。
求めるものは人それぞれ違うので結局は自分で作る必要性に迫られるのかもしれませんが、多くの人がそれぞれ似たようなものを作っているとすると実に非効率的な気がする一方で、直接、利害が絡む部分でもあるので難しいですね。

以上、構想に基づく下調べ・下処理と妄想でした。

コメント

Posted by nekoste at 2006-04-17(月) 11:46

各ブローカーやデータベンダーによってレートが違うのでヒストリカルチャートが変わってきて、テクニカルやシステムもズレが生じてしまいますね。
 レートを標準化して配信するプロジェクトには期待してます。SBTさんなら携帯サイトやオリジナルのチャートアプリ、システムソフトも作れそうですね。

Posted by SBT at 2006-04-17(月) 16:19

いつの間にそんなプロジェクトが・・・笑
データーベースのデータをリクエストに応じて汎用性のあるフォーマット(XMLとか)で返すようにすれば、いろいろと再利用とかできそうですが、配信や公開はその他の部分での問題が多いのでたぶん無理でしょうね。

そう言えば、犬(羊飼い)さんの携帯サイトサービスは無償のウェブサービスを利用されているようですね。
あれもなにかおもしろいことに使えないかな、と考え中ですが、ブラックボックスな感じなのであまり正確さを要するものには使えなさそうですね。

システムを作るのが目的でもないですし、完璧さを求めるのは絶対に無理なので(そもそも記録に残らないレートを付けるブローカーもあったりしますし)、楽できるとこは楽して作れれば良いかな、と言った感じですかね。

Posted by kyojee at 2007-09-01(土) 14:14

こんにちは。

私も同じようなものを作ろうと考えて、データまでは用意した
のですが・・・
WEBクライアントベースでバックテストできると嬉しいのですよね。
このプロジェクト(笑)どうなりましたか?
やはり皆さんは、バックテストにはMT4をお使いなのでしょうか?

Posted by SBT at 2007-09-01(土) 19:56

kyojeeさん、こんにちは。
すっかり忘れてますが(笑、この投稿の直後にPHP+JpGraph+MySQL+JavaScript+JSONで検索・チャート表示するまでは作ってます。

http://sufx.core.t3-ism.net...

WebベースのバックテストはサーバサイドアプリとDBでやりとりして処理するだけなので、DBさえ作ってしまえばそれほど難しくはないでしょうね。あるいは、WinサーバでMTにバックテストさせるとか。

ただ、わざわざ遅いWebに上げてそこまでやるメリットはなさそうなので、ローカル環境(XAMPP)やMT4、Excelを使ってやってます。
コメント投稿

トラックバック

Pinged by 為替システムトレード with MetaTrader :: はじめました at 2006-04-17(月) 13:40

というわけで、はじめました。どうぞよろしくお願いします。 メインページはこちらで

トラックバックURL
http://core.t3-ism.net/trackback/262

このページの先頭へ