記事"MQL5にて独自のグラフィカルパネルを作成する"についてのディスカッション

 

新しい記事 MQL5にて独自のグラフィカルパネルを作成する はパブリッシュされました:

MQL5プログラムの脂溶性は、たくさんの機能と、洗練されたGUIによって決定されます。ビジュアルによる理解は時折早くて安定した処理よりも重要なことがあります。こちらで標準ライブラリクラスを基盤にディスプレイパネルを毒で作成するためのステップごとの手順を紹介します。

ATTENTION: Video should be reuploaded

作者: MetaQuotes Software Corp.

 

現在のところ、ライブラリはチャート上の1つのパネル用にカスタマイズされています。

2つのパネルを追加しようとすると、イベントの捕捉が不正確になります - 要素のIDが同じで、親のIDがチェックされません。

それをテストするために、デモのControls.mq5を取り出し、パネルを複製してみたところ、すべてのイベントが両方のパネルに複製されました。

ファイル:
 
表示パネルを埋める」項目で、
CAppDialog::Create(chart,name,subwin,x1,y1,x2,y2))
の代わりに
ObjCAppDialog.Create(chart,name,subwin,x1,y1,x2,y2))
ようなものを使うことはできますか?
 
Rorschach:
表示パネルを埋める "という項目で、" 表示パネルを埋める "の代わりに"表示パネルを埋める "を使うことはできますか?

こんにちは、多分あなたは何をすべきか私に伝えることができます。

あなたの例ekspert コントロール。

別の期間に切り替えると、エキスパートがアンロードさ れ、OnDeinit()でExtDialog.Destroy(reason);を削除しようとしました。

他の期間に切り替えてもダイアログウィンドウが動作し続けるようにするには、どうすればよいのか教えてください。

Документация по MQL5: Программы MQL5 / Выполнение программ
Документация по MQL5: Программы MQL5 / Выполнение программ
  • www.mql5.com
Программы MQL5 / Выполнение программ - Документация по MQL5
 
vdv2001:

こんにちは。

あなたの例はExpert Advisor Controlsです。

OnDeinit()でExtDialog.Destroy(reason);を削除してみました。

他の期間に切り替えたときにダイアログウィンドウが動作し続けるようにするにはどうすればよいのか教えてください。

ご指摘ありがとうございました。エラーは修正しました。次のビルドで更新します。
 

IMHOでは、手作業でライブラリを作成する方が、どこでどのように使用するかを知ることができ、何か問題があれば修正しやすいと思います。

標準クラスを使わずにパネルを書く例:VirtualTradePad PositionsStyle

 

MQL5ウィザードを 使用してクラスを構築すると、なぜコンパイルできないコードが生成されるのか不思議に思うかもしれない:


記事にあるように、このコード行を手動で追加する必要があるのだが、ノンコーダー向けのウィザードにしては少し奇妙だ。

#include <Controls\Dialog.mqh>

また:

This article will demonstrate how easy it is to create your own display panels in a separate chart subwindow using the Standard Library classes.

これは冗談だと思います。

MQL5 Wizard: Creating Expert Advisors without Programming
  • 2011.01.11
  • MetaQuotes Software Corp.
  • www.mql5.com
Do you want to try out a trading strategy while wasting no time for programming? In MQL5 Wizard you can simply select the type of trading signals, add modules of trailing positions and money management - and your work is done! Create your own implementations of modules or order them via the Jobs service - and combine your new modules with existing ones.
 

「このウィザードはノンコーダー向けではないと思います。

このウィザードが非コーダー向けだとは思わない。

初心者プログラマーが何かを作るために必要な第一歩を踏み出すきっかけになるかもしれない。

MQL5フレームワークには多くの可能性があり、その一部はウィザードの作成で発見できるかもしれません。

しかし、この例のような複雑なものを作るには、プログラミングの基本が必要だと思います。

しかし、ベースクラスから派生させるのであれば、明らかなものを含める必要があることには同意しますが...。

 
ugo58:

「このウィザードはノンコーダー向け ではないと思います。

このウィザードが非コーダー向けだとは思わない。

初心者プログラマーが何かを作るために必要な第一歩を踏み出すきっかけになるかもしれない。

MQL5フレームワークには多くの可能性があり、その一部はウィザードの作成で発見できるかもしれません。

しかし、この例のような複雑なものを作るには、プログラミングの基礎が必ず必要になると思います。

しかし、基本クラスから派生するのであれば、明らかなものを含める必要があるのは同意します。

でも、MQL5 Wizardは まずノンコーダー向けにデザインされたものだと思っていました。いずれにせよ、ウィザードで作成したコードをコンパイルするには、手作業でコードを追加しなければならないので、この問題はバグのようなものだ。

MQL5 Wizard: Creating Expert Advisors without Programming
  • 2011.01.11
  • MetaQuotes Software Corp.
  • www.mql5.com
Do you want to try out a trading strategy while wasting no time for programming? In MQL5 Wizard you can simply select the type of trading signals, add modules of trailing positions and money management - and your work is done! Create your own implementations of modules or order them via the Jobs service - and combine your new modules with existing ones.
 

ユーザーGUI(パネル)のライブラリには、私の意見ではイベント・モデルがうまくコピーされていないことに気づいた:

void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
{
    ...
}

まず、すべてのイベントがint、long、double、stringに対応する変数のセットを持っているわけではありません。イベントを記述する変数が多い場合もあれば、少ない場合もあり、提案された基本型と一致しない場合もある。実際、int→bool、string→int、double→intといった変換が常に行われている。そして、手続き型プログラミングの観点からは、実質的にできることは何もない(仮定のケースごとに1,000,000のオーバーロード関数を作成することはない)。

しかし、OnEventの主な問題は、このイベント・ハンドラがチャートから受け取ったイベントを処理するためのものであるのに対し、イベントは新しいポジションを開いたり、気配値を変更したりといった何でもあり得るということです。一般的に、OnEvent(...)は普遍的なイベント・ハンドラには見えません。おそらく開発者は、既存のCWndをベースに独自のイベントを処理することに成功したのだろうが、パネルの標準ライブラリを使用する ことは、私にとってはまだ問題がある。

Как использовать торговые классы Стандартной библиотеки при написании советника
Как использовать торговые классы Стандартной библиотеки при написании советника
  • 2010.11.10
  • Samuel
  • www.mql5.com
В статье рассказывается о том, как использовать основной функционал торговых классов Стандартной библиотеки при написании советников, в которых применяется открытие, закрытие и модификация позиции, проверка свободной маржи перед размещением торговых ордеров, размещение и удаление отложенных ордеров. Показано, как использовать торговые классы для получения свойств ордеров и сделок.
 

ありがとう、勉強しました、便利です!ちょっとだけ:VSのようにフォームのコンストラクタでパネルを組み立てられるように、コンストラクタのようなものを作る予定はありますか? すべてを手で数えるのはかなり不便なので、プロフェッショナリズムの表れかもしれませんが、時間がかかります))。

マクロは明らかにやりすぎだ。