記事"グラフィカルインターフェイスX:ソート、テーブル再構築とセル内のコントロール(ビルド11)"についてのディスカッション - ページ 10

 

こんにちは、

あなたのテーブルプロジェクトは本当に興味深く、優れたOOPコーディングの一例です。

複雑なマルチシンボルEAのための非常に有用なアドオンを考えていただけないでしょうか?

多くのインジケータで多くのシンボルを取引するEAで、各シンボルごとにパラメータを設定するインジケータがあるとします(単純な例です):

入力文字列 Sym1 = "EURUSD";

入力 int Sym1MACDema1 = 12;

入力 int Sym1MACDema2 = 26;

入力 int Sym1MACDsma3 = 9

input ENUM_APPLIED_PRICE Sym1MACDprc =PRICE_CLOSE;

input string Sym2 = "GBPUSD";

input int Sym2MACDema1 = 11;

input int Sym2MACDema2 = 25;

入力 int Sym2MACDsma3 = 10

input ENUM_APPLIED_PRICE Sym2MACDprc =PRICE_CLOSE;

...

このセットアップがパラメータの長いリストではなく、テーブルとして表示されれば、ユーザーにとって扱いやすくなる。

特に、そのcsvファイルによってStartegyTesterを管理するアプリを有効にする場合。OnInit()関数の 中で、StrategyTesterのEAをcsvファイルで管理する必要があると思います。

このために、StratTesterが提供するものを追加することができる。

しかし、OnInit()が INIT_PARAMETERS_INCORRECTまたはINIT_FAILEDを 返した場合、遺伝的アルゴリズムの場合 、遺伝的アルゴリズムがこれを有効なパスとしてカウントしてしまうため、本当にパスしたテスト実行の量が減ってしまい、最終的な結果の妥当性が低下して しまうという問題があります

私はmt4でこの問題に気づき、サービスデスクにこのことを伝えました。


とにかく、よくやった。)




 
Carl Schreiber:

...

フィードバックと提案をありがとう!どうすれば実現できるか考えてみるよ。
 

こんにちは、メインフォームやダイアログをプログラムで特定の場所に移動させるにはどうしたらよいでしょうか。

例えば、フォームのタイトルがクリックされたときに、ダイアログを左上の隅に移動させたいです。

 

Tol、列のサイズを変更するときに奇妙なことに気づきました。また、Ctrlキーを押しながらだと、列のサイズが常に変化することも偶然発見しました。


 
Artyom Trishkin:

1.Tol、カラムサイズを変更すると、テキストが正しく切り取られないという奇妙なことに気づきました。

2.また、Ctrlキーを押しながらだと、列のサイズが常に変わることも偶然発見しました。

1.列のテキスト配置のモードを変えてテストしてみましたが、再現できませんでした。

2.Ctrlキーを弄ってみたが、なぜこのような挙動になるのかは不明である。このキーはテーブル・コードでは定義されていない。

 

こんにちは!

素晴らしいライブラリですね!

MT4はまだサポートしていますか?

MT4とMT5の両方をサポートしていれば、MT4からMT5への移行をスムーズに行うことができます。

 

こんにちは、


この記事で紹介されているライブラリをダウンロードし、勉強のためにいろいろと改造しているところです。 簡単な質問があります。


メニューを作らないと、下のコードのように、テーブルをソートしたり、チェックボックスをシングルクリックしたりすることができません。アナトリ・カザルスキー


//+------------------------------------------------------------------+
//| 取引パネルの作成|
//+------------------------------------------------------------------+
bool CProgram::CreateExpertPanel(void)
  {
//--- コントロール用フォーム1の作成
   if(!CreateWindow1("EXPERT PANEL"))
      return(false);
/*/--- コントロールの作成:
// メインメニュー
 if(!CreateMenuBar(1,20))
 return(false);
//--- コンテキストメニュー
 if(!CreateMBContextMenu1())
 return(false);
 if(!CreateMBContextMenu2())
 return(false);
 if(!CreateMBContextMenu3())
 return(false);
 if(!CreateMBContextMenu4())
 return(false);*/
//--- ステータス・バーの作成
   if(!CreateStatusBar(1,25))
      return(false);
//--- ボタン
   if(!CreateSimpleButton1(7,50,"ADD COLUMN"))
      return(false);
   if(!CreateSimpleButton2(7,75,"DELETE COLUMN"))
      return(false);
   if(!CreateSimpleButton3(180,50,"ADD ROW"))
      return(false);
   if(!CreateSimpleButton4(180,75,"DELETE ROW"))
      return(false);
   if(!CreateSimpleButton5(353,50,"REBUILD TABLE"))
      return(false);
   if(!CreateSimpleButton6(353,75,"CLEAR TABLE"))
      return(false);
//--- 編集
   if(!CreateSpinEdit1(114,52,":"))
      return(false);
   if(!CreateSpinEdit2(114,77,":"))
      return(false);
   if(!CreateSpinEdit3(287,52,":"))
      return(false);
   if(!CreateSpinEdit4(287,77,":"))
      return(false);
//--- レンダリングされたテーブルを作成する
   if(!CreateCanvasTable(1,103)) // 103 | 42
      return(false);
//--- チャートの再描画
   m_chart.Redraw();
   return(true);
  }
 
テーブルが動的なデータを持っている場合の更新方法を教えてくださいhttps://www.mql5.com/ru/forum/165152/page10#comment_7488387
 
Juer:
テーブルが動的なデータを持っている場合、テーブルを更新する方法を教えてください。https://www.mql5.com/ru/forum/165152/page10#comment_7488387

GUI X: 描画されたテーブルの更新とコードの最適化 (ビルド 10)