MetaEditorヘルプ

コードのデバッグ

コードのデバッグ

MetaEditorには、プログラムの実行ステップ (個々の関数ごと) をチェックできる組み込みデバッガがあります。 コードにブレークポイントを配置します。 これらはプログラムの実行を一時ストップする場所です。 次に、通常のチャートまたはストラテジーテスターでプログラムを起動します。 プログラムがブレークポイントに達すると、すぐに一時ストップされます。 これより、計算された変数の値を確認し、実行アルゴリズムをチェックして、プログラムの実行ステップを続行できます。

プリセット

デバッグの前に、一般的なパラメータを設定MetaEditorの設定をしてください アプリケーションのデバッグが発生するシンボルとチャートの期間を指定できます。 このようなチャートは、デバッグを開始するたびに一時的に作成され、完了後すぐに削除されます。

トレードプラットフォームの/profiles/templates フォルダーにあるdebug.tpl テンプレートは、デバッグチャートに適用されます。

ブレイクポイント

ブレークポイントは、プログラムの実行が指定された文字列に到達したときにトリガーされるコマンドです。 このコマンドは、その文字列の実行をストップします。 ブレークポイントは、指定されたコード領域でプログラムの動作を調べることができます: 変数の値と関数のスタックを表示します。 その後、デバッグプロセスを再開または終了することができます。

デバッグを開始する前に、プログラムコードに少なくとも1つのブレークポイントを設定します。 これを行うには、コード行の左側にある灰色のフィールドをダブルクリックします。 また、行にカーソルを置くことができますし、クリックも可能です。ブレークポイントの切り替えブレークポイントの切り替えには、Debugメニューまたは F9 キーを押します。 ブレークポイントは同じ方法で無効になります。

有効なブレークポイント

プログラムの実行がストップしたポイントにジャンプする必要がある場合は、[コールスタック表示] ウィンドウで関数をダブルクリックします。 また、ウィンドウのコンテキストメニューを使用して、現在デバッグされているプログラムのすべてのブレークポイントの一覧を開くことができます。

ブレークポイントに行く

任意のブレークポイントにジャンプするには、ダブルクリックします。

デバッグの起動

デバッグを実行するには、メインプログラムファイルまたはプロジェクトを開きます。 デバッグは、次の2つのモードで実行できます。

  • 実データ。 デバッグを開始するには、リアルデータでのデバッグの開始/再開[実際のデータコマンドを開始する]には、Debugメニューまたは F5 キーを押します。 このモードでは、デバッグ対象のプログラムは、トレーディングプラットフォームの特別なチャートで実行されます。 デバッグは、サーバーから届く価格データを使用して、実際の環境で実行されます。
  • ヒストリー上。 デバッグを開始するには、履歴データの開始[履歴データの開始]には、Debugメニューまたは Ctrl + F5 キーを押します。 デバッグは、ストラテジーテスターのビジュアルテストモードで実行されます。 このモードでは、特定の相場の状況を待たずにヒストリーの任意の興味深いセクションでプログラムの実行を確認することができます。

デバッグモードでのプログラムの実行がブレークポイントに達すると、すぐに一時ストップされます。 実行が一時ストップされている行には、トリガブレークポイントアイコン [デバッグ ] タブも [ツールボックス] ウィンドウに表示されます。 左の部分には、関数の呼び出し履歴が表示されます。

デバッグ開始後のブレークポイントのトリガー

観測式

デバッグ中に、現在のプログラム実行ステップでさまざまな式 (変数) の値を追跡できます。 [ツールボックス] ウィンドウの [デバッグ] タブの右側の部分には、適切な結果が表示されます。 式の値を追跡するには、観察されたものに追加します。

  • デバッグ中に、ソースコード内の式にカーソルを置き、ウォッチの追加コンテキストメニューでウォッチを追加します。
  • 利用できるオプションを一覧にするには、[追加][デバッグ] タブの右の部分のコンテキストメニューに追加します。 新しく登場した行に式名を入力します。
  • 追跡対象の式の名前を変更するには、それをダブルクリックします。

スタックと式の値の表示

[式の観察] ウィンドウでは、シンプルな数学的計算 (加算、減算、乗算、除算) を実行したり、特定の配列ポイントで値を表示したりすることができます (たとえば、[3] [4] エントリが配列名である場合)。3と4は、その次元の位置です。 観察された式にオブジェクトを追加する場合、最後に完全なストップを指定するか、Ctrl + Space キーをクリックして、メンバのリストを表示できます。

オブジェクトメンバの挿入

デフォルトでは、整数は10進数形式の観測ウィンドウに表示されます。 値をバイナリまたは16進数形式で表示するには、[式] フィールドにコンマ区切りの b または x 修飾子を指定します。

バイナリおよび16進数形式での式の表示

コールスタックの表示

サブプログラム (ネストされた関数) からプログラムに制御を返すためのデータ (メインイベントハンドラの OnTick など) は、コールスタックで指定します。 スタックを使用すると、トレーディングプラットフォームでイベント発生のシーケンス全体を追跡し、特定の関数を呼び出すことができます。

各関数について、次のデータが表示されます。

  • 関数はファイル名から呼び出されます。
  • 関数名
  • 関数が呼び出されるファイル内の行番号。

順番にデバッグ

Debugメニューまたは標準ツールバーコマンドは、コールスタックを表示する関数を備えたステップバイステップのデバッグに使用されます。

  • ステップ Step Into-呼び出された関数にアクセスするプログラムの実行の1つのステップを移動します。 F11 キーを押すと、同じ操作が実行されます。
  • ステップオーバー Step Over—呼び出された関数にアクセスせずに、プログラムの実行の1つのステップを移動します。 F10 キーを押すと、同じ操作が実行されます。
  • ステップアウト Step Out—1つのレベルより高いプログラムの単一のステップを実行します。 shift + F11 キーを押すと、同じ操作が実行されます。

ステップバイステップのデバッグコマンドは、プログラムがデバッグモードで一時ストップした後でのみ使用できます。

  • ブレークポイントがトリガーされた後。
  • プログラムを手動で一時ストップした後一時停止[一時ストップ] コマンド[デバッグ] メニューまたは Break を押します。

トレーディングプラットフォームでイベントが発生し続けます プログラムがブレークポイントにある場合 発生したイベントはすべてキューに置かれ、現在のイベントハンドラがコードを終了すると、エキスパートを使用した処理が継続されます。

デバッグの一時ストップ、再開、終了

実行がブレークポイントがインストールされた文字列に達するとすぐに、デバッグ中にプログラムが自動的にストップします。 デバッグは手動でも管理できます。

  • デバッグ中に実行を一時ストップ
    プログラムの実行は、手動で一時ストップできます一時停止[一時ストップ] コマンド[デバッグ] メニューまたは Break を押します。 一時ストップした後、ステップバイステップのデバッグコマンドを適用できます。
  • 実行
    の再開一時ストップ後にプログラムの実行を再開する 再開再開[デバッグ] メニューF5 キーを押します。
  • デバッグの完了
    デバッグをストップする終了[ストップ][デバッグ] メニューShift + F5 キーを押します。 このプログラムは特別なチャートから削除され、デバッグに起動され、チャート自体は閉じられます。
  • ソース MQ4、MQ5、MQH ファイルがなければデバッグは不可能です。
  • デバッグプロセス中に取得した実行可能な EX4/EX5 ファイルを配布することはお勧めしません。

ヒストリー上でデバッグ

リアルタイムの価格データとは別に、トレーディングロボットやテクニカルインジケーターのデバッグもヒストリー上で行うことができます。 任意のプログラムは、リアルタイムで特定のトレードイベントを待たずに必要な履歴データでテストすることができます。

履歴データのデバッグは、ストラテジーテスターのビジュアルテストモードで実行されます。 アプリケーションは、テスターのティックのエミュレートされたシーケンスまたは累積履歴のティック (ブローカーから受信) に基づいて、チャート上で実行されます。

履歴のデバッグを開始するには、MetaEditorの設定でテストパラメータを設定します.

履歴のデバッグの構成

コード内のブレークポイントを設定し、ヒストリカル価格を使用してデバッグを開始します。

履歴のデバッグの起動

ビジュアルテストとデバッグプロセスが開始されます。

ヒストリー上でデバッグ