記事"MQL5におけるリソースの使用"についてのディスカッション

 

新しい記事 MQL5におけるリソースの使用 はパブリッシュされました:

MQL5プログラムを使うと、ルーチンの演算を自動化するだけでなく、フル機能のグラフィック環境を作ることが可能です。真にインタラクティブなコントロールを作成する機能は、今や、伝統的なプログラミング言語のそれとほとんど同じくらい充実しています。MQL5でフル機能のスタンドアロンプログラムを書くことを望むなら、これらに含まれるリソースを使いましょう。リソースを使ったプログラムは、管理や配布をより簡単に行えます。

作者: MetaQuotes Software Corp.

 

MetaEditor 5では、この目的のために特別な標準コマンド "リソースの挿入 " が追加されました:



Вставка ресурсов

開発されたアプリケーションでのリソースファイルの使用を容易にするために、"リソースの挿入 Insert Resources "コマンドが"Service"メニューに用意されています。このコマンドにより、#resourceディレクティブを使用して、指定されたフォルダから選択されたリソースファイルの宣言を現在のファイルに挿入することができます。

このコマンドを実行すると、標準的なオペレーティングシステムのダイアログボックスが表示され、ファイル内で宣言する1つまたは複数のリソースファイルを選択する必要があります。

  • リソース・ファイルはクライアント・ターミナルの/MQL5ディレクトリ内にのみ配置できます。このフォルダ外のファイルは使用できません。
  • リソースファイルとして使用できるのは、*.wavファイルと*.bmpファイルのみです。

その後、以下の形式のディレクティブがカレントファイルの先頭に追加されます:

#resource "\Imagesexample.bmp"
or
#resource "resourcesexample.bmp"

リソースファイルへのパスは2つの方法で指定できる:

  • 現在のファイルからの相対パス(パスの先頭に"˶"記号を付けない)
    この方法は、リソースファイルが現在のファイルと同じフォルダまたはそのサブフォルダのいずれかにある場合に使用されます。
  • クライアント端末の /MQL5 ディレクトリに関して(パスの先頭に"˶" シンボルがある)
    この方法は、それ以外のすべての場合に使用されます。
 

MQL5プログラムにリソースを含めるのがさらに簡単になりました。そのために、MetaEditor 5には特別なInsert Resources コマンドがあります。


Resources Inserting

開発したアプリケーションでのリソースファイルの使用をより簡単にするために、"リソースの挿入 Insert Resources "コマンドが"Tools " メニューに実装されています。このコマンドは、#resourceディレクティブを使用して、現在のファイル内の選択されたフォルダからリソースファイルを宣言することができます。

このコマンドを実行すると、オペレーティングシステムの標準ダイアログウィンドウが表示されます。このダイアログで、ファイル内で宣言する1つまたは複数のリソースファイルを選択します。

  • リソース・ファイルはクライアント端末の/MQL5ディレクトリ内にのみ置くことができます。そのディレクトリ外のファイルは使用できません。
  • リソースファイルとして使用できるのは、*.wavファイルと*.bmpファイルのみです。

上記の操作を行うと、対応するディレクティブがファイルの先頭に追加されます。例えば

#
または
#resource "resourcesexample.bmp"

リソースファイルへのパスは2つの方法で指定できる:

  • カレント・ファイルに対する相対パス(パスの先頭に"˶"シンボルを付けない)
    この方法は、リソース・ファイルがカレント・ファイルと同じディレクトリまたはそのサブフォルダの 1つにある場合に使用されます。
  • クライアント端末の /MQL5 ディレクトリに相対的に配置する(パスの先頭に " \" シンボルを指定する)
    この方法は、その他のすべての場合に使用されます。
 

MetaTrader 5 Client Terminal build 730
MQL5: Added support for storing indicators in EX5 resources. 

#resource "Examples\Fractals.ex5"

どなたかインジケーターの使用例を教えてください。

 
iCustom()経由でメインファイルから呼び出されたインジケータファイルをリソースとして挿入できるようになるのはいつになるのでしょうか?ターミナルフォルダには ゴミが多すぎて、何が何に属しているのかさえわからない。安全とは言えません。1つのプロジェクトを1つのex5ファイルにまとめる方法を知りたいです。
 
MoneyJinn:
iCustom()経由でメインファイルから呼び出されたインジケータファイルをリソースとして挿入できるようになるのはいつになるのでしょうか?ターミナルフォルダには ゴミが多すぎて、何が何に属しているのかさえわからない。安全とは言えません。1つのプロジェクトを1つのex5ファイルにまとめる方法を教えてほしい。

これは2012年11月24日の730ビルドで追加されました:

  • MQL5:EX5リソースに指標を保存するサポートを追加しました。リソース内のインジケータは、それ自身のリソースで動作することはできません。


簡単な例を示します。まず、標準のCHOインディケータを指定されたパスにコンパイルし、次にこのExpert Advisorをコンパイルし、チャートにドロップします。

#resource "\\Indicators\\Examples\\CHO.EX5"
//+------------------------------------------------------------------+
//| エキスパート初期化関数|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\CHO.EX5");
   if(handle!=INVALID_HANDLE)
     {
      Print("Indicator created!");
      IndicatorRelease(handle);
     }
//---
   return(0);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  }

パスの正しい選択、エリア修飾子 :: 、スラッシュの正しい使用に注意してください。

インジケーターをリソースにパッケージ化することで、自給自足の完全な製品を作ることができます。

 
Renat:

これは2012年11月24日のビルド730で追加されました:

  • MQL5:EX5リソースにインジケーターを保存するためのサポートを追加しました。リソース内のインジケータは、それ自身のリソースでは動作しません。

...

どうしてこの瞬間を見逃してしまったのだろう?この機能を待ち望んでいましたが、ずっと前からありました。ありがとう。))
 
Renat:

ありがとう。まさに私が必要としていたものだ。

 
EX4(MT4)製品に リソースを含めることは可能ですか? それとも、この「リソース」はEX5(MT5)だけの機能ですか?
 
FinGeR:

どなたかインジケーターの使用例を教えてください。

:https://www.mql5.com/ru/forum/3409#comment_408123

#resource "\\Indicators\\Examples\\CHO.EX5"
//+------------------------------------------------------------------+
//| エキスパート初期化関数|
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\CHO.EX5");
   if(handle!=INVALID_HANDLE)
     {
      Print("Indicator created!");
      IndicatorRelease(handle);
     }
//---
   return(0);
  }
void OnDeinit(const int reason)
  {
  }
void OnTick()
  {
  }
Обсуждение статьи "Использование ресурсов в MQL5"
  • www.mql5.com
Программы на MQL5 позволяют не только автоматизировать рутинные вычисления, но и создавать полноценную графическую оболочку.
 
4evermaat:
EX4(MT4)の製品にリソースを含めることは可能ですか? それとも、この「リソース」はEX5(MT5)だけの機能ですか?
MQL5専用です。