MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1065

 

Alexey Viktorov:

ハンドブックをよく読んでください。OBJ_CHANNELは角度とは関係ありません。

了解!

それから、前の質問に戻ります。

X座標とY座標がありますが、ChartXYToTimePriceを 右端からカウントする条件を設定するにはどうしたらよいでしょうか。

 
MakarFX:

了解!

それから、前の質問に戻ります。

X座標とY座標がありますが、ChartXYToTimePriceの条件を右端からカウントするように設定するにはどうしたらよいでしょうか。

ChartXYToTimePriceは、左上 隅から座標を数えます。また、右端からどのように計算しても、必ず左上に変換する必要があります。このタンバリンは何のためにあるのでしょうか?右隅に相対的に配置したいオブジェクトは何ですか? なぜハンドブックを読まないの?例題も解説もすべてあります。

 
Alexey Viktorov:
そんなタンバリンダンスは、何のためにあるのでしょうか?

左隅が忙しい(

アレクセイ・ヴィクトロフ

なぜハンドブックを読まないの?何しろ、例題と解説がすべて揃っているのですから。

例を読んだり見つけたりして、それを元にしたコードになっています。

が、角度を変える例はない(

 
MakarFX:

左隅が忙しい(

例を読んだり見つけたりして、それを元にしたコードになっています。

が、角度を変える例がない(

よく見ていなかったのでしょう。以下、例題と全解説を掲載します。
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Угол привязки
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Угол привязки
  • www.mql5.com
Существует ряд графических объектов, для которых можно задавать угол графика, относительно которого указываются координаты в пикселях. Это следующие типы объектов (в скобках указаны идентификаторы типа объекта): – объекты имеет ширину и высоту. Если указано "только для чтения", то это означает, что значения ширины и высоты вычисляются только...
 
MakarFX:

左隅が忙しい(

例を読んだり見つけたりして、それを元にしたコードになっています。

が、角度を変える例がない(

オブジェクトの初期座標をどの角度から数えても違いはない。この角度が座標の原点となる。オブジェクトの位置は、原点からの座標を計算することで決まります。

 
Alexey Viktorov:
よく見すぎてしまったようです。ここに 例があり、すべての解説があります。

OBJ_CHANNEL 時刻と価格を必要とし、XU ChartXYToTimePrice でしか取得 できない。

アルチョム・トリシキン

最初のオブジェクト座標をどのコーナーからカウントしても違いはない。このコーナーが座標の原点となります。そして、オブジェクトがどこになるかは、原点からの座標を計算することで決まります。

できるのですが、ウィンドウサイズが変わったり、他のパソコンで解像度が違ったりすると、オブジェクトがずれてしまうのです。

 
MakarFX:

OBJ_CHANNEL 時刻と価格を必要とし、XU ChartXYToTimePrice でしか取得 できない。

これは可能ですが、他のコンピュータでウィンドウサイズが変わったり、解像度が違ったりすると、オブジェクトがずれてしまいます。

抽象的な言い方になってしまいますが。画面のスクリーンショットを撮る - そこに何を置いているのか、なぜ問題が見えるのか。何がどこに移っているのか?

 
MakarFX:

OBJ_CHANNEL 時刻と価格を必要とし、XU ChartXYToTimePrice でしか取得 できない。

これは可能ですが、他のコンピュータでウィンドウサイズが変わったり、解像度が違ったりすると、オブジェクトがずれてしまいます。

そして、DPIの決め方をドキュメントで調べ、それを元にグラフウィンドウの幅を決めます。

 
Alexey Viktorov:

そして、DPIの決め方をドキュメントで調べ、それを元にグラフウィンドウの幅を決めます。

正解です!調べてみますね。ありがとうございます。
 
MakarFX:
正解です!調べてみますね。 ありがとうございます。

以下は、ドキュメントにある例です。

//--- создаём кнопку шириной 1.5 дюйма на экране 
int screen_dpi = TerminalInfoInteger(TERMINAL_SCREEN_DPI); // получим DPI монитора пользователя 
int base_width = 144;                                      // базовая ширина в экранных точках для стандартных мониторов c DPI=96 
int width      = (button_width * screen_dpi) / 96;         // вычислим ширину кнопки для монитора пользователя (с учётом его DPI) 
... 
  
//--- вычисление коэффициента масштабирования в процентах 
int scale_factor=(TerminalInfoInteger(TERMINAL_SCREEN_DPI) * 100) / 96; 
//--- использование коэффициента масштабирования 
width=(base_width * scale_factor) / 100;