<MT4での自動バックテスト>
 
 今年に入ってからMT4のEAを自作し始めて、バックテスト用に「TickStory」と「MT4BackTester」を使い始めてたんだけれど、どっちもBuild600になって使えなくなってしまった。
 しばらくはBuild509に戻して使ってたけども、Build600用の有料のバックテストツールがあったのでBuild625にしてしまって、そっちを使ってみた。
 でも通貨ペアや時間足の組み合わせを一つずつ設定追加していかないといけないところが面倒だったので、他に何かないかと探してたら、案外簡単に自分で作れることがわかった。



とりあえず簡単に作れる機能で、と思ってたけど、作り出すとついついいろいろと機能を入れたくなって、土日だけで完成まで行かなかった。(;^_^A
最適化の分割繰り返し機能をPerlで作ってる人のを参考にやってみようとしたものの、Perlが読めないせいでちょっと苦戦中。
<統計解析ソフトR>

バックテストをキーワードにしてネットを検索していると、統計解析用の「R」というソフトで株式売買のテストを行う記事を見つけた。



さっそく「R」と「R」用のインジケータ集をインストールして、動かしてみた。
データはアメリカのヤフーファイナンスから取得できるらしく、銘柄のシンボルを指定するとほぼ一瞬で1銘柄のデータが取り込まれる。
試しに日経225のデータを取り込んで、RSIを使ったごくシンプルなシストレのバックテストを見よう見真似で表示してみた。
ほんの10数行の入力で利益累積曲線やドローダウンのグラフが表示された。

計算はたったこれだけ。まだ意味はあんまりわかってないけども。
--------------------------------------
require(quantmod)
require(PerformanceAnalytics)
getSymbols("^N225") #日経225日足取り込み
rsi <- RSI(N225[, 4]) #日毎のRSIを終値で計算
sig <- Lag(ifelse(rsi >= 0.5, 1, -1)) #売買シグナル条件
ret <- ROC(N225[, 4])*sig    #1日毎の損益計算
ret <- ret['2013-01-01/2014-03-30'] #出力期間設定
eq <- cumprod(1+ret)      #?
plot(eq)            #利益曲線グラフ表示

table.Drawdowns(ret, top=10)  #ドローダウングラフ呼び出し
table.DownsideRisk(ret)     #日毎損益グラフ呼び出し?
charts.PerformanceSummary(ret) #利益累積グラフ呼び出し
--------------------------------------

インジケータもいっぱい登録されてるみたいし、バックテスト用のグラフも最初から用意されてるっぽい。
覚えればいろいろおもしろそう。
テストは為替や各国指標、先物、商品、各国の株と、ヤフーアメリカに登録されてるものは全部できるのかな?
ただ、前に外国株含めたサヤ取りソフト作ったときに、ヤフーからデータ取り込んでたんだけど、日本株はアメリカのサイトには見当たらなかった気がする。。。