素晴らしいチュートリアルだ。
この記事をシェアしてくれてありがとう。ラッキー
マルコム・キャンベルさん、ご丁寧なレビューとフィードバックをありがとうございました。
バイト。表紙は美しい色のインターフェイスで、これはウィンドウズXPのウィンドウです)
この記事は役に立つ。
このパネルを自由に動かすことはできますか? 自由に動く?
今のところスマホから斜め読みしていますが...。
パソコンでもっと熟読し、あなたの記事をもとにトレーディング・インターフェースも作るつもりです。今のところ、売買ボタンしか作っていません。仕組みはなんとなくわかりました。もっと読み込んで、自分のパソコンでもグラフィカルなインターフェースを作って みます!取引注文を最適化するための非常に便利なユーティリティを使いたいと以前から思っていました。
MQL5の初心者として、この記事はとても気に入りました。記事をありがとうございました。しかし、ObjectDeleteが グラフィカル・オブジェクトのすべての作成および保存された名前を通してループで実行されれば、初期化関数を大幅に削減できると思いました。そのためには、グラフィカル・オブジェクトのパラメータを作成・初期化する関数に、文字列の配列、グラフィカル・オブジェクトのカウンタ、配列に名前を渡す演算子を追加する必要があります。私はこのようにした:
#define ADDOBJ ArrayResize(objectsArray, objectCount+1);\ objectsArray[objectCount] = objName;\ objectCount++; string objectsArray[]; int objectCount = 0;
//+------------------------------------------------------------------+ |エキスパート初期化関数| //+------------------------------------------------------------------+ void OnDeinit(const int reason) { // 作成されたグラフィカル・オブジェクトを削除する for(int i = 0; i < objectCount; i++) { if(ObjectFind(0, objectsArray[i]) >= 0) { ObjectDelete(0, objectsArray[i]); // Print("Object deleted: ", objectsArray[i]); } } }
私はまた、次のように追加しました:
input int base_x = 300; // 左インデント input int base_y = 100; // トップ・インデント input bool Include_DropDown = false; // ドロップダウンを表示する //+------------------------------------------------------------------+ //| Expert initialization function | //+------------------------------------------------------------------+ int OnInit() { CreatPanel(); return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Function to create Panel | //+------------------------------------------------------------------+ void CreatPanel() { createRecLabel("MAIN_REC",10,30,250,400,clrWhite,1,clrBlack); createRecLabel("MAIN_SUB_REC",15,35,240,390,C'245,245,245',1,clrNONE); createRecLabel("MAIN_LINE_UP",15,35,240,1,C'245,245,245',1,clrNONE,BORDER_RAISED); ... if(Include_DropDown) { createDropDown(); } ChartRedraw(0); }
また、create関数では、このように改良しました:
そして、グラフィック・オブジェクトを作成 する機能を少し変更した:
//+------------------------------------------------------------------+ //| テキスト・ラベルを作成する関数| //+------------------------------------------------------------------+ bool createLabel(string objName, int xD, int yD, string txt, color clrTxt = clrBlack, int fontSize = 12, string font = "Arial Rounded MT Bold") { ResetLastError(); if(!ObjectCreate(0, objName, OBJ_LABEL, 0, 0, 0)) { Print(__FUNCTION__, ": failed to create the label! Error code = ", _LastError); return (false); } ObjectSetInteger(0, objName, OBJPROP_XDISTANCE, base_x + xD); // base_x +を追加する。 ObjectSetInteger(0, objName, OBJPROP_YDISTANCE, base_y + yD); // base_y +を追加 ObjectSetInteger(0, objName, OBJPROP_CORNER, CORNER_LEFT_UPPER); ObjectSetString(0, objName, OBJPROP_TEXT, txt); ObjectSetInteger(0, objName, OBJPROP_COLOR, clrTxt); ObjectSetInteger(0, objName, OBJPROP_FONTSIZE, fontSize); ObjectSetString(0, objName, OBJPROP_FONT, font); ObjectSetInteger(0, objName, OBJPROP_BACK, false); ObjectSetInteger(0, objName, OBJPROP_STATE, false); ObjectSetInteger(0, objName, OBJPROP_SELECTABLE, false); ObjectSetInteger(0, objName, OBJPROP_SELECTED, false); ADDOBJ return (true); }
取引の機会を逃しています。
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事「MQL5でインタラクティブなグラフィカルユーザーインターフェイスを作成する(第1回):パネルの製作」はパブリッシュされました:
この記事では、MetaQuotes Language 5 (MQL5)を使用して、グラフィカルユーザーインターフェイス(GUI)パネルを作成し、実装するための基本的な手順について説明します。カスタムユーティリティパネルは、一般的なタスクを簡素化し、重要な取引情報を可視化することで、取引におけるユーザーのインタラクションを向上させます。カスタムパネルを作成することで、トレーダーはワークフローを合理化し、取引操作の時間を節約することができます。
本連載では、トレーダーが必要とする最も一般的なユーティリティツールを備えたGUIパネルを作成します。このように、カバーしなければならない要素は多岐にわたりますが、ここでは理解しやすいようにまとめて説明します。GUIの開発には4つの要素を使用し、これを通してGUIを作成します。このパネルでは、取引ボタン、シャープな四角形、ライブアップデート、絵文字の使用、さまざまなフォントスタイル、ラベル、移動可能なパネルパーツ、ホバーエフェクトなどが作成できます。その全体を説明するために、以下に例を挙げます。
作者: Allan Munene Mutiiria