Seconds Tick and Range Charts MT5

MetaTrader 5用の秒足(1~30秒)、ティックバー、レンジバーです。ブローカーの実ティック履歴からカスタム銘柄として構築され、ティックごとに更新されます。チャート上では、どのインジケーター、テンプレート、EAでも動作させられます。チャート上のヘルパーが各バーの実際の時刻を表示します。本EAがチャート上で取引することは決してありません。

機能

EAをブローカーの銘柄のチャートに適用します。EAは次のことを行います:

  • ソース銘柄の仕様を持つカスタム銘柄(例:EURUSD_S5)を作成します
  • その履歴を、ブローカーの実ティックから、デフォルトでは直近3日分、分割して構築します(テストでは、BTCUSDmの3日分、376,095ティックに2.0秒かかりました)
  • カスタムチャートを開きます。テンプレートを指定した場合はそのテンプレートを適用します
  • ソース銘柄の新しいティックを、届くたびにすべてカスタムチャートに追加します
  • 新しいバーを毎秒数回ターミナルから読み戻します(MetaTrader 5 ビルド6230での実測:ターミナルがライブティックから構築したバーは、どのチャートやプログラムからも読まれないと失われることがあります。定期的に読むことでこれを防げます)
  • 60秒ごとにバーをブローカーのティック履歴と照合し、カスタム銘柄がそれらのバーについて保持しているティック数を数えます
  • 既存のカスタムチャート上で再び起動したとき(たとえばターミナルの再起動後)、続行する前に、履歴の最後の部分のバーがすべてそろっていることを確認します
  • バーが誤ったままの場合は、ティック履歴をもとに、同じ最初のティックからカスタム銘柄全体を再構築します。これはすべてのテストで正確だった唯一の修復方法です(ビルド6230での実測:ライブティックを受信中のカスタム銘柄に個々のバーを書き込んだり、その一部を削除したりすると、ターミナルが他のバーやティックを失うことがあります)

チャートの種類

  • 秒足(Seconds bars):1、2、3、4、5、6、10、12、15、20または30秒。一本のバーには一つの区間のティックが入ります。ティックのない区間にはバーがありません。これは、ティックのない一分間にはM1でバーがないのと同じです。
  • ティックバー(Tick bars):Nティックごとに新しいバーができます。
  • レンジバー(Range bars):次の価格によってバーの高値と安値の幅がNポイントを超えることになる場合に新しいバーが始まるため、Nポイントを超えるバーはありません。価格が飛んだときは新しい価格で新しいバーが始まり、その飛びを埋めるバーは描画されません。

バーはBid価格で描画されます。バーのティックボリュームは、そのバーに含まれるティック数です。

カスタム銘柄ごとにEA一つで、複数を同時に実行できます。たとえば、あるチャートではEURUSDの5秒足、別のチャートではXAUUSDの200ポイントのレンジバーを使えます。同じカスタム銘柄に対する二つ目のEAは起動せず、その理由をパネルに表示します。

すべてのティックがちょうど一本のバーに

カスタム銘柄が受け取るのはブローカーのティックそのものであり、バーのコピーではありません。テストでは、ブローカーのティック履歴から独立に再構築したものとバーを比較しました:

  • ティックボリュームの合計がソースのティック数と等しい
  • すべてのバーの始値、高値、安値、終値、ティックボリュームが再構築と一致する
  • 秒足では、バーのないすべての区間にソースのティックがなかった

10個のカスタム銘柄を同時に使った75分間のテスト(1、2、5秒足、20、50、100ティックバー、200、1000ポイントのレンジバー。合計2,537,558ティック)で、三つの条件はすべての銘柄で成り立ちました。ターミナルが2分間フリーズした後に再構築された銘柄でも同様です。

秒足チャートの空白:BTCUSDm(土曜日で毎秒およそ一ティック)では、1秒足チャートは121,859ティックに対して81,920本のバーでした。バーのない1秒の区間をすべてブローカーのティックと照合したところ、どの区間にもティックはありませんでした。秒足チャート上の空白は、ブローカーがティックを一つも送らなかった時間であり、失われたバーではありません。

時間軸について(必ずお読みください)

MetaTrader 5には一分未満の時間足がなく、カスタムチャートは常にM1の時間軸で描画されます。そのため、カスタムチャートの各バーは一分のスロットを一つ占め、チャート下部の日付は1971年一月からこれらのスロットを数えたものです。実際の時計の時刻ではありません。MetaTrader 5のチャート上に一分より短いバーを存在させる方法は、これしかありません。

EAはカスタムチャートに、実際の時刻を表示する小さなヘルパーを追加します(この説明全体を通して、実際の時刻とはブローカーのサーバー時刻を意味し、ブローカーの銘柄自体のチャートと同じです):

  • Last bar:(最新のバー)ミリ秒単位の開始時刻、長さ、ティック数
  • Cursor bar:(カーソル位置のバー)マウスの下にあるバーについての同じ内容
  • チャート本来の時間軸の上に、実際の時刻を示す二つ目の時間軸
  • チャートが更新されているかどうか:「Live: updated on every tick of EURUSD」、「Building history from real ticks: 40.0%」、「Waiting for the connection to the trade server」、「Checking the bars after the start (up to 60 s)」、「Not updating for 12 s: check the EA on the EURUSD chart」または「Not updating: no EA builds EURUSD_S5 now」

カスタムチャートはM1のままにしてください。M1のバー一本が、秒足、ティックバー、レンジバーの一本に当たります。より上位の時間足では複数のバーが統合されます。

速度

一つのターミナルで10個のEAと8個のカスタムチャートを同時に動かした75分間のテストで測定しました。測定したのは、ソースチャート上のインジケーターがティックを認識した時点から、カスタムチャート上のインジケーターがそのティックを認識した時点までの時間です。BTCUSDmはデモ口座でライブでした。ゴールドとナスダック指数は市場が閉じていた(土曜日)ため、それらのチャートには金曜日の実ティックを実際のペースで供給しました(最大毎秒61ティック)。

カスタムチャート 毎秒ティック数 中央値 ティックの99%が収まる時間 最も遅いティック
BTCUSDm 5秒足(ライブ) 1 0.2 ms 30 ms 262 ms
BTCUSDm 1秒足(ライブ) 0.9 0.3 ms 35 ms 262 ms
BTCUSDm 50ティックバー(ライブ) 1 0.2 ms 32 ms 281 ms
ゴールド 1秒足(リプレイ) 12 0.4 ms 65 ms 173 ms
ゴールド 100ティックバー(リプレイ) 12 0.3 ms 111 ms 140 ms
ナスダック 5秒足(リプレイ) 61 0.6 ms 40 ms 1.7秒 (*)
ナスダック 1000ポイントのレンジバー(リプレイ) 61 0.8 ms 41 ms 2.5秒 (*)

(*) ターミナルが2分間フリーズした後の2分間:遅れたティックが一度に届き、EAが銘柄を再構築しました。それ以外の時間では、最も遅いティックは142 msと156 msでした。75分間を通して、ターミナルは全体でCPUコア約一つ分と680~703 MBのメモリーを使用し、最初と最後の10分間を比べても遅くなっていませんでした。

ソースチャート上のパネルは、実行中、ティックイベントあたりのEA自身の書き込み時間を中央値と99パーセンタイルで表示します(テストでは中央値0.03 ms)。

接続断、再起動、変更

同じ75分間のテスト、その後のターミナル再起動、および入力パラメータ変更の別テストで測定しました:

  • ターミナルが2分間フリーズ:復帰時に、取引サーバーとの接続が切断されて回復したと報告しました。15秒以内に、EAは4個のカスタム銘柄でバーまたはティックの欠落を見つけて再構築しました(それぞれ0.2~2.4秒)。その後、10個の銘柄すべてが上記のチェックに合格しました。数分間のネットワーク切断はテストしていません。
  • ソースチャートの時間足を変更(M1からM5に変更して元に戻す):EAは最後のバーから続行し、再構築はありませんでした。
  • 入力パラメータを変更(別の入力パラメータを含むテンプレートを使用):EAは最後のバーから続行しました。
  • チャートの種類を変更(実行中のEAで、5秒足から50ティックバーに変更して元に戻す):EAは新しいカスタム銘柄を構築し、古いチャートはそのまま残しました。91秒後に5秒足に戻すと、古い銘柄を続行し、その91秒間のティックを追加しました。両方の銘柄が上記のチェックに合格しました。
  • ソースチャートを3分間閉じる:ヘルパーは「Not updating: no EA builds BTCUSDm_S1 now」と表示しました。EAとともにチャートを再び開くと、EAは最後のバーから続行し、その3分間のティックは0.34秒後にチャートに表示されました。
  • ターミナルを閉じて再起動(7回)(閉じていた時間は3秒~約1.5分):51回のEA起動のうち40回は、それぞれの最後のバーから続行しました。11回はバーの欠落を見つけ(ターミナルが削除したもの。制限事項を参照)、その60秒間待ってから(最終バージョンでは、その間ヘルパーに「Checking the bars after the start」と表示されます)、それぞれの銘柄を再構築しました(それぞれ0.2~1.3秒)。7回の起動のうち5回では、その数分後に、チャートが開かれていない銘柄のバーをターミナルが削除しました。EAは次のチェックでそれを見つけ、銘柄を再構築しました(2回のテストでは、そのチェックの前にテストが終了しました)。
  • 同じカスタム銘柄に対する二つ目のEAは起動しませんでした。ターミナルのすべてのEAが同時に起動する7回のターミナル起動時も同様です。

EAを削除しても、カスタム銘柄とそのチャートは残ります。同じ設定で再び適用すると、それまでのバーがすべてそろっていることを確認してから、最後のバーから続行します(そろっていない場合は、自ら履歴を再構築します)。

入力パラメータ

入力パラメータ 初期値 説明
Chart type Seconds bars Seconds bars, Tick bars, Range bars
Seconds bars: seconds per bar 5 seconds 1、2、3、4、5、6、10、12、15、20または30
Tick bars: ticks per bar 100 1~100,000
Range bars: range of a bar in points 100 ソース銘柄のポイント
Source symbol 空欄 空欄 = EAを適用したチャートの銘柄
Days of real tick history to build 3 0.01~60。カスタム銘柄の構築時に使用します。ブローカーのティック履歴はこれより短い場合があります。新しい値を設定しても既存のカスタム銘柄は再構築されません。再構築するには、次の入力パラメータを一度trueに設定してください
Build the history again at start false falseの場合、チャートの種類、その設定、ソースが同じであれば、最後のバーから続行します
Custom symbol name 空欄 空欄 = 自動。例:EURUSD_S5、EURUSD_T100、EURUSD_R100
Open the custom chart true
Template for the custom chart 空欄 MQL5\Profiles\Templates内のテンプレート。チャートを開くときに適用されます
Show the real time of the bars on the custom chart true 上記のヘルパー
Close the custom chart when the EA is removed false
Tester only: open and close sample positions true 下記を参照

ストラテジーテスター

MetaTrader 5では、ストラテジーテスター内でカスタム銘柄や新しいチャートを使用できません(実測:どちらもエラー4014で拒否されます)。そのためテスター内では、EAはテスターから供給されるティックから、同じコードで同じバーをメモリー上に構築し、ビジュアルモードではテスターチャートの下のサブウィンドウに描画します。実行の終わりに、構築したバーの本数と、すべてのティックがちょうど一本のバーに入っていることを書き出します。ブローカーの実ティックから構築したバーを見るには「Every tick based on real ticks」を使用してください。

ストラテジーテスター内でのみ、EAは短い一連のサンプルポジションの建玉と決済も行います。これは、マーケットではエキスパートアドバイザーが取引を行うことが確認されるためです:

  • 最小取引量、同時に一つのポジションのみ、最大30ポジション
  • 新しいポジションを建てる前に毎回余剰証拠金を確認し、資金が不足している場合はメモを書き出して何も送信しません

サンプルポジションは売買戦略ではなく、その結果は利益について何も示しません。ライブ口座またはデモ口座のチャート上では、EAが注文を送信、変更、決済することは決してありません。

制限事項(ご購入前に必ずお読みください)

  • 時間軸が数えるのはスロットであり、時計の時刻ではありません。上記の「時間軸について」を参照してください。バーの時刻を使うインジケーター(セッション、日足ピボット、時間フィルター)は、カスタムチャート上では実際の時刻ではなくスロットの時刻を参照します。
  • カスタム銘柄の気配値はティック一つ分遅れます。実測:カスタムチャート上のインジケーターやEAが新しいティックで呼び出された時点で、カスタム銘柄のバーとティック履歴にはすでにそのティックが含まれていますが、カスタム銘柄の気配値(気配値表示、SymbolInfoTick、チャート上のBidライン)は、次のティックが追加されるまで一つ前のティックを表示します。MetaTrader 5 ビルド6230で七つの回避策を試しましたが、どれも機能しませんでした。カスタムチャート上のインジケーターやEAは、価格をバーから読み取るようにしてください(最後のバーの終値が最新のティックです)。
  • カスタム銘柄は取引できません。カスタムチャート上で動作するEAは、注文をブローカーの銘柄に対して送信する必要があります。
  • Bidチャートのみ。ブローカーがLast価格で描画する銘柄(取引所の株式や先物)は、パネルにメッセージを表示して拒否されます。
  • 履歴の長さはブローカー次第です。最初の構築ではブローカーのティック履歴をダウンロードします。ブローカーがティック履歴を保持する期間には限りがあります。短いバーの長い履歴は、ターミナルの「Max bars in chart」設定(ツール、オプション、チャート)を超えることがあり、その場合チャートには最新のバーだけが表示されます。EA自身のチェックが読み戻すのはその設定値の半分までなので、設定値が低くても、チェック対象のバーが少なくなるだけです(設定値5,000と約80,000本のバーがある1秒足チャートでテスト:8分間で余分な再構築はありませんでした)。
  • 秒足を収められる期間には限りがあります。スロットは過去に収まっている必要があります。1秒足チャートには開始から約339日分、5秒足チャートには約4.6年分のバーを収める余地があります。余地を使い切ると、EAが自ら履歴を再構築します。
  • カスタムチャートを使っている間は、EAを動かし続けてください。ビルド6230での実測:EAを削除したりターミナルを再起動したりすると、ターミナルがカスタム銘柄の最新部分のバー(最大でスロット一日分、1,440本)を、ティックは残したまま削除することがありました。その場合、EAなしで開いたままのチャートには空白が表示されます。EAが再び起動すると、それを検出して銘柄を再構築します。再起動後、チャートには最大で約一分間このような空白が表示されることがあります。EAはターミナルがバーを読み込むのを最大60秒待ち(その間ヘルパーには「Checking the bars after the start」と表示されます)、まだバーが欠けていれば銘柄を再構築します(テストでは0.2~1.3秒)。テストでは、EAの実行中にも、再起動の数分後にターミナルがバーを削除することがありました。EAはチェック(60秒ごと。三つのテストでは、テスト自体の検証プログラムが空白を確認してから74秒後に修復されました)でそれを検出し、銘柄を再構築しました。チャートが開かれていない銘柄では、そのチェックか次の起動まで空白が残ることがあります。最も多く発生したのは、チャートが開かれていないカスタム銘柄でした。
  • 修復ではカスタム銘柄全体を空にしてから埋め直します。チェックで誤ったバーや欠落したバーが見つかると、EAはカスタム銘柄のティックとバーを削除し、同じ最初のティックから書き直します(テストでは0.2~2.4秒)。その間、カスタムチャート上のインジケーターやEAからは、履歴がいったん消えて再び現れるように見えます。
  • カスタム銘柄一つにつきEAは一つで、EAはそのチャートのEA枠を使用します。取引用EAのチャートではなく、ソース銘柄の空いているチャートに適用してください。
  • カスタム銘柄ではストラテジーテスターを使えません。ビルド6230での実測:テスターはカスタム銘柄のティックを供給しますが、バーは一部しか構築しないか、まったく構築しません(二つのテストで、4,316本のM1バーのうち1,324本と0本)。そのため、バーを必要とするEAはカスタム銘柄ではテストできません。そのようなEAはブローカーの銘柄でテストしてください。
  • テスト環境:
    • MetaTrader 5 ビルド6230のみ、Windows 10、3840 x 2160の画面(288 dpi)
    • リテールCFDブローカーのデモ口座:BTCUSDmとETHUSDmはライブ、金曜日のXAUUSDmとUSTECmのティックを実際のペースでリプレイ(土曜日のテスト)。スクリーンショットにはEURUSDm、XAUUSDm、USTECmの履歴を使用
    • ストラテジーテスター:プラットフォームのデモサーバーのネッティングとヘッジングのデモ口座、EURUSD、GBPUSD、XAUUSD
    • 最長のテストは75分。他のブローカー、リアルマネー口座、MQL5 VPSではテストしていません
  • まずは無料のストラテジーテスター用デモ版でお試しください。デモ版がバーを表示するのはテスターのサブウィンドウ内だけです(上記の「ストラテジーテスター」を参照)。ライブ口座またはデモ口座でカスタムチャートを使うには完全版が必要です。
作者のその他のプロダクト
Repaint Inspectorは、インジケーターがリペイントするかどうかを、謳い文句を信用するのではなく実際に測定します。チャートに適用し、任意のカスタムインジケーターとそのパラメーターリストを指定すると、既に確定したバーについてそのインジケーターのバッファを繰り返し読み直し、動いた値、現れた値、消えた値をすべて数えます。あわせて、それが履歴のどこまで遡ったバーでなお起きているかも記録します。 これは測定ツールです。チャート上では一切注文を送信しません。ストラテジーテスターでは、開始時に最小ロットのポジションを一つ建てて決済します。MQL5 Marketの自動テストが、エキスパートアドバイザが取引操作を行うことを確認するためです。この取引はその旨が操作ログに出力され、測定には含まれず、入力パラメーターで無効にできます。DLLもネットワークアクセスも使用せず、MQL5\Filesに書き出す二つのCSVファイル以外はディスクに何も書き込みません。 このツールが必要な理由:「リペイントしない」はインジケーターの説明によくある主張ですが、確かめるのは困難です。よくある確認方法は、チャートを
FREE
Symbol Spec Auditorは、シンボルの契約仕様のうちポジションサイズと取引コストを左右する部分を、チャート上の一つのパネルにまとめて表示します:ポイント価値、スプレッドコスト、証拠金、スワップ、執行ルール、取引セッション。仕様の生の値は口座通貨での1.00ロットあたりの金額に換算され、ロットサイズを計算するコードを気づかないうちに狂わせるブローカー設定は警告として一覧表示されます。ボタン一つで、気配値表示のすべてのシンボルについて同じ監査をCSVファイルにエクスポートできます。 これはチェック用のツールです。注文は一切出さず、DLLもWebRequestも使用せず、あなたが指示したCSVエクスポート以外のファイルは書き込みません。 このツールが必要な理由:あるブローカーで動くコードが、誰も確認していなかった仕様の細部のせいで、次のブローカーでは誤動作することがよくあります。契約サイズが100 ozではなく1 ozのゴールド、残高とティック値がセント単位のセント口座、価格に近いストップロスを拒否するストップレベル、ポイントと異なるティックサイズ、一日の終わりに削除される未決
FREE
Spread Profile by Hourは、ブローカー自身のティック履歴から、一つのシンボルのスプレッド分布をサーバー時間の一日の各時間帯ごとに作成し、24本のバーとして描画します。バーの塗りつぶし部分はその時間帯のスプレッドの中央値で、明るい色の上部(キャップ)は90パーセンタイルまで伸びています。普段使っているストップの幅を入力すると、各バーに中央値スプレッドがそのストップに占める割合が表示されるため、コストをリスクと同じ単位で把握できます。 これは測定ツールです。注文は一切出さず、DLLもWebRequestも使用せず、あなたが有効にしたCSVエクスポート以外のファイルは書き込みません。 このツールが必要な理由:デイトレードやスキャルピングのルールでは、エッジが残るかどうかを決めるのは、エントリーシグナルではなくスプレッドであることが少なくありません。ターミナルが表示するのは現時点のスプレッドであり、バー履歴はバーごとに一つのスプレッド値しか保持しないため、その時間内に何が起きたかは見えません。同じルールでも、閑散とした時間帯では機能し、日次ロールオーバーやセッション開始時に
FREE
MetaTrader 5用のローカルで動作するトレードコピーツールです。同じWindows PCまたはVPS上のMT5ターミナル間でポジションをコピーし、各コピーのサイズを双方のブローカーの契約仕様(契約サイズ、ティック価値、口座通貨)から算出します。そのため、二つのブローカーでロットの定義が異なっていても、コピーは同じエクスポージャーを持ちます。同じマスターポジションに対して二つ目のコピーを建てることは決してありません。 機能 各ターミナルで、同じEAをチャート一つに適用します: マスター ターミナルでは、入力パラメータModeをMasterに設定します。 各 レシーバー ターミナルでは、入力パラメータModeをReceiverに設定します。 マスターは、保有中のポジション、その銘柄仕様、ハートビートを、共有のCommon\Filesフォルダー内のファイルに書き込みます。各レシーバーはそのファイルを100 msごとに読み込み、自分のポジションをマスターに合わせます: 新規ポジションの建玉 ストップロスとテイクプロフィットの変更 部分決済 決済 サーバー、ネットワーク接続、DLL、We
MetaTrader 5用の口座台帳です。成績をマジックナンバー、銘柄、曜日、時間帯別に分け、価格損益、手数料、スワップ、諸費用を別々の列に表示し、各約定で支払ったスプレッドと、指定した価格に対するスリッページを測定します。合計は更新のたびに口座残高と照合されます。チャート上で取引を行うことは決してありません。 機能 チャート一つに適用します。口座の約定履歴を読み込み、すべてのポジションをその約定から再構築して、結果をパネルに表示します: 純損益、価格損益、手数料、スワップ、諸費用(それぞれ別の列に表示) 各約定のスプレッドコストとスリッページコスト(ターミナル自身のティック履歴から測定) 決済済みの各トレードのMFEとMAE:保有中に価格が有利な方向と不利な方向へそれぞれどこまで動いたか トレード数、勝率、プロフィットファクター、ロット数、ロットあたりの総コスト 入金、出金、クレジット、ボーナス、修正、その他の非取引項目(取引成績とは分けて表示) 約定が追加されると自動で更新されます。計算処理は50,000件と200,000件の約定からなる合成履歴でテストしました。ライブテストに使っ
フィルタ:
レビューなし
レビューに返信