『BS_OrdersHistory』概要

MT4標準機能を使ってオーダー履歴をチャート上に表示する方法は、ターミナルの口座履歴から表示したいオーダー履歴を1ラインづつチャートへドロップすれば何とか表示することができます。
これが使い物になるかどうかは人それぞれです。

『BS_OrdersHistory』は、オーダー履歴をショートカットキー一発でチャート上に表示するツールです。
通常のトレードでは、必要のない情報なので、表示しない前提になっています。
表示させたいときは、設定したショートカットキーを押し、表示させたくないときはもう一度ショートカットキーを押します。時間足を変えたり、MT4を終了させても非表示(削除)になります。

大量のオーダー履歴を一度に表示したり、非表示(削除)するには、内部処理に時間がかかるため、『BS_OrdersHistory』ではメモリ内処理で高速化しました。
これに伴い、オーダー履歴数の最大値を500に設定しています。
500を超えれば、エラーメッセージがターミナルのエキスパートに表示されますので、パラメーターの期間設定でデータを絞ってください。

500という制限値は、1通貨ペアで500回のトレード分に相当します。
また、期間設定ができるので使用上問題ないと考えています。

ターミナルのエキスパートログ出力

機能というほどのものではありませんが、エラーメッセージの序に使えそうな情報を表示しました。

表示内容は以下のような感じになります

2019.05.30 14:54:41.201 BS_OrdersHistory CHFJPY,H4: ***Number of trades ; 3 Win : 3 losing : 0 profit_total : 11700

これは、表示期間内におけるトレード回数、勝ちトレード数、負けトレード数、決済損益額を表示しています。
表示期間を月で区切れば、その月の情報を簡単に見ることができます。

『BS_OrdersHistory』の設定と表示イメージ

以下の画像は、ある日のリアルトレードの実画像です。
殆ど、勝っていますが、美味しいところは時間的に手を出せていない残念なトレードになっています。
これを見るとトレードの開始が「赤いラベル」か「青いラベル」で終了が「白いラベル」になっています。

始まりが赤が勝ちトレードで始まりが青が負けトレードです。
このように一目で勝敗がわかるようなデザインにしています。

オーダー履歴表示のインジケーターは、他でもよく目にしますが、大概はロングかショートで色分けしている場合が多いようです。
ロングかショートはラベルの位置関係と開始ラベルの色を見ればすぐにわかるので、あえてロングとショートの色分けをせずに、勝敗のパフォーマンスが一目でわかる方が、自分のトレードを分析する上で有効だと考えています。

上の画像の下部分が初期設定のパラメーター入力画面です。

上述したように、通常トレードに使うチャート中にこのインジケーターを常時入れておいても快適に動作するように読み込むデータ量を制限しています。
現行バージョンで500トレードが最大値で、全期間優先をTRUEに設定します。期間を限定する場合は開始終了を入力して、falseに設定します。

開発手記

実は、開発前まではフリーのインジケーターをいくつかテストし、ひとつだけ使えそうなものがあったので、ありがたく使っていました。
『MT4標準機能』と比べると十分使えるのですが、このインジケーターには問題が2つほどありました。

一つ目は、インジケータを入れれば履歴が表示されっぱなしになることです。
その対応として、表示を隠す『BS_Object_Hide』のような、これもフリーのツールを使っていました。
ついでに、このツールは、当時無料で、かなり優秀なプログラムでした。ただ、実トレードのツールとしては、やはり物足らなかったので、『BS_Object_Hide』の開発に踏み切りました。

話は戻りますが、二つ目は、結構、システム負荷が大きいインジケーターだということです。
チャートを開くと履歴を読み込んで表示するのですが、デバッグ用のトレースが走っているようで、複数のチャートを開こうとすると結構時間がかかります。
しかも、インジケーターを削除しても、オーダー履歴が消えない、すなわち、このインジケーターが自分で作ったオブジェクトを削除しないという行儀の悪いインジケーターであること。

まあ、フリーなので文句は言わず、感謝して使っていましたが、そろそろオリジナルを開発しようと思った次第です。

履歴数の制限について
私自身、MAX500の履歴で、問題ないと考えていますが、要望等があれば、動的表示にして無制限にすることも検討しています。