BTLM に手を加える。(Win7 64bitでの不具合対応他)

BTLM の活用方法を思いついた人や実際役立った人からのコメント歓迎です。

コメント欄にあったように、Win7 64bit 環境でBTLMが動かなかった問題に対応したものをここに置きました。

↑作業フォルダを指定する部分を絶対パスで指定するようにしたのと、
↓時間足や通貨ペアの切り替えでラインが消えてしまう場合に対処しています。


このインジケータは、普通のインジケータと違い、MT4のバックエンドで RTerm.exeが非同期で計算するので、休日にチャートにドロップしても、右クリックで更新を何度か行わないと表示されません。不便だと思う人は、http://www.fx1.net/mt4tick.php のMetatrader Tick Sender を起動すると良いでしょう。


既に、このインジケータをEAに組み込んでバックテストされている人もいるようですが、BTLM の計算が非同期に行われている点に注意してください。

↑一般のインジケータでは、Tickが来るたびに、結果が計算されますが、

↑BTLM では、あるTickから計算が開始されて、実際に結果が出るまでにいくつもTickが更新される可能性があるということです。


計算処理が遅すぎるので 非同期的に計算しているのですが、以下のように修正すれば常に1Tick遅れで計算できるようになります。

RExecuteAsync(R, "model <-...
↓
RExecute(R, "model <-...

※本格的にバックテストするためには、おそらく事前計算が不可欠でしょう。
テスト前に検証期間の BTML の値(平均値、バンド両端値、傾き、トレンド起点からの経過時間)を計算してデータを保存しておきます。
テスト中は、そのデータを読み取るようにするのが良いとおもいます。(昔やってたけど、コードごと捨てちゃった...^^;



トレンド起点からの経過時間は、正確な値は分からないのですが、区間分割された最後の部分の長さは求められます。

↓こんなコードを書くと…

↓分割された時刻に赤ラインを引けます。


↓以下のようなコードを参考にすれば、Rのグラフやツリー図をMT4から表示させたり、データとして保存できます。

最新版の中にコメントアウトした形で書いてありますので、必要であれば参考にしてください。