こんな本はどうですか?


リンク

相互リンク募集中!!
ソフトウェア関連

概要

為替のデータをWEBページから取得して、SQLite形式のDBに保存するツールです。

為替データはForexite から取得します。

コマンドラインで使用するツールで、GUI等はありません。

同様のツールに、専用採取ツール(AutoForexite) があります。GUI等が必要な方や、出力がCSV形式がいいという場合は、 こちらを使用することをお勧めします。

Python等のプログラミング言語でシュミレーションをしたいという用途に向いています。

動作環境

Windows XPにて動作することを確認しています。

インストール/アンインストール

ダウンロードしたファイルを解凍して、適当なフォルダに保存してください。

レジストリ等は一切使用していませんので、 フォルダごと削除すれば、アンインストールできます。

使い方

ヘルプ
概要 fxupdater [-p path] [-?] [-t] [-d] [-r] [-c] 詳細 Foxciteから、データをダウンロードして、Sqlite形式のDBにデータを格納する。 出力DBは、以下のとおり <為替データ> EURUSD, GBPUSD, USDCHF, USDJPY, EURGBP, EURCHF, EURJPY, GBPCHF, GBPJPY, CHFJPY, USDCAD, EURCAD, AUDUSD, AUDJPY, NZDUSD, NZDJPY, XAUUSD, XAGUSD <登録情報> REGISTFILE オプション -p path: 作業フォルダ(path)を指定する。 ない場合は実行ファイルがあるフォルダが作業フォルダになる -? : 使用方法出力 (--? と --helpは同じ. -t : 時間計測 -d : ダウンロードのみ実行する -r : 登録のみ実行する -c : 登録後ダウンロードしたZIPファイルを削除する 使用例 1. データをダウンロード・登録する fxupdater 2. 作業フォルダにデータをダウンロードして、登録する fxupdater -p "d:\download" 3. 作業フォルダにデータをダウンロードする。その時間を計測する fxupdater -p "d:\download" -t -d 終了コード 0: 正常終了

なお、処理を中断した場合、中断した箇所から作業が再開されます。

自動実行

タスクスケジューラに登録しておけば、自動実行されます。

毎日、実行するようにしておけばDBは、常に最新の状態に保たれます。

私の環境にて、タスクスケジューラはスタートメニューの下記の場所にありました。
「アクセサリ」→「システムツール」→「タスク」

注意事項

初回起動時では、全データをWEBページから採取しますので、 非常に時間がかかります。

私の環境下では、作業終了までに6時間ほどかかりました。

また、データベースのサイズも非常に大きいです。

現時点(2007/9/18)で、すべてのデータをダウンロードすると約5GBになります。 すくなくとも10GB以上の空きスペースが必要です。

免責

このプログラムを使用したことによる、直接あるいは間接的損害に関しての、 一切の責任を負いかねますのでご了承下さい。

著作権・配布・転載

このソフトはフリーソフトウェアです。 配布、転載は原則自由です。 ただし、中身の一部もしくは全部を改変して配布、掲載をする事は禁止します。

ダウンロード

サンプルプログラム

Fxupdaterで作成したデータベースから、4本値を読み出しています。

使用している言語はPythonです。

Pythonの解説はこちらにもあります。あわせてご参照ください。

# coding: utf-8 import sqlite3 import matplotlib.dates as mdates import datetime def makeMlibTick(**args): """ Tick(matplotlib)を作成する 引数:日時 str型('2007/1/1 12:24:30') """ if 'datetime' in args.keys(): date_t = args['datetime'].split(" ")[0] time_t = args['datetime'].split(" ")[1] if (('date' in args.keys()) and ('time' in args.keys())): date_t = args['date'] time_t = args['time'] dt = datetime.datetime(int(date_t.split("/")[0]), int(date_t.split("/")[1]), int(date_t.split("/")[2]), int(time_t.split(":")[0]), int(time_t.split(":")[1]), int(time_t.split(":")[2])) return mdates.date2num(dt) # 作業ディレクトリに移動 import os os.chdir("C:\\BigData\\DB") # DBに接続 con = sqlite3.connect("USDJPY") # カーソル作成 cur = con.cursor() # 日付と時刻からTICKを生成 start_tick = makeMlibTick(datetime = "2006/08/01 0:0:0") end_tick = makeMlibTick(datetime = "2006/08/02 0:0:0") # SQL文作成 sql = "SELECT * FROM FXDATA WHERE TICK <%f AND TICK >= %f ORDER BY TICK ASC;" \ % (end_tick, start_tick) # 実行 cur.execute(sql) # 結果取得 print cur.fetchall()
inserted by FC2 system