記事"グラフィカルインタフェ-スを備えたエキスパ-トアドバイザ:パネルの作成(第1部)"についてのディスカッション

 

新しい記事 グラフィカルインタフェ-スを備えたエキスパ-トアドバイザ:パネルの作成(第1部) はパブリッシュされました:

多くのトレーダーが依然として手作業を好むという事実にもかかわらず、ここではルーティンで行う作業の自動化を完全に避けることはできないでしょう。この記事では、手動取引のためのマルチシンボルシグナルエキスパートアドバイザーの作成例を示します。

シンボルでデータを視覚化は、CStandardChart型要素が行います。デフォルトでは、毎日の時間枠にEURUSDチャートが表示されます。ここには以下の要素があります。

  • 水平スクロール。
  • 自動幅調整。
  • 自動高さ調整。
  • 主要素の右端からインデント。
  • 主要素の下端からのインデント。

必要に応じて、水平方向に並べられたグラフの配列を作成することができます。これを行うには、 CStandardChart :: AddSubChart()メソッドを使用して、チャートのシンボルと時間枠を引数として渡します。しかしこの場合、チャートは1つだけ必要で、シンボルと時間枠は他のコントロールを使用して切り替えます。

図11  - チャートを追加する。

作者: Anatoli Kazharski

 

こんにちは。コンパイルエラーの修正方法を教えてください。

'ON_END_CREATE_GUI' - 宣言されていない識別子 Programme.mqh 307 29


 
kogriv:

こんにちは。コンパイルエラーはどうすれば直りますか?

'ON_END_CREATE_GUI' - 宣言されていない識別子 Programme.mqh 307 29

ライブラリを更新してください:

EasyAndFastGUI - グラフィカルインターフェイス作成用ライブラリ


そして、記事に添付されたライブラリファイル。

ファイル名コメント
MQL5Include ■EasyAndFastGUI ■Controls ■Table.mqh更新されたCTableクラス
MQL5Include ¦EasyAndFastGUI ¦Keys.mqhCKeysクラスを更新
 

なぜこのようなエラーが出るのですか?

どうすれば修正できますか?

ありがとうございます。

 

こんにちは、アナトーリ、

まず第一に、素晴らしい仕事ぶり、おめでとう。

あなたのファイルをコンパイルしてみましたが、定数が欠けているようです:Program.hの "ON_END_CREATE_GUI "です。

defines.hファイルに追加すべきでしょうか?


よろしくお願いします。

マヌエーレ

 
Manuele Lissoni:

こんにちは、アナトーリ、

まずは、素晴らしい仕事におめでとう。

あなたのファイルをコンパイルしてみましたが、定数が欠けているようです:Program.hの "ON_END_CREATE_GUI "です。

defines.hファイルに追加すべきでしょうか?


よろしくお願いします。

マヌエーレ

Defines.mqhファイルにこの行を追加してください:
#define  ON_END_CREATE_GUI           (42)

これでうまくいきました。

 

添付ファイルをダウンロードしましたが、以下のインクルードを解決できませんでした。

<EasyAndFastGUIWndEvents.mqh> をインクルードしてください。

#include <EasyAndFastGUI\TimeCounter.mqh>.


添付ファイルでダウンロードされないことを確認しました。

 

アナトリー、この点についてアドバイスをお願いします。

図11に標準チャートを追加しました。質問は以下の通りです。これはユニークなIDを持っているのでしょうか?私の探し方が悪かったのか、それともどこか遠くに隠されているのか。私の仕事は、この追加されたチャートに私自身の小さなキャンバスを描くことである。グラフィック・ライブラリの 素晴らしい仕事に感謝します。

 

私はこの巨大で多面的なGUIコンプレックスを吸収しようとしており、作者には大変感謝しているが、いくつかの疑問も生じている。

なぜ1つの要素を作成するのに何度もAddToElementsArrayを呼び出すのでしょうか?例えば、タブがウィンドウの一部である場合、m_tabs1.AddToElementsArray(0,m_date_scale)の呼び出しは、自動的に親からCWndContainer::AddToElementsArrayを呼び出すべきでは ないでしょうか(私が理解している用語では、親はメインエレメントと呼ばれ、すべてのエレメントはそれを持つべきであり、すべてのエレメントはCWndContainerの中にあるべきです。)

原則的に、要素を作成するときに、2つの "カウンター "を意味するメソッド(child.MainPointer(parent)とAddToElementsArray(child))を呼び出すことは、最適ではないように見えます。親と子の関係を逆にして、parent.Add(child)のように1つの呼び出しにまとめたらどうでしょう。

なぜ、オブジェクト生成の 前にタブのAddToElementsArrayを行い、CWndContainerの後に行う必要があるのでしょうか?

なぜ、要素を作成する前にすべてのオプションを設定できるようにしないのでしょうか?Createを呼び出す前に設定する必要があるものと、後で呼び出す必要があるものです。そして、サイズやオプションなどが指定されている同じグループの演算子で、フラグやテキストの状態が設定されるのを防いでいるのは何でしょうか?

なぜCWndContainer::AddToElementsArrayの最初のパラメーターは0なのでしょうか。ほとんどの場合、1つのウィンドウが使用され、インデックスは2番目のオプションのパラメーターとして作ることができます。

異なるタイプの要素の作成を単一の仮想Createメソッドで統一するアイデアはなかったのでしょうか?今、各要素のタイプはそれぞれ独自のCreateBlaBlaBla関数を持っています。

なぜヘルパーメソッド(CreateComboBoxTFなど)では、要素の位置だけがパラメータで設定され、サイズは内部で指定されるのですか?アライメントを考慮すると、サイズと位置はプログラムの1つの場所で「同期して」変更されるべきです。つまり、座標がパラメータとして外部から渡す価値があると考えられるなら、サイズもそこにあるべきです。

記事https://www.mql5.com/ja/articles/3366、すべてのコントロールを備えたExpert Advisorの例がありましたが、最新バージョンと互換性がありません。更新された例はありますか?

 

対コードで、win 10 64bitで、パネルをコンパイルしようとすると、'deprecated'の警告と1つのエラーが出ます:


Compiling........: TradePanel.mq5

C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Element.mqh(379,24) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Scrolls.mqh(625,15) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Scrolls.mqh(927,15) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\TextBox.mqh(1844,14) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ListView.mqh(704,45) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ListView.mqh(1468,71) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\TreeItem.mqh(85,15) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ProgressBar.mqh(156,4) : warning 91: deprecated behavior, hidden 
method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\ProgressBar.mqh(260,4) : warning 91: deprecated behavior, hidden 
method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Table.mqh(3416,109) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Tabs.mqh(588,47) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Tooltip.mqh(82,17) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\Controls\Window.mqh(1289,8) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(302,36) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(302,56) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(1426,20) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(1761,33) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Include\EasyAndFastGUI\WndEvents.mqh(1761,53) : warning 91: deprecated behavior, hidden method calling will be disabled in a future MQL compiler version
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Experts\TradePanel\CreateGUI.mqh(111,20) : error 199: 'AddItem' - wrong parameters count
C:\Users\x\AppData\Roaming\MetaQuotes\Terminal\xxx\MQL5\Experts\TradePanel\CreateGUI.mqh(111,28) : warning 181: implicit conversion from 'number' to 'string'
Result: 1 errors, 19 warnings

共有してくれてありがとう、


S LOVE NIA

 

TradePanel.mq5 ファイルがコンパイルされていません!