概要
商品先物のデータをWEBページから取得して、SQLite形式のDBに保存するツールです。
商品先物データは先物オン・ザ・ウェブ から取得します。
コマンドラインで使用するツールで、GUI等はありません。
Python等のプログラミング言語でシュミレーションをしたいという用途に向いています。
動作環境
Windows XPにて動作することを確認しています。
インストール/アンインストール
ダウンロードしたファイルを解凍して、適当なフォルダに保存してください。
レジストリ等は一切使用していませんので、 フォルダごと削除すれば、アンインストールできます。
使い方
ヘルプ
概要 cxupdater [-p path] [-?] [-t] 詳細 WEBから、データをダウンロードして、Sqlite形式のDBにデータを格納する。 出力DBは、以下のとおり <先物4本値> GOLD, SILVER, GOMU, PLATINA オプション -p path: 作業フォルダ(path)を指定する。 ない場合は実行ファイルがあるフォルダが作業フォルダになる -? : 使用方法出力 (--? と --helpは同じ. -t : 時間計測 使用例 1. データをダウンロード・登録する cxupdater 2. 作業フォルダにデータをダウンロードして、登録する cxupdater -p \"d:\\download\" 終了コード 0: 正常終了なお、処理を中断した場合、中断した箇所から作業が再開されます。
自動実行
タスクスケジューラに登録しておけば、自動実行されます。
毎日、実行するようにしておけばDBは、常に最新の状態に保たれます。
私の環境にて、タスクスケジューラはスタートメニューの下記の場所にありました。
「アクセサリ」→「システムツール」→「タスク」
免責
このプログラムを使用したことによる、直接あるいは間接的損害に関しての、 一切の責任を負いかねますのでご了承下さい。
著作権・配布・転載
このソフトはフリーソフトウェアです。 配布、転載は原則自由です。 ただし、中身の一部もしくは全部を改変して配布、掲載をする事は禁止します。
ダウンロード
- 2008/01/30: Cxupdater.exe ver1.00
- 初版作成
サンプルプログラム
Cxupdaterで作成したデータベースから、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("GOLD")
# カーソル作成
cur = con.cursor()
# 日付と時刻からTICKを生成
start_tick = makeMlibTick(datetime = "2006/08/01 0:0:0")
end_tick = makeMlibTick(datetime = "2006/08/06 0:0:0")
# SQL文作成
sql = "SELECT * FROM CXDATA WHERE TICK <%f AND TICK >= %f ORDER BY TICK ASC;" \
% (end_tick, start_tick)
# 実行
cur.execute(sql)
# 結果取得
print cur.fetchall()