(‘both’, ‘MQL4 / MQL5 両対応’)チャートの操作
ChartTimePriceToXY時刻と価格を画面上の座標に変える
チャート上の「いつ・いくら」という位置を、画面のピクセル座標(X, Y)に変換する。未来の時刻に文字を置きたいときなど、OBJ_LABELで代用するために使う。
1書式
bool ChartTimePriceToXY(
long chart_id,
int sub_window,
datetime time, double price,
int &x, int &y // 結果を受け取る(参照渡し)
);
書式はMQL4・MQL5で同じ。
2引数
| 引数 | 内容 |
|---|---|
| chart_id / sub_window | 対象のチャートとサブウィンドウ |
| time / price | 変換したい「いつ・いくら」 |
| x / y | 結果の画面座標を受け取る変数 |
3戻り値
成功でtrue。
4使用例
int x, y; ChartTimePriceToXY(0, 0, TimeCurrent() + 3600, Bid, x, y); ObjectCreate(0, "future_label", OBJ_LABEL, 0, 0, 0); ObjectSetInteger(0, "future_label", OBJPROP_XDISTANCE, x); ObjectSetInteger(0, "future_label", OBJPROP_YDISTANCE, y);
MetaEditorでコンパイル0エラー・0警告を確認済み。
6よくある罠
⚠ 実務で踏んだもの
- 未来の時刻に置いた通常の描画オブジェクト(線・矢印)は、チャートの右端より先だと見えないことがある。この関数で画面座標に変換し、
OBJ_LABEL(画面固定の文字)として置くと、右端を越えた位置にも表示できる。