2006年06月05日

無料ヒストリカルデータの取得と加工

■お知らせ

この記事でやっていた
「DL→抽出→変換→結合」という処理を、すべて自動でやってくれるアプリ
AutoForexiteを作りましたので、今後はそちらを使ってください。

Forexiteから自動でDL、抽出、変換、結合、をしてくれるアプリ - AutoForexite

そちらのアプリだと、Forexite特有の「データのダブり」などを除去する機能もついているので、正確なデータが得られます。























今回の記事は基本的にS.U.FXさんの「ヒストリカルデータのデータベース化 ソースデータの取得と加工」の記事を参考に、自分がやった手順とその際気付いた注意すべき点や、加工用に自分で作成したツールの公開などです。

--

大まかな流れについてはS.U.FXさんの記事を参考にして下さい(良い情報を公開しているSBTさんに感謝)。

まずForexiteから分足のデータをIrvineを使ってDLします。目的のcsv形式のファイルはMetaStock用のzipファイルの中にあります。
Irvineの使い方の流れは、大雑把に書くと

・メニューの「ツール」から「リンクのインポート」を選ぶ。
・すると新しいフォームが立ち上がるのでそこのアドレス欄に目的のURLを入れ開始ボタンの赤い右△をクリックして実行
・リンクを抽出したら編集メニューから拡張子でソート
・目的のファイル(ソートしたZip)をまとめて選択したあと、右クリックから「ダウンロード登録」を選び
・あとは、元のIrvineの方の赤△で実行すれば、DLできる。
・DLが成功したキューは、メニューの「実行」から「すべての完了を削除」を実行すれば消えるので、DL失敗がないかはそれでチェック

という感じ。これでZipファイルは全てDL出来ます。

次に、この大量のZipファイルを解凍する訳ですが、その前に年ごとにフォルダ分けておいた方がいいです。
で、解凍ですがまとめて解凍する為に自分はWINRARを使い、複数選択して右クリックメニューの「xxx~\に解凍」でフォルダ作ってそこにまとめて解凍しました。

次にVectorから複数テキスト結合をDLしてきてこれを使ってファイルを結合します。
…が! この次にcsvファイルの中身を弄る訳ですが、その為のFreeCSVというソフトでの処理は、特に加工元ファイルサイズが大きいと、それに比例して後半の処理速度がどんどん落ちていきます。
自分は「複数テキスト結合」を使って1年分ごとのデータにし、1つにつき大体400万~600万行くらいのデータに収めたわけですが、そこからFreeCSVを使って一通貨抜き出すのに1ファイル1時間前後、5年半分で5-6時間かかってます(Athlon 3200+, memory 1GB)。なのでこれより非力なマシンを使用している場合は、更にファイルを小分けして処理した方が良いと思います。FreeCSVは複数ファイルをまとめて登録して一括処理出来るので、手間はそこまで変わらないはずです。

ともあれ、自分のPCに適したサイズに元のTXTを結合したら、FreeCSVを使う訳ですが、その流れは

・まず、ファイルをまとめてドロップして登録
・「フィールド抽出」は「しない」を選択(※ここで「フィールド抽出」で「する」を選び、要らないレコード以外を右へ移せば除外する事もできる)
・次に、「レコード抽出」で「する」を選択し、「第1フィールドが"EURUSD"と完全に一致する」をなどと指定し右下のスタートで処理を開始。
・これで通貨別ファイルが.newとして同じフォルダに作られる。
・この時点で各ファイルサイズは相当小さくなってると思うので、もし事前に小分けしていた場合は年ごとに結合しておく(例:「EURUSD 2001.txt」など)

で、通貨別ファイルが出来た訳ですが、抽出したデータの日付の順序に変な部分があっては困るので、その抜き出した通貨のTXTファイルに対して念の為ソートします

・まず抽出したファイルをまたまとめて放り込み「フィールド抽出」と「レコード抽出」はしないを選択し、ソートで「する」を選択
・ソートはまず「第3フィールドをキーに昇順で並べなおす」で、ソートする。
・それで書き出された.newファイルを再度登録しなおし、今度は「第2フィールドをキーに昇順で並べなおす」
(※…心配性なので、徹底してます)

これで、通貨別の1分足ヒストリカルデータが5年分手元に揃った訳ですが、これはまだ時間がForexiteのGMT+1というののままです。で、それを変換するのにS.U.FXさんはズバリ自動化 Waha!Transformer Personalを使われてますが、自分はこのソフトを持ってなく、有料ソフトだったので、今回の「GMTの時刻を一括変換」する機能のみのアプリを自作しました。(ダウンロード : windows用)。相変わらずな作りのアプリですが、一応目的の動作はします。

まず、ダウンロードしたZipに入ってる「TimeZoneEditer.exe」を起動して下さい。(※一緒に入ってるもう一つの「MakeCandleStick.exe」は時間足を変更するアプリで今は使いません。)
起動したらFreeCSVみたくファイルをドロップして登録してください。複数ファイルまとめて処理出来るようにしたので、まとめて登録してOKです。EST(米国東部時間)への変換で良い場合は、そのまま実行するだけで、元ファイルと同じフォルダに.newで新しいファイルが作られます。一応他の設定項目も説明しておくと、「日付の区切り文字」の欄は2001/01/02ではなく2001-01-02という形式にしたい人用です。MySQLなどはこっちの形だそうなので、一応変換できるようにしておきました(でもMySQL使えるスキルのある人は、こんなアプリ使わない気もするけども…)。「吐き出す時刻のフォーマット」はそのまま、時:分:秒のフォーマットです。2時6分を、02:06:00ではなく 2:6 にしたければ h:n という形にしてsを消しますが、通常はhh:nn:ssで良いとおもいます。
「そのcsvファイルの~」は日付が入ってる位置が左から数えて何番目であるかを、一応設定できるようにした項目です。
上で解説してきた手順で処理してきた場合、この時点でのヒストリカルデータの形式は
EURUSD,20060101,230100,1.1847,1.1847,1.1847,1.1847
というようになってると思うので、左から2番目ということです。もし、通貨の欄のない自分で作ったデータが、例えば Date,Time,Open,High,Low,Close となっていた場合に、その基準時刻をずらしたい場合は、「そのcsvファイルの~」を2ではなく1に変えればそのまま変換できるはずです。
「ずらす量」はそのまま、何時間前後にずらすか、です。

で、ようやくこれで通貨別1分足のヒストリカルデータが好みの基準時で手に入った訳です。ただ、この時点でもうOKな人はそれで良いですが、自分は5分足にしたかったので、好きな時間足に変換できるアプリを作りました。先ほどのダウンロードのZipに一緒に入ってる「MakeCandleStick.exe」です。
使い方は、先ほどと同様にファイルをまとめてドロップして、何分足にするかを指定し実行するだけです。注意する点としては、例えば

17:00
17:01
17:02
17:03
17:04
17:05

と並んでいるデータを5分足にする場合、このアプリは17:00 -17:04までのデータを「17:05のローソク足」として書き出すことです。これ、VTの仕様がこうなんですね。もう自分はそれで慣れてるのでこうしてあります。
あと、Forexiteの元の分足は商いの薄い時間帯でたまにデータに欠けがありますが、それについては、このアプリは単に前後の5本の足をまとめて5分足にしてる訳ではなく、例えば

17:02
17:04
17:11

だったら、17:02のOpenを始値として、17:04のCloseを終値として17:05のローソク足を形成するようフォローしてあります。また、この例みたく17:05-17:10のようにまるごと抜けてしまった場合は、ローソク足を形成せず、飛ばします。

そういう仕組みになってるので、一応単に前後のデータをまとめあげるだけより実戦に近いローソク足が得られるとは思います。
ちなみに、1時間足にしたい場合は60分、4時間足ならば240分というように指定して下さい。24時間を割り切れる数であれば、3分足とかも正確に作れます。ただ、日足の場合は特殊で、このアプリは0:0:0 - 23:59:59 までを一本のバーにするので、そこで区切られるとまずい場合は、「TimeZoneEditer.exe」の方でそれを見越して事前に基準をずらしてから日足を作って下さい。

という訳で、ヒストリカルデータの取得と加工でした。全部やると結構な工数にはなりますね。
でも、有料のデータを買わずに5年半ものヒストリカルデータが無料で手に入るんだから、苦労も報われます。

で、早速この5年半のヒストリカルを使い、ここ2週間で作ったシステムのバックテストを行ってみた訳ですが、5年半のデータが出ると、こう、なんだか感慨深い物がありますね。その結果はまた明日にでも記事書こうと思います。

――――――――――――――――――――――――――――――――――――――――――

※いつものお約束ですが、上記のアプリを使用して生じたいかなる損害も補償できませんので、自己責任でお使い下さい。


« 5/29 -6/1 の成績 | メイン | バックテストが楽しすぎる件 »

posted at 2006年06月05日 21:17

トラックバック

このエントリーのトラックバックURL:
http://kasege.sakura.ne.jp/mt/mt-tb.cgi/54

コメント

投稿者 こはる : 2006年07月03日 00:28

はじめまして。
為替でシステムトレードできないかなと探し回って、こちらを知りました。
こちらも、S.U.FXさんのところも、すごく参考になりました。
自分はエクセルくらいしか使えないので、まだまだこれから大奮闘の予感なのですが、おかげでデータ取得などがはかどりました。
私も出資金5万円からはじめました。お互いがんばりましょう(^ワ^)

投稿者 otk : 2006年07月04日 14:25

はじめまして。
参考になって何よりです。

システムトレードはシステムが肝心とはいえ
やっぱりヒストリカルないと大変ですね
自分もS.U.FXさんの記事のおかげで随分助かりました

お互いがんばりましょう○

投稿者 わんこ : 2006年08月20日 21:29

こちらに書くか、最新記事に書くか悩んだんですが、こちらに書かせて頂きます。

ヒストリカルデータの取得と加工をしてる時にこちらのブログに辿り着き、自作されたアプリをダウンロードさせて頂きましたm( __ __ )m

おかげで作業が随分楽になりました。

ありがとうございました m(_ _*)m

これからも、ブログ楽しみにしてます^^

投稿者 白うなぎ犬 : 2006年08月20日 23:05

おはつです。
自作アプリ頂きました。
非常に使いやすかったです。ありがとうございました。

投稿者 otk : 2006年08月21日 08:38

> わんこさん、白うなぎ犬さん

お役に立てたようで何よりです
実は最近
「自動でForexiteからDLして、ソートや通貨抽出やタイムゾーン加工まで全部自動でやってくれるアプリ」
でも作ろうかなーと思ってます。

…ちょっと今余裕がないので、いつ完成するか完全に未定ですが
もし出来上がったらその時は、また使ってやってください
一応、自分でもそんなアプリが欲しいので、いつかは作ると思います…(たぶん)

投稿者 わんこ : 2006年08月21日 12:17

>「自動でForexiteからDLして、ソートや通貨抽出やタイムゾーン加工まで全部自動でやってくれるアプリ」
でも作ろうかなーと思ってます。

堪らなくいいアプリですね(*´∇`*)

気長に楽しみにしてますね。

投稿者 otk : 2006年08月26日 17:44

ありがとうございます
やる気でて頑張ってました

一応、未DL分をDLしてソートして解凍して追記して
通貨抽出してタイムゾーンずらして目的の時間足で保存
…というところまではほぼ出来たので
近いうちにbeta版みたいなのはUpできるかなーと思います

投稿者 MOMO : 2006年09月24日 09:07

ふたたびMOMOです。
さっきの書き込みがなぜかトビトビになってしまって……。(長文すぎ?)

顔文字とかがいけなかった気もするので、削除してもう一度UPさせてください。スミマセン。


*******************************
はじめまして。
過去のFXのデータを手に入れたくてこちらのブログにお邪魔していまーす。
こんなにたくさんいっぺんに手に入るなんてステキすぎます。
しかもやり方まで詳しく書いてあるし……。もう最高。デス。

irvineでロシア時間の1分足zipデータをDLして解凍するところまでは、わたしにもできたんですけど、ちょっとうまくできないところがいくつかあって、書き込みしています。もしお手間でなければお教えいただけないでしょうか……。ヨロシクおねがいします。

いま、DLした1分足のデータから日足のデータをつくりたいって思ってるんですけど、解凍した1分足データ(1年分で250個くらい?)の時間をロシアの時間からアメリカの東部時間に変更したくて、otkさん自作のTimeZoneEditer.exeで1年分ずつ一括変換しようとしたら、『実行』ってボタンをクリックした後、『TIMEは数値データじゃないよー』って言われちゃいました。

これってきっと、いっこいっこのCVSファイルの1行目が:
TICKER,DTYYYYMMDD,TIME,OPEN,HIGH,LOW,CLOSE
になっているからなんですよね?

と思ってためしにこの行を取り除いたファイルを一個つくって同じことを試したらうまくいきました。

それで、もしそうだとすると1年分で250個ある全部のファイルの1行目を1ファイルずつ削除しないとイケないってことになってしまって、スゴく大変なんじゃないかなあって思ってしまいます。『複数ファイル結合』でファイルを結合する方法もご紹介いただいていて、やってはみたんですけど、結合したファイルの中にも元のデータファイルの数だけ「TICKER,DTYYYYMMDD,TIME,OPEN,HIGH,LOW,CLOSE」の行が挿入されていて、「また『TIMEは数値データじゃないよー』って言われちゃうのかしら?」と手がとまってしまいました。

きっとわたしのやり方がどこかオカシイからだと思うんですけど……。みなさんうまくできてらっしゃるみたいなので……。

それと、↑でためしに「TICKER,DTYYYYMMDD,TIME,OPEN,HIGH,LOW,CLOSE」を取り除いてうまく変換できたデータなんですけど、マイナス6時間シフトしたときに日付の変更が必要になることもあるのかなあって思いました。たとえばロシアの時間が2001年2月1日0時1分だとしてこれをマイナス6時間するっていうことは1月31日の18時1分?って思うんですけど。。。変換した後のCVSファイルを開いてみると、日付は連動していないみたいで……。(なんかわたしとてもおバカな勘違いしてるようでお聞きするのが怖いんですけど、間違ってたらゴメンナサイ)。えっと、ようするにDTYYYYMMDDの日付データはあとからエクセルとか使って「18時から24時までの日付は1日くり上げ」みたいにしなくちゃいけないのでしょうか。

あーん、長文になってしまってゴメンナサイ。あと最後にひとつだけ質問させてください。
otkさんはDLしたデータを分析するときに、どんなソフトを使ってらっしゃいますか?わたしの手元にはいま、友人から譲り受けたTradeStation 2000iっていうソフトがあるんですけど、いまいち使い方が解らなくって(英語ですし ^-^;)、あと、MetaTrader4 http://www.metatrader4.com/っていうフリーソフトもあるらしいんですけど、イカドウブンです。

で、やっぱり使い慣れたエクセルかなあって思うんですけど、エクセルはいちどに扱えるデータが65536個に制限されているので、5年分の1分足のデータをいっぺんに扱ったりはできないんですね……。

とかいうことで悩んでいます。
アドバイスいただけると、とっても嬉しいです。
お忙しいとは思いますがよろしくお願いします。

ブログがんばってください。

投稿者 otk : 2006年09月26日 01:58

書き込みどうもです(一つ目の方、消しておきますね)

ちょうどタイムリーなんですが、
今回、この一連の 「DL→抽出→変換→結合」 という作業を
全部自動でやってくれるアプリを作ったので、
ぜひ、そちらを試してみてください

http://kasege.net/forex/archives/2006/09/forexitedl_auto.html
実行ボタン一発で、あとはほったらかしでイケるはずです。

そちらのアプリでは

> 変換した後のCVSファイルを開いてみると、日付は連動していないみたいで……。

の問題も解決してます。
(その問題はバグです。修正したと思ってたら間違って古いverのプログラムをWebに載せてました。全然気付いてなかった。。すみません。)

> otkさんはDLしたデータを分析するときに、どんなソフトを使ってらっしゃいますか?

分析やバックテストするところまで、ぜんぶ自作のプログラムでやってるので
一般的なソフトはあまり使ったことないんですが、
今から始める場合 MetaTrader4 はオススメです。

MetaTrader(通称MT)の日本語の情報は少ないですが、S.U.FXさんのブログ
http://sufx.core.t3-ism.net/
が、わりと初級なところから役立つ記事までいろいろあるかなと思うので
じっくり読んでみるといいと思います
ただMTはちょっと使いこなすのには、ある程度PCに慣れてないと
辛いかも知れません

この手のシステムトレード用のソフトだと、FXA証券
http://www.fxasec.com/html/
の、チャートトレーダーというソフトがわりと敷居が低いです。
チャートトレーダーで実際にトレードする場合、FXA証券に口座を開く必要がありますが
デモ口座でとりあえず使ってみることも可能なので、
デモ口座開設して、用意されてるシステムを使って遊んでみるところから始めるのが
わかりやすいかなーと思います
デモ口座の開設は
http://fxasec.com/r/d/
ここからです。
チャートトレーダーの話題を扱ってるブログだと、プログラマーなFX~完全自動売買への道~
http://victor.cocolog-nifty.com/blog/
さんのブログがいろいろ分かりやすいかなと思います。
ただ、チャートトレーダーはちょっと不安定で、サーバーへの接続がよく切れたりします(段々改善していってはいるらしいですが)

ちなみに TradeStation 2000i の場合は、システムトレード徹底攻略さんのところの
http://f-blog.jp/swingwaver/index.php?ID=50
この記事がわかりやすいかなと思いますが
これだけだと分からない所もあると思うので、いろいろネット検索したり本買ってみるしかないかもです。
あんまり自分は TradeStation 2000i 詳しくないので、助言しかねます。。すみません。

投稿者 MOMO : 2006年09月26日 23:07

otkさん

AutoForexiteを使ってForexite全てのデータを取り込みました。すごーい。otkさんスゴすぎです。どうしたらこんなことができちゃうのですか?羨望のまなざし~、です。

設定もデフォルトのままで、ワンクリック。あとはなーんにもしないで取り込めちゃいました。取り込んだだけじゃなくフォルダーも整理されていて、ファイル名まで。

あと、他にもいろいろアドバイス有難うございます。
MT路線でわたしなりに分析とかバックテストとかためしてみたいなって思います。

ありがとうございます。

投稿者 otk : 2006年09月27日 07:00

上手くいったようで何よりです
いやはや、こちらこそ褒めてもらっちゃって、ありがとうございます

システムトレードは、ここから先の
「よいトレードシステムを考える」、というのがまた大変かもですが
一度組むとあとは楽なので、ぜひがんばってください

投稿者 MOMO : 2006年09月27日 13:56

otkさん

たびたびスミマセン。MOMOです。
昨日無事に抽出した各通貨・各年度ごとの1分足データを
日足に変換しようとして、otkさん自作の
MakeCandleStick.exeで「1440分」を指定して実行した
んですけど、出来上がったファイルを開くとブランクでした。

またまた、わたし何かやらかしてしまったんでしょうか。

ちなみに同じ方法で1時間足、4時間足、12時間足を試した
らバッチリ書き出してくれました。
でもなぜか日足だけは……。

なにか特別に気をつける点とかありますか?
レスいただけると嬉しいです。

投稿者 otk : 2006年09月28日 02:08

あ、すみません
MakeCandleStick.exe は、日足には対応していないので
いわゆる「仕様です」という事になってしまうんですが、
今、そのアプリもちょっと作り直してUpしようとしてたとこなので、
日足にも対応させますね

日足はもうちょっとお待ち下さい
(たぶん、一週間以内には新しいのUpします)

投稿者 otk : 2006年09月28日 05:39

アプリ自体は既に作ってあったので、
あんまり待たせるのも申し訳ないなと重い
とりあえず日足に対応させてみたのを、先にここにUpしておきます

http://kasege.net/forex/collect_candlestick.zip

ちょっとまだ使い方の詳細記事を書いてないので、ブログで公開するのはもうちょっと先になりますが
アプリ自体はこれで目的の動作をするはずです
使い方は前と大して変わらないので、だいたい分かるかと思います。
基本的に、ファイルをドラッグして登録し、「日足を作る」を選択して、実行ボタン押せば
それで出来上がると思います

ぜひ試してみてください

投稿者 MOMO : 2006年09月28日 09:36

あ、そうだったんですね。
仕様ってことだと、いくら「頑張って」も上手くいかない
わけですよね~。

MakeCandleStick.exeが日足に対応するんですか?!
キャー、です。otkさん素晴らし過ぎですよー。

首をキリンにしてお知らせをお待ちしてます。
わくわく。

投稿者 otk : 2006年09月28日 09:52

あ、紛らわしくてすみませんが、
一つ上でリンク張った

> http://kasege.net/forex/collect_candlestick.zip

が、アプリの名前変わってますけど、MakeCandleStick.exeの新verです。
日足つくれますんで、上のリンクcollect_candlestick.zipを落として使ってみてください(^^;

一つ上では連続書き込みしてしまいましたが、
今日、2時に「仕様です。一週間以内にはUpします」とコメント付けたあと
そのあと3時間で日足対応ver作れてしまったので、
5時にすぐUpしたって事だったりします

…分かりにくくてすみません。。

投稿者 MOMO : 2006年09月28日 21:52

oktさんゴメンナサイ。

otkさんのコメント、分かりにくくなんかないんです。
わたしがうっかりしてたんです。
昨日の夜、「仕様です」っていうotkさんの書き込みを読んで
すぐ、PCをそのままにして寝ちゃってて……。

で、今朝IEの更新ボタンを押さないままわたしが書き込んだ
ので、コメントの順番が変なことになってしまったんです。

夜の間に新作がUploadされていたなんて、驚きです。
(もう少し時間がかかるのかなーなんて思ってました)
otkさんには毎回驚かされてます。

さっそくDLして使わせていただきました。
MakeCandleStick.exeを使ったことがあったので、
こんなわたしにも簡単に使えちゃいましたよ。
あっと言う間に日足データの完成で~す!
有難うございます。なんだかこんなに楽しちゃっていいの
かしらって思っちゃいます。

で、ひとつだけ気がついたことがあるんですけど……。

日足のデータをみると、市場が休んでいる48時間分(日足で
いうと2コマ分=2行)のデータが
Open-High-Close-Low
Stayしてるんです。
(USDJPYのいちばん古いデータでいうと
2001/01/05と01/06が116.54)

この状態でMACDとか移動平均の計算をすると計算結果に
影響出るんじゃないかなあって思うんですけど、
いかがですか?

エクセルとか使って上手く取り除くこともできるとは
思いますけど、なにせデータがたくさんあるので……。

またまたアドバイスをお聞きしてみたりします。
『良い子のなぜなぜ相談室』みたいになってしまって
すみません。
(わたしにはotkさんのブログ、レベル高すぎなのかも)

お時間あったらで結構ですのでコメントいただけると
嬉しいです。

投稿者 otk : 2006年09月29日 19:19

> 日足のデータをみると、市場が休んでいる48時間分(日足でいうと2コマ分=2行)のデータが
> Open-High-Close-Low
> Stayしてるんです。

あ、それはこちらが見落としてました、すみません
バグ報告ありがとうございます、一般公開前にしっかり指摘してもらえて助かりました。…直します。

ちょっと今忙しくていつ修正できるかはわからないですが
隙間時間にプログラムのコード見て、直せたら直して再Upしますので
しばらくお待ち下さい
遅くとも、数日以内には…(ホント、タイミング自分でもわからないですが、なるべく早めにやります)

取り急ぎ、報告でした

投稿者 MOMO : 2006年09月30日 11:08

otkさん

ステキ。もう最高です。
世界中どこを探してもこんなにステキなブログはないですよー。
Version-upを楽しみに待ってますね。
その間にMTの勉強とかしなくっちゃって思います。

深謝

投稿者 otk : 2006年10月02日 18:40

褒めるの上手過ぎです 笑
ありがとうございます

http://kasege.net/forex/collect_candlestick.zip

同じURLですが、中身は変わってます。新verです
ちなみに件の
『市場が休んでいる時間帯のデータが書き出される』 という問題は
単にその時間帯をカットするだけでなく、そのカットする時間のタイミングも自由に設定できるようにしました。
設定項目の一番下で指定できます。
(カットするというより、「書き出す期間を設定する」、という感じですが)
細かい説明はマウスカーソルを重ねると出てくるので、そちらで確認してみて下さい
…通常は、デフォルトのままでOKだと思います

あと、この「市場が休んでいる時間帯のデータが書き出される」バグは
日足だけじゃなく、5分足や60分足でも発生してたので
お手数ですが、他の時間足もやり直してみてください

…これで多分だいじょうぶだと思います
(でも実はちょっと不安)

投稿者 MOMO : 2006年10月04日 21:55

otkさん

レスが遅くなってしまってゴメンナサイ。

最新版のCollectCandleStick.exeを早速使わせていただき
ました。相変わらず小気味良く動いてくれましたよ~。
(世の中にはどうしてこんなスゴイことが次々とできてしまう
人とそうでない人がいるんでしょう……。シクシク)

じつはまだ日足しかためしてみてないんですけど、
休日の2データもすっかり消しこまれていてバッチリでした。


えっと、こんなに素晴らしいソフトを提供していただいていながら
こんなことお聞きするのもちょっとアレなんですけど……。
じつはまた、ひとつ気になることがあるんです。何のことかって言うと、
前のバージョンと日付が1日ずれているように見えるんです。
そのへんちょっと確認させていただいてもいいですか?

またまた2001年のいちばんはじめのデータでみると、
CollectCandleStick.exeの古いほうのバージョンでは

2001/1/2 17:00:00 114.43 114.64 113.59 113.61 Tue
2001/1/3 17:00:00 113.61 115.75 113.54 115.64 Wed
2001/1/4 17:00:00 115.64 116.86 115.50 116.54 Thu
2001/1/5 17:00:00 116.54 116.54 116.54 116.54 Fri
2001/1/6 17:00:00 116.54 116.54 116.54 116.54 Sat
2001/1/7 17:00:00 116.54 116.61 115.65 115.94 Sun
2001/1/8 17:00:00 115.94 116.85 115.61 116.82 Mon


ってなっていて、Stayしているレートが動きはじめるのは
「1月7日(日)の17:00」という表記になっています。
これはニューヨーク時間の午後5時(日本時間だと翌日の
午前6時?)なので、いいのかなあって思ってました。

で、今回のバージョンアップしていただいた新しい
CollectCandleStick.exeでは、おなじところが

2001/1/3 17:00:00 114.43 114.64 113.59 113.61 Wed
2001/1/4 17:00:00 113.61 115.75 113.54 115.64 Thu
2001/1/5 17:00:00 115.64 116.86 115.50 116.54 Fri
2001/1/8 17:00:00 116.54 116.61 115.65 115.94 Mon
2001/1/9 17:00:00 115.94 116.85 115.61 116.82 Tue

ってなってました。
数字のならびをみるとレートのデータ(Open-High-Close-Low)
は全く同じで、日付だけが一日早くなって(古いほうの翌日)
いました。
CollectCandleStick.exeでオプションを選択するところでは
「例えば5分足を作るとき0時0分0秒~0時4分59秒を
0時0分のバーとする(MetaTrader仕様)」を選択している
ので、おなじ考え方で日足を作るとすると、いまニューヨーク時間が基準なので、
オセアニア市場の開くニューヨーク時間日曜の午後5時から
日曜の日足を作って、その週の最後はニューヨーク時間金曜日
の午後4時59分59秒にクローズする日足(つまり木曜日の日足)
が週の最後の日足なのかなあって思ってたんですけど……。

でも、市場は月曜日にオープンして金曜日にクローズするって
考えるのが気持ちにフィットしますよねー。

そのへんわたしは良くわかんないんですけど。
一般的にはどう考えるのがふつうなんでしょう。

やっぱり月曜日に始まるのがフツーですよね。
じゃあいいんだいいんだ、のわたしです。(切腹)
間違ってたらスミマセン。

投稿者 otk : 2006年10月05日 19:23

切腹は早まらないでください 笑
…仰るとおりこの日足は変になってます。
確認したつもりだったんですが…なんかホントすみません 汗
どうも両方VT仕様になってたようです。
で、そこは日足でもMT仕様と並行して使えるようにしました。

あと、設計も少しやりなおして、
動作の進行状況も表示するようにして、、、今度こそ大丈夫…
と言いたいものの前科があるので心配ですが
一応こちらを

http://kasege.net/forex/CandleStickEditor.zip
(また名前変わってますが、気にしないでください)

ちなみにMTの日足、「週の初めの足は、"日曜の17時の名で書き出される"」でいいようです。
なので、「日曜の日足から木曜の日足まで」ということになり
確かにちょっと気持ち悪いかんじですね。
ただ、MTの日足をよく見るとどうも、土曜日曜の時間が数時間混ざってバーが形成されてるようです。
つまり、バーが週に6本出来ます。うち1本はやたら短いので数時間のみでバーが形成されてるっぽいんですが
…これについては、なぜそう書き出されてるのかは不明です。

MTの6本に合わせたい場合は、適宜CandleStickEditorの項目を変え、
例えばマーケットクローズの曜日を金曜→土曜にすれば
移動平均などの整合性はほぼ取れるかなと思います。

あと、これは直接関係ないですが、
もし、『月曜 - 金曜まで』という体感的にわかりやすい形で書き出したい時は、
CandleStickEditorの設定を「VT仕様」にして書きだすと、そのようになります。
ちなみに、このMT / VT 仕様の区切りの違い、どちらがメジャーなのかは分かりかねます。
…実際どちらの形式も使われてるようなので、、、でもどちらかというとMT方式の方が多い気もします。
ただたぶん、日足はVT方式がわかりやすく、それ未満の時間足はMT方式が分かりやすいっていう事で
それぞれ一長一短なのかも知れません。
自分は昔全部VT方式でやってましたが、それだと15分足とかよく間違えそうになるので…。

まぁその辺りは使う業者に合わせておけばいいかな、ということで。

で、最後に一つ重要な事を。
ここまで調べてて気付いたんですが、
日足だと、MTから直接取ってきた方が
データが1989年6月から17年分あるので、そちらの方がいい気がします。
…と、今更気づきました 苦笑

どうも、4時間足までならForexiteのデータから作った方が長いですが
日足以上はMTから直接得た方が長いようです。

投稿者 MOMO : 2006年10月07日 22:52

otkさん

CandleStickEditor.exeをためさせていただきました。
これでカンペキ!ですねっ。

毎回毎回otkさんには驚かされてしまいます。
今回も処理の経過をあらわすIndicatorが追加されていたりして……。
こころニクイ~、です。小技がきいてます。

MetaTraderでずいぶんたくさんの日足が取れるんですね。
それはそれで「わ~い」なんですけど、やっぱり1分足から
日足までイッカンセイがあった方が気持ちいいかんじもするので
わたしはotkさんの恩恵にあずかることにします。
(情報の発信元によって微妙に数値が違ったりするって、
どこかで聞いたような……)

情報ありがとうございます。
これでいよいよ、ですね。
過去データの分析に没頭したいと思います。

MetaTraderでGetできる日足データは手に入れるとして、
わたしは(無謀にも)TradeStationでサクセンを練ることに
しました。

FXCMにシステムトレードを受け付けてくれる仕組みがあるらしいんです。
そこで受け付けているのがTradeStationとおなじ
Easy Languageっていうプログラム言語らしくって……。
なにもわからないままTradeStationを選びました。

いま、TradeStationのオンラインマニュアルを読み進めている
毎日です。まだチャートさえ表示できていないわたし。(爆)
しかもプログラム未経験。
Excelでif文を書くくらいしかしたことないし……。
もう、開き直り的根拠のない自信~~、です。(汗)

進展があったら報告しますねー。
otkさんありがとうございます。

投稿者 KUMANO : 2006年10月08日 21:17

はじめまして。
すばらしいツールを公開いただき、ありがとうございます。
MT用にAutoforexiteを使わせていただいて作った、1minデータを最新のCandleStickEditorにドロップして実行し、「処理が終了しました」と出るのですが、分足のファイルが作成されず、「CandleStickEditor」のコマンドのファイルのようなもがデスクトップに現れてしまいます。
何か手順を間違えているのでしょうか?
よろしくお願いいたします。

投稿者 otk : 2006年10月09日 12:32

>> MOMOさん

上手くいってよかったです
いつも詳細に動作を報告いただけて、こちらも検証がはかどって助かりました

ちなみに Easy Language ですが、
excelでif文書いたことがあるなら、大丈夫だとおもいますよ
一歩ずつ一つずつ覚えていけば大丈夫です

また進展があったら、聞かせてください
楽しみにしてます
ノシ

投稿者 otk : 2006年10月09日 12:32

>> KUMANO

はじめまして、使用ありがとうございます

件の問題ですが、そうですね、、、ちょっと状況が不明なので少し確認ですが

・デフォルトの設定(DLして解凍して、すぐ使う時の状態)で、ファイル一つのみをドロップ登録して実行しても、うまく書き出されないのでしょうか?

・「処理が終了しました」と出る前に
 「xxxx(ファイル名).txt を書き出しました」 というメッセージが出てると思うんですが
  それは表示されてるでしょうか?

・デスクトップに現れたという『「CandleStickEditor」のコマンドのファイルのようなもの』が
  ちょっと原因不明なので、もう少しそれについて書いてもらえるでしょうか?
  (ファイル名を正確に書いてもらえると、何かしらの判断材料になります)

・あと、参考までに使ってる環境(windows XPとかwindows 2000など)も書いてくれると助かります

--

ちなみに、処理が済んだファイルはデスクトップではなく、登録したファイルが元々あるフォルダに保存されます。
つまり、例えば、AutoForexite の HistoricalDataフォルダの EURUSDフォルダの 1minフォルダの「1min_2006.txt」を登録したら、
その1minフォルダに「1min_2006 5min.txt」というファイル名で処理済ファイルが書き出されます。

なので、その「元のファイルがあるフォルダ」に、処理後も何も作られないのかどうかもチェックしてみて
やはり何も出ないという事であればその旨も書いてもらえると
原因特定の判断材料になります

ホントはデスクトップには何も現れないはずなので、
その状況はちょっと謎ですね...

投稿者 KUMANO : 2006年10月10日 10:39

詳しくレクチャーしてくださり、ありがとうございます。
再度ダウンロードしてやり直しましたら、うまくいきました。ありがとうございます。
デスクトップに余分なファイルが現れたのは、私が解凍したフォルダをデスクトップにショーカットのようにコピーして使用した為でかなかったかと思います。(ファイルも元のフォルダに作られていました。)わたくしの確認不足でした。お騒がせいたしました。

投稿者 otk : 2006年10月15日 22:01

お返事遅れてすみません!

上手く行って良かったです
これで安心して一般公開に踏み切れます 笑

あ、あとCandleStickEditorにもう一つだけ便利な機能を付けました。
元のファイルのファイル名が「1min_2006.txt」というように
「数字+min」という文字の組み合わせがあれば、
書きだす時に、そこを自動的にリネームしてくれます。
(5minで書きだすなら、自動的に5min_2006.txtとして書き出します)

近日中に(明日かあさってにでも)公開するので、
また新verの方も使ってみてください