【MQL4】表示中のチャート以外の情報を取得する
void OnTick()
{
//表示中のチャートの通貨ペアの買値
double MyAsk = NormalizeDouble(SymbolInfoDouble(_Symbol,SYMBOL_ASK),Digits);
//ドル円の買値
double USDJPYAsk = NormalizeDouble(SymbolInfoDouble("USDJPY",SYMBOL_ASK),Digits);
//表示中の20期間移動平均
double MyMovingAverage = iMA(_Symbol,PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,0);
//ドル円の20期間移動平均
double USDJPYMovingAverage = iMA("USDJPY",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,0);
// Chart output
Comment(
"My Ask price : " , MyAsk, "\n",
"USDJPY Ask price : " , AUDUSDAsk, "\n",
"My Moving Average : " , MyMovingAverage , "\n",
"USDJPY Moving Average : " , USDJPYMovingAverage , "\n"
);
}
SymbolInfoDouble(通貨ペア,SYMBOL_ASK)で買値を表示します。_Symbolだと表示中のチャートの通貨ペアになります。 売値の場合はSYMBOL_BID
そしてNormalizeDouble()で囲むことで小数点以下の桁数をDigits(表示中のペアの桁)にそろえてます。
SymbolInfoDouble(通貨ペア,SYMBOL_ASK)通貨ペアのところに"USDJPY"など直接書けばそのペアの価格を取得します。""を忘れずにつけてください。
あとはiMA(_Symbol,PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,0);
ですが_Symbolは先ほどと同じで表示中の通貨ペアということになります。PERIOD_M1は1分足でここでは一分足の20期間移動平均を作っていることになります。
ここに0やPERIOD()や_Periodなどと書いたら表示中のチャートの時間足を使うことになります。