ChartTimePriceToXY

チャートの座標を時間/価格表現からX とYの座標に変換します。

bool  ChartTimePriceToXY(
  long          chart_id,    // チャート識別子
  int            sub_window,   // サブウィンドウ番号
  datetime      time,         // チャートの時間
  double        price,       // チャートの価格
  int&          x,           // X 座標は時間
  int&          y           // Y 座標は価格
  );

パラメータ

chart_id

[in]  チャート識別子。( 0 は現在のチャート)

sub_window

[in]  チャートサブウィンドウの番号( 0 はメインチャートウィンドウ)

time

[in]  X 軸方向のピクセルの値が受け取られるチャートの時間値。原点はメインチャートウィンドウの左上隅にあります。

価格

[in]  Y 軸方向のピクセルの値が受け取られるチャートの価格値。原点はメインチャートウィンドウの左上隅にあります。

x

[out]  時間からXへの変換が受け取られる変数

y

[out] 価格からYへの変換が受け取られる変数

戻り値

成功の場合は true、それ以外の場合は false 。エラー情報を取得するには、GetLastError() 関数が呼ばれます。

例:

#define   SYMBOL   "GBPUSD"
#define   PERIOD   PERIOD_H1
 
//+------------------------------------------------------------------+
//| スクリプトプログラム開始関数                                              |
//+------------------------------------------------------------------+
void OnStart()
 {
//--- 現在のチャートID、銘柄、期間を取得する
  long           chart_id= ChartID();
  string         symbol  = Symbol();
  ENUM_TIMEFRAMES period  = Period();
 
//--- 現在のチャートの銘柄と期間を SYMBOL と PERIOD で設定されたものに置き換えたことを操作ログ報告する
  PrintFormat("Change the %s symbol and the %s period of the chart %I64u to %s %s",
              symbol, TimeframeDescrioption(period), chart_id, SYMBOL, TimeframeDescrioption(PERIOD));
             
//--- チャートの銘柄と期間を変更する
  ChartSetSymbolPeriod(chart_id, SYMBOL, PERIOD);
  /*
   結果:
  Change the EURUSD symbol and the M1 period of the chart 133246248352168440 to GBPUSD H1
  */
 }
//+------------------------------------------------------------------+
//| チャートの期間の説明を返す                                              |
//+------------------------------------------------------------------+
string TimeframeDescrioption(const ENUM_TIMEFRAMES timeframe)
 {
  return(StringSubstr(EnumToString(timeframe), 7));
 }

参照

ChartXYToTimePrice()