目次
チャートのシンボル名を取得したい
FX のチャートを表示できるアプリケーション、 MT4 ( Metatarder 4 )でチャートのシンボル名、通貨ペア名?を取得したいことがあったので、 EA のテストをしてみました。「USDJPY」「AUDJPY」などのシンボル名を文字列で取得出来ればと思います。
ChartSymbol 関数を使用
チャートのシンボル名を取得するには、 ChartSymbol 関数を使用すれば良いようなので、以下のソースコードを書いてみました。 Print 関数で MT4 のターミナルに出力される予定です。
003816.mq4 のソースコード:
int OnInit(){ Print( ChartSymbol( 0 ) ); // 0 は現在のチャートの...という意味になるようです。 Print 関数で MT4 のターミナルに出力してみます。 return(INIT_SUCCEEDED); //OnInit() の中に最初から入っていた一文です。試しに削除してみるとエラーが発生したので、元に戻しました。 }
「USDJPY,H1」のチャートで上記の EA( 003816.mq4 )を実行してみたいと思います。「USDJPY」を取得することが出来れば成功だと思います。試してみます。

EA を実行してみると、以下の内容が MT4 のターミナルに出力されました。 2 行目に「USDJPY」と出力されています。チャートのシンボル名の取得に成功したようです。
003816 USDJPY,H1: initialized
003816 USDJPY,H1: USDJPY //USDJPY が取得されている。
Expert 003816 USDJPY,H1: loaded successfully

AUDJPY のチャートで実行
もう一回テストしてみます。今度は、同じ EA を「AUDJPY,H1」のチャートで実行してみたいと思います。

実行した結果、以下のようにターミナルに出力されました。 2 行目に「AUDJPY」が出力されています。成功したようです。

参考情報
ChartSymbol 関数のマニュアルは、 MQL4 Reference > Chart Operations の中にありました。
Print 関数のマニュアルは、 MQL4 Reference > Common Functions の中にありました。
あとがき
チャートのシンボル名を取得することが出来れば、シンボル名を含めた名前でチャートのテンプレートを保存したり、メールで何かの通知をする時に、どの通貨ペアのチャートから発信されたのかを記載したりと、色々と使用出来そうですね。
初の MT4 関係の投稿になりました。間違ってないと良いですが。
以上、閲覧ありがとうございました。
- [ Amazon.co.jp アソシエイト ] MT5 関係の本
- https://amzn.to/3H8hvsU