初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 966

 
kopeyka2:


それよりも、何を実現したいのかをはっきりさせることです。おそらく完全な例をお見せすることになると思います。

 
jdjahfkahjf:

これはどういうことでしょうか?


ヘルプ:最適化モード」をお読みください。

 

教えてください。Expert Advisorの再初期化(ChartSetSymbolPeriod()実行時など)はどのように行うのですか?

再初期化は、実際には関数内のローカル変数にのみ関係すると理解してよいでしょうか。

また、グローバル 変数のルールはどうなっているのでしょうか?

私の観察によると、グローバル変数はOnDeinit - OnInitを通過した後に値を継承します。

そうあるべきなのでしょうか?

 
User_mt5:

教えてください。Expert Advisorの再初期化(ChartSetSymbolPeriod()の実行時など)はどのように行うのですか?

再初期化は、実際には関数内のローカル変数にのみ関係すると理解してよいでしょうか。

また、グローバル 変数のルールはどうなっているのでしょうか?

私の観察によると、グローバル変数はOnDeinit - OnInitを通過した後に値を継承します。

そうあるべきなのでしょうか?

Инициализация глобальных переменных программы и другие полезные знания.
Инициализация глобальных переменных программы и другие полезные знания.
  • 2016.11.29
  • www.mql5.com
Встал на форуме недавно вопрос по поводу верной/неверной инициализации глобальных переменных в программах...
 
Artyom Trishkin:

ありがとうございます。

このmqlの厄介なところは、直感的に予想がつかないことです。

- ゆうめいろくはない

- また、指標と専門家の違いの問題でもない。

(最後のSDとのやり取りのコピーもリンク先の上記の議論に大変役立ちました、ありがとうございます)

 
どなたか、ターミナルでウィンドウをプログラム的に公開する方法を教えてください。(幅、高さ、スナップ)
 
User_mt5:
どなたか、プログラムでターミナルにウィンドウを設定する方法を教えてください。(幅、高さ、位置)です。

ウィンドウをターミナルから切り離してから試してみてください(私自身はまだこれらのプロパティを設定していません)。

MQL5:ターミナルのメインウィンドウにチャートをバインド/デタッチし、その位置を制御するための新しいプロパティを追加しました。

ENUM_CHART_PROPERTY_INTEGER列挙に新しい プロパティを追加 しました。

  • CHART_IS_DOCKED - チャートウィンドウが固定されています。falseに設定すると、チャートをターミナルの外にドラッグすることができます。
  • CHART_FLOAT_LEFT - 切り離されたグラフの仮想画面に対する左座標です。
  • CHART_FLOAT_TOP - 仮想画面に対するチャートの上座標です。
  • CHART_FLOAT_RIGHT - 切り離されたチャートの仮想画面に対する右座標です。
  • CHART_FLOAT_BOTTOM - 切り離されたチャートの仮想画面に対する下側の座標です。


ENUM_TERMINAL_INFO_INTEGER列挙に追加さ れました。

  • TERMINAL_SCREEN_LEFT - 仮想スクリーンの左座標です。仮想画面は、すべてのモニターをカバーする長方形です。システム内に2台のモニターがあり、その順番が右から左の場合、仮想画面の左座標は2台のモニターの境界線になることがあります。
  • TERMINAL_SCREEN_TOP - 仮想スクリーンの上端座標です。
  • TERMINAL_SCREEN_WIDTH - 端末の幅です。
  • TERMINAL_SCREEN_HEIGHT - 端末の高さです。
  • TERMINAL_LEFT - 仮想画面に対する端末の左座標です。
  • TERMINAL_TOP - 仮想画面に対する端末の上端座標です。
  • TERMINAL_RIGHT - 仮想画面に対する端末の右座標です。
  • TERMINAL_BOTTOM - 仮想画面に対する端末の底面座標です。
 
Vladimir Karputov:

ウィンドウをターミナルから切り離してから試してみてください(個人的にはまだこれらのプロパティを設定していません)。

ありがとうございます。

試してみました。まあまあの動作です(特にウィンドウは、端末を最小化すると消えるが、画面を広げると前に最小化したものがそのサイズに開き、その度に再度最小化する必要があり、迫りくるものがない)。

しかし、それだけではありません。グラフを切り離す 必要はなく、例えばテッセレーションなど、自分の好きなようにすればいいんです。MT5ではそのようなものはないようですが・・・。

(一般的なアイデアは、多通貨のExpert Advisorで、あらかじめ定義されたシンボルで取引を表示する必要があります。
注文とポジションが開いているすべてのチャートを開くボタンがあります。
しかし、ウィンドウは制御できないサイズで開き、私は画面上でそれらを手動で配置する必要があります。
そして、怠惰な私は私の知的に達成できないプログラムにそれをやってほしいです:)

 
User_mt5:

ありがとうございます。

試してみました。まあまあの動作です(特に、ウィンドウを最小化し、端末を最小化すると消えるが、画面を広げると前に最小化したものがそのサイズに開き、その度に最小化し直して迫りこないようにする)。

しかし、それだけではありません。グラフを切り離す 必要はなく、適当にテッセレーションとかすればいいんです。MT5ではそのようなことはないようです。

(一般的なアイデアは、多通貨のExpert Advisorで、あらかじめ定義されたシンボルで取引を表示する必要があります。
開いた注文とポジションですべてのチャートを開くボタンがあります。
しかし、ウィンドウは制御できないほど大きく開き、私は画面上でそれらを手動で配置する必要があります。
そして私は怠惰で、私の知的に達成できないプログラムにそれをさせたい:).

WinAPIを使うのはどうでしょうか?特に、MQL5でサポートされるようになった

MQL5:標準ライブラリにWinAPI関数のサポートが追加されました。MQL5のプログラムでOSの機能を利用するために、ライブラリのインポートや関数シグネチャの記述を手作業で行う必要がなくなりました。MQL5IncludeWinAPI ディレクトリにあるヘッダーファイルで十分です。

WinAPI関数は、目的に応じて別々のファイルにまとめられています。

  • libloaderapi.mqh - リソースハンドリング
  • memoryapi.mqh - メモリハンドリング
  • processenv.mqh - 環境の処理
  • processthreadsapi.mqh - プロセスを操作する
  • securitybaseapi.mqh - OSのセキュリティシステムで動作する。
  • sysinfoapi.mqh - システム情報を取得する
  • winbase.mqh - 一般関数
  • windef.mqh - 定数、構造体、列挙型。
  • wingdi.mqh - グラフィカルなオブジェクトを操作する。
  • winnt.mqh - 例外処理
  • winreg.mqh - レジストリ操作
  • winuser.mqh - ウィンドウとインターフェイスの制御
  • errhandlingapi.mqh - エラー処理
  • fileapi.mqh - ファイルハンドリング
  • handleapi.mqh - ハンドルを操作する
  • winapi.mqh - すべての関数の接続 (WinAPIヘッダファイル)


バインディングは64bitアーキテクチャでのみ動作します。

 
Vladimir Karputov:

WinAPIを使うのはどうでしょうか?

そうですね。しかし、私の専門はここまでです。

mql5が「賢いから」「美しいから」のどちらなのか、確かなものがあればいいと思います。私はスマートとは程遠い。
APIを使うには、説明と例が必要です。それがなければ、図書館の金山は私にとって未使用のままです。
- 私は、何千行ものコメントされていないコードに目を通して、何か役に立つことを見つけようとすることはできませんし、するつもりもありません。

理由: