FXのシステムトレードアプリを作成しようと思ったきっかけ
仕事でのプログラムは最近嫌気がさしてきたけど、趣味でのプログラムは結構楽しいです。
MT4を使えばシステムトレードなんて簡単ですが、わざわざ自作しようと思った理由は以下の通りです。
1, MT4の使い方、スクリプトを勉強するのが面倒くさいww スクラッチで作っちゃえ
2, どの会社もMT4のスプレッドが高く気に食わない。
3, 暇つぶしでプログラム書きたい
4, システムトレードで使用するストラテジーをある程度自動で作成するシステムを作成してみたい。
5, もし成功したら遊んで暮らせるww
一番の理由は④、すこし面白いアイデアがあってそれを実行しようと思い開発を始めました。
実際は過去にも作ろうと思い作ってたけど、途中で飽きて中途半端な状態・・・
もう一度ガンバリます!!
為替レートをsqliteのDBにコンバート
gain capitalからダウンロードしてきた2010年からのティックデータをsqlliteの独自フォーマットの形式にコンバートしてみました。
SQLの知識はあまりないけど、簡単な構造なので適当に作成~
ドル円のデータだけでファイルサイズ538MB。
レコードサイズ2500万。 2010年から2500万回のティック単位の変動があったってことw(多いのか少ないのかよくわからん)
仮想トレードのシステム内では、浮動小数演算をできるだけ避けたいので係数(coefficient_rate)1000を書けて使用します。
レート106.001なら1000を掛けて106001として計算、移動平均やボリンジャーバンドとかいろいろなテクニカル指標に変換します。
この辺のDBの仕様とかシステム内でのデータの使い方とかシステムの根幹にかかわることなので、しっかり考えないといけないんだけど、かなりノリで考えながらコード書いてます。
過去の為替レートの取得 その2
XMLでダウンロードする通貨ペアと期間を設定できるようにしてみてテスト開始
USD_JPYを2010年から4年間のティックデータをGET。
404で歯抜けデータあるのが意外だった。
ダウンロードしたファイルはCSV形式なので、これを自分のプログラム上で使いやすいようにsqliteのデータベースにコンバートします。
1年ほど前に1度、同じようなこと考えて作成したコードがあるので、それをきれい修正します。 これはデータのフォーマットを考え直すので1,2日ほどかかるかな。
最終的にはバックテスター上で秒単位のレートのArrayList配列でデータを持ち、煮るなり焼くなり好きなように利用しようと考え中!!
ちなみに2010年から2014年の今までのcsvのファイルサイズ合計が2.2GB・・スゲーデータ量w
過去の為替レートの取得
現在、FXの自動トレードのシステムを作成できないかと試行錯誤中。
とりあえず、過去のテック単位の為替レートをすべて欲しいのでこのサイトから自動で全データをダウンロードするプログラムを作成してます。
http://ratedata.gaincapital.com/
PHPかスクリプトで書けば簡単だろうけど、凡庸的に使いたいのでjavaでアプリとして作成。 これは簡単なので本日中にできそう。
ただ、ここのデータは本当に正確なのか・・謎。テック単位の時間が開きすぎている場合があるんだよな・・・