【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などと書いたら表示中のチャートの時間足を使うことになります。

この記事が気に入ったらサポートをしてみませんか?