Symbol()関数
書式
string Symbol();//対応チャートの通貨ペア名を取得する。引数なし
戻り値(返り値)
現在チャートのシンボル(通貨ペア)の名前を文字列で返す。
※業者によって通貨ペア名の後に文字列があることがあります。
例えば、
選択しているチャートがUSDJPYだった場合
Comment(Symbol()); //USDJPYと表示される //if文での動作 if(Symbol()=="USDJPY"){ //true //こちらのコード実行されます。 }
サンプルコード
//FXDDでそのまま取得する場合(通貨ペア名のみ表示される業者の場合) Comment("シンボル(通貨ペア)は"+Symbol());//選択しているチャートの通貨ペア名を取得する関数Comment() //FXTF最初の6文字のみを切り取って取得する場合(通貨ペア名の後に文字列が表示される業者の場合) Comment("シンボル(通貨ペア)は"+StringSubstr(Symbol(),0,6));//開いていて選択しているチャートの通貨ペア名を取得する
OrderSend(Symbol(),...);//OrderSend()関数などにも使える。
ページリンク:EAで注文を送信するOrderSend()関数の使い方(MQL4)
関連記事一覧:関数StringSubstr(),関数Comment()
サンプルの実行結果
FXDDの場合
通貨ペアはUSDCHF
実行結果:シンボル(通貨ペア)はUSDCHF
※Comment()関数で出力
FXTFの場合
通貨ペアはEURUSD-cd
実行結果:シンボル(通貨ペア)はEURUSD-cd
※Comment()関数で出力
関連記事:Comment()
通貨ペア名の違い
画像上がStringSubstr()を使って最初の6文字だけ切り取って取得。
実行結果:シンボル(通貨ペア)はEURUSD
画像下がそのまま取得した場合。
実行結果:シンボル(通貨ペア)はEURUSD-cd
※Print()関数で出力
ページリンク:変数の中身を出力してくれるPRINT()関数(MQL4)
関連記事一覧:関数OrderSymbol()
if文に入れたときの動作
通貨ペアのあとに文字列がある奴と
通貨ペアのあとに文字列が無い奴をif文に入れた場合
//実行結果はfalse if("EURUSD-cd"=="EURUSD"){ //true //こちら側のコードは実行されない。 }else{ //false //こちら側のコードが実行される。 }
通貨ペアのあとに文字列が無いもの同士をif文に入れた場合
//実行結果はtrue if("EURUSD"=="EURUSD"){ //true //こちら側のコードが実行される。 }else{ //false //こちら側のコードは実行されない。 }
通貨ペアのあとに文字列があるもの同士をif文に入れた場合
//実行結果はtrue if("EURUSD-cd"=="EURUSD-cd"){ //true //こちら側のコードが実行される。 }else{ //false //こちら側のコードは実行されない。 }