BandCrossのFX自動売買

勇敢に

バックテストのBarsの値

バックテストをする時はヒストリー内やチャートの最大バー数を非常に大きな数にします。(231乗,2147483647)ワタシもそのように設定して2005年以降のFXDDのヒストリカルデータを取り込んでバックテストしています。

最大バー設定a

ところが先日機械学習を色々試しているときに、学習データを多くすれば予測精度が良くなるのかなと思って参照するバーを2000本にすると計算エラーが発生する事に気がつきました。800本ならOKなのに2000本はダメとはこれいかに、ということで最初はワタシのプログラムに問題があるのだろうと思っていたのですが、調べてみるとバックテストを行う時の最初のバーの数いわゆるBarsの値の初期値には上限があることがわかりました。

2005年からの1間足データとして71000本以上のヒストリカルデータを取り込んでいるにもかかわらず、201611日からのバックテストを開始すると最初に参照出来るバーは最大1000本しかありません。バックテストの時間が進むにつれて参照可能なバーの数が増えていくのです。そのため計算に必要なバーを1001本以上にするとバックテストの時間が進んでBarsの値が十分に大きくなるまで計算が正しく実行出来ないということになります。詳しく調べた訳ではありませんが通貨ペアやタイムフレームにかかわらず最大値は1000本のようです。Bars初期値

mqlのフォーラムを見てみると同じような事で問い合わせている人がいてその回答を見る限り拡張する事は出来ないようです。

https://forum.mql4.com/61111

実際の運用時はヒストリカルデータの数がBarsの初期値になるので問題無いのですが、1500本の移動平均などを使っている方はバックテストの時に気をつける必要あるかと思います。(そんな人はいないと思いますが)

作成者: BandCross

普段は自動制御系ソフトウェアのエンジニアをしている会社員です。FXの自動売買ソフトウェアを専門サイトに出品していますので、それに関連する情報を発信していきたいと考えています。

コメントは受け付けていません。