最大および最小の可視引用符 - ページ 4

 
ユーザーはграфики с отступами от правого края. Сколько баров отображается на таком графике ? ピリオド、履歴、スクロール、その他全てから独立した、純粋な幾何学定数を使用します。
考えてみると?
チャートができるだけ右にスクロールされ、その後インデントが見え、チャート上に例えば100本のバーがあるとします。
しかし、チャートを左にスクロールして インデントすると、100+インデントに収まるだけの数のバーが表示されます。
 
チャートができるだけ右にスクロールされ、その後インデントが見え、チャート上に例えば100本のバーがあるとします。<br/ translate="no"> しかし、チャートを左にスクロールしてインデントすると、100+インデントが許すだけの数のバーが存在することになります。


手でチャートを巻き戻すのは面白くないので、 。


どのシステム関数とライブラリを接続する必要があるか
- 現在のチャートの縦と横のサイズをピクセル単位で取得

1. user32.dll の GetClientRect


私は*.dllをインポートした経験が全くありません。GetClientRect の記述を発見しました。


GetClientRect関数は、ウィンドウの作業領域の座標を取得します。ワーク座標は、ワークスペースの左上と右下の角を定義します。ワーク座標はウィンドウのワークスペースの左上隅からの相対座標なので、左上隅の座標は(0,0)となります。
Syntax
BOOL GetClientRect
(
HWND hWnd, // ウィンドウディスクリプタ
LPRECT lpRect // ワーク座標構造体のアドレス
);
Parameters
hWnd
ワーク座標を返すウィンドウを特定する。
lpRect
作業座標を受け持つ RECT 構造体を示す。左側と上側の要素はnullである。右と下の要素にはウィンドウの幅と高さが含まれます。
戻り値
関数が正常に終了した場合、戻り値は 0 以外となる。この関数が失敗した場合、戻り値は0である。拡張エラーデータを取得するには、GetLastError を呼び出します。


他の資料では、この機能は無効であると記述されています。何を信じればいいのか?

接続時に#import "user32.dll "を指定する必要がありますか?

ある資料によると、RECT 構造体は winuser.h に記述されており、他のものは windef.h に記述されているそうです。私のマシンには、これらのファイルは存在しません。

#include <winuser.h> または #include <windef.h> ?

hWndウィンドウの識別子には何を指定すればよいのでしょうか?

lpRect構造体から必要なパラメータを取得する方法は?MQL4は複雑なデータ型(構造体)をサポートしていません。




- 現在のチャートの見かけ上の最大値と最小値を取得する;

たぶん、MQL4言語を適切な関数で補完するのが理にかなっているのでは?




|------------------------------------------------| <-1.8595
|................................................| |................................................| |.............--- High ........................| |................................................| |................................................| |................................................| |................................................| |................................................| |................................................| |............................--- Low..........| |................................................| |................................................| |----
 
開発者の皆様へ

私の質問に答えてください。
 
プログラミングに関する問題は、MQL4.COMmunityの専門フォーラムで議論されます。

サイト内には、多くの記事やプログラム集があります。遠慮なくお読みください。特に、最小引用符と最大引用符の問題については、「MQL4:インターセプト」 こちらで解説しています。

から引用します。
===
ウィンドウの大きさがピクセル単位でわかっていれば、BarsPerWindow関数やFirstVisibleBar関数を簡単に利用することができます。バーナンバーを把握するのは問題ない。
価格調整でより複雑になります。目盛りが自動の場合は、上下の最大値・最小値の差の5%を加算して計算すればよい。目盛りが固定されている場合、上限と下限の情報がないため計算できない。
===
 
<br / translate="no">引用します。
===
ウィンドウの大きさをピクセル単位で知っていれば、BarsPerWindow関数やFirstVisibleBar関数を簡単に使うことができます。バーナンバーを把握するのは問題ない。
価格調整でより複雑になります。目盛りが自動の場合は、上下の最大値・最小値の差の5%を加算して計算すればよい。目盛りが固定されている場合、上限と下限の情報がないため計算できない。
===


実際の例:EURUSD, M1
高値1.2613 最大可視値1.2620 デルタ0.0007
安値1.2602 安値1.2600 デルタ0.0002 可視値

5%はどこ?

MQL4.COMフォーラムでGetClientRectを検索すると、2つのリファレンスが表示されます。 具体的な回答や推奨事項はありません。
 
<br/> MQL4.COMmunity フォーラムで GetClientRect を検索すると、2 つのリファレンスが見つかります。具体的な回答や推奨事項はありません。

だから、質問するんですね。そのための専門的なフォーラムにお誘いしたのです。それに、自分で引用しておいてなんですが。"価格調整でより複雑に "ということですね。つまり、この質問には一義的な答えがないということだ。ちなみに5%は価格ではなく、最高値と


最低 値の間の画素数です。
 
高値と安値だけがまだ利用可能です。 上記の例では、テキストオブジェクトはチャート領域の50%にしか表示できません。 これは正常なのか?
 
<br / translate="no">そこであなたは質問をします。そのための専門的なフォーラムにお誘いしたのです。
それに、自分で引用しておいてなんですが。"価格調整でより複雑に "ということですね。つまり、この質問には一義的な答えがないということだ。

ちなみに5%は価格ではなく、最高値と最低値の間の画素数です。


アドバイスに従い、MQL4.COMのフォーラムに質問を投稿しました。 反応もゼロで希望が持てない。 よろしくお願いします。
 
開発者の皆様へ

user32.dllのGetClientRect関数で、現在のチャートの縦と横のサイズをピクセル単位で取得したいのですが、ご教授ください。

機能の説明は上記の通りです。

接続するには、#import "user32.dll "を指定します。

ウィンドウhWndの識別子として,関数WindowHandle(...)が返す値を示す.

MQL4が複雑なデータ型(構造体)をサポートしていない場合、lpRect構造体から必要なパラメータを取得するにはどうすればよいですか?
 
開発者の皆様へ

1ヶ月以上、私の問題を解決するために助けを求めていますが、うまくいきません。

1〜2時間後に返信が来る投稿もあれば、あからさまに長い間無視される投稿もあります。 なぜ?