2015年10月01日

MT4設定、ヒストリカルデータが問題を引き起こす可能性について


お世話になっております。
TAKEでございます。


少し前になりますが、ユーザー様より販売商品の「Bollinger☆TradeSignal」で矢印の表示ズレの不具合が
チャートを監視後、数時間経過後にかなりの頻度で発生するというご報告をいただいておりました。


下の様な感じです。
 ↓




私自身は、今まで2度ほどしかこの表示不具合の現象を確認したことがなく、
何が原因でこのような不具合が発生してしまうのかその時はわかりませんでした。

その時の対処方法は、MT4を新規インストールし、設定をデフォルト状態にすることで解決しましたので、
原因は、MT4の問題か、ヒストリカルデータに原因があるのかな? くらいで大して気にしてませんでした。

実際、不具合のご報告をいただいたユーザー様に同様にMT4を新規インストールし、設定をデフォルト状態に
していただくことで不具合が収まったようでしたので、ひとまず一安心と思っていました。



しかし、この不具合の現象にはとんだ落とし穴があることに最近気がつきましたのでご報告させていただきます。



まず、不具合の原因についてですが、

MT4の設定の「ヒストリー内の最大バー数」と「チャートの最大バー数」が関係していて、
この設定値の上限にヒストリカルデータの数が達してしまっている場合に不具合発生が起きやすいことが判明しました。


こんな状態です。
 ↓




つまり、MT4上でチャートを開いていた場合、時間経過とともに、ロウソク足が確定し、ヒストリカルデータが
一つずつ増えていこうとしているのに、MT4設定の「ヒストリー内の最大バー数」と「チャートの最大バー数」では、
この上限に達しているとして、一番古いヒストリカルデータから自動的にデータを削除していくため、
インジケーター表示用のインデックスバッファの時系列配列の要素数に矛盾が生じ、
正確な配列のコントロールができなくなり、表示が崩れてしまう。

というものです。

ただ、すぐに不具合が発生するわけではないので、メモリー領域に多少の余裕を作っているのかもしれません。
ある程度は処理できるが、いずれパンクしてしまうような感じ・・・?
又は、ヒストリカルデータの削除タイミングとして、ある程度の許容幅があり、
許容幅を超えたタイミングで削除対象のヒストリカルデータを一気に削除するため、削除タイミングまで不具合が発生しないのかな?

理屈的な部分は、あくまで私の考え(イメージ)なので本当のところは違うかもしれませんが、
不具合の原因は、これで間違いないようです。



で、これ、何が問題かというと、

インジケーターや自動売買EAの作られ方にもよりますが、
特に iCustom関数 で外部インジケーターから判定条件を取得し動作させているような自動売買EAの場合、
インジケーターのチャート表示用のインデックスバッファを参照するため、このインデックスバッファが狂ってしまうと
エントリーや決済などのEAのプログラム通りの注文内容にならない可能性が出てきます。

これは、私のインジケーターやEAが。ということではなくMT4全般のお話です。
そして、プログラムでは回避できない問題です。
MT4の仕様と、設定が引き起こす矛盾的な問題だからです。

自動売買EAの方の確認はしてはいませんが、理屈的に影響を受ける可能性が高いですので、
自動売買EAを稼動させる方は iCustom関数 を利用したものは注意した方がよいと思います。
(いずれ時間をみて実際に確認してみたいと思いますが、まずはご注意を。)

「じゃー、自動売買EAのファイルが1個だけの単体の場合は大丈夫だね。」と思われるかもしれませんが、
この場合でも、iCustom関数 を利用していないとは断言できません。
それは、MT4の標準のカスタムインジケーターを利用しているかもしれないからです。
ですので、自動売買EAのファイルが1個だけの単体だから大丈夫とは言えないのです。


結論は、皆さんが注意した方が良いということです。
EAの開発者に問い合わせるというのもいいかもしれません。



「mt4 軽くする」などのキーワードでサイト検索すると、「ヒストリー内の最大バー数」と「チャートの最大バー数」を
「2000」など少ない数値に変更することを勧めているサイトをよくみかけます。


http://mt4-labo.com/lightweighting/

http://the-catcher-in-the-fx.com/mt4-kussoomoi/

http://fx-on.com/news/detail/?id=1360&c=1


などなど・・・

該当するサイトがとても多いことから、
この様にMT4の設定を変更されておられる方がとても多いと思いますが、

ヒストリカルデータの数値が「ヒストリー内の最大バー数」と「チャートの最大バー数」を超えないように、
余裕をもった数値設定をされることをお勧めします。


こんな感じで毎日利用してもすぐに上限に達しないように余裕ある設定に。
(ちょっと余裕持ちすぎですけどね。笑)
 ↓




ちなみに、私が2度ほどしか今回の不具合現象を確認できなかったのは、
トレードに利用しているパソコンのメモリーが 12GB と結構多めのマシーンなので、
「ヒストリー内の最大バー数」と「チャートの最大バー数」の数値を低くするのではなく、
逆にMAXに設定していた為、この現象を確認できなかったというのがオチです。

2度経験したときというのは、たまたま「ヒストリー内の最大バー数」と「チャートの最大バー数」の
設定を変えた時があったのでしょうね。


MT4について、いろいろなことを把握したり、いろいろな影響を受けたくないという方は、
利用するパソコンはメモリーが多い高スペックのものを利用する方が無難かもしれません。

それと、EAのバックテストをよくされる方は、「ヒストリー内の最大バー数」と「チャートの最大バー数」を
よく変更されることと思いますので、「裁量トレード用」と「自動売買トレード用」、「バックテスト用」など
MT4をそれぞれ使い分けて、設定をあまり頻繁に変えないようにした方が良いと思います。
少なくともMT4のデフォルト設定から変更される場合は、何に影響をするかのかを把握されてください。


私は、トレードでVPS(仮想専用サーバ)を利用していますが、メモリーアップを検討するか、
用途別の複数のMT4や、インジケーター、EAの同時稼動数を減らしてメモリー節約をしなければいけないなー。
と思っています。MT4の設定の方が重要ですからね。だって、MT4がちゃんと動いて、なんぼ ですからね。


ご参考までに。

TAKE
自己紹介
チームTAKEさんの画像
チームTAKE

こんにちは。
TAKE (タケ)と申します。

周りの仲間と楽しくクラブ活動のようにFXを楽しみたいと思い

「チームTAKE」を結成しました。

TAKE、IKE、TOSI、YAMA の
4名です。

FXに関する有意義な情報を次々と配信したいと思います。


Eメールアドレス:
team_take@supportmail.sakura.ne.jp
商品販売(DLmarket )
記事カテゴリー
最新記事
<< 2018年06月 >>
          1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30