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

 
ありがとう。
 

テスターでリソースを使用 すると動作しますか?エラー 4802.

#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1

#resource "\\Indicators\\Examples\\ADX.EX5"
#property tester_indicator "\\Indicators\\Examples\\ADX.EX5"
//+------------------------------------------------------------------+
//||
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   int handle=iCustom(Symbol(),Period(),"::Indicators\\Examples\\ADX.EX5");
   if(handle!=INVALID_HANDLE)
     {
      ChartIndicatorAdd(0,1,handle);
     }
//---
   return(0);
  }
//+------------------------------------------------------------------+
//| カスタム・インジケータ反復関数
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
  
  return(rates_total);}

	          
 
Karlson:

テスターでリソースを使用すると動作しますか?エラー 4802.

本当に何をしたいのですか?

独自の計算エンジンを持つ外部インジケータで、このインジケータの計算関数OnCalculateを オーバーライドしますか?それはできません。

 
私のインジケーターがジグザグからデータを受け取り、それをリソースとして含めるようにしたかったのです。
 

しかし、テスターでインジケーターを 確認するには、やはりロック機構そのものが必要だ。

if(MQL5InfoInteger(MQL5_TESTING)==true) // テスターの場合、フォルダから取得する。
     {
      f_h=iCustom(_Symbol,_Period,"Examples\\Zigzag",5,5,3);
     }
   else                                 // チャートの場合は、組み込みの
     {
      f_h=iCustom(_Symbol,_Period,"::Indicators\\Examples\\Zigzag.EX5",5,5,3);
     }

もう一つの選択肢は、安全ロックを完全に埋め込むことです。

 

取引、自動取引システム、取引戦略のテストに関するフォーラム

MQL5でリソースを使用する」記事に関する議論

レナト, 2013.01.16 22:21

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

  • MQL5: EX5リソースにインジケーターを保存するためのサポートを追加しました。リソース内のインジケータは、それ自身のリソースでは動作しません。
リソースからロードされたインジケーターにOBJ_BITMAP_LABEL タイプのグラフィカルオブジェクトを作成し、TextOutの テキストをオーバーレイする方法を教えてください。
TextOutに 限り、リソースからロードされたプログラムの独自のリソースで動作する機能を例外とすることはできますか?
 
fyords:
リソースからロードされたインジケータでOBJ_BITMAP_LABEL タイプのグラフィカルオブジェクトを作成し、TextOutから その上にテキストをオーバーレイすることが可能である方法を教えていただけますか?
TextOutの ための唯一の例外を作ることができます - リソースからロードされたプログラムの独自のリソースで動作する機能?
そして、どのような場所で正確に問題ですか?具体的に何がうまくいかないのですか?
 
Renat:
具体的にどこに問題があるのか?具体的に何がうまくいかないのですか?

インジケータがあり、そこから子インジケータがリソースから起動されます。
TextOutが子インジケータで使用され、結果はResourceCreateを介してOBJ_BITMAP_LABELに ロードされますが、リソースでリソースを使用する可能性はありません。

その結果、オブジェクトが表示され、プロパティにリソースが指定されますが、テキスト自体は出力されません。

 
fyords:

インジケータがあり、そこからリソースから子が起動されます。
TextOutが子で使われ、結果はResourceCreate経由でOBJ_BITMAP_LABELに ロードされますが、リソースでリソースを使う可能性はありません。

その結果、オブジェクトは表示され、リソースはプロパティで指定されますが、テキスト自体は出力されません。

そう、現状ではリソースオブジェクトからリソースを読み込むことは不可能なのです。

実際、このような状況になります。サードパーティリソースから "引き出された "インジケータは、呼び出されたモジュール内で生き始め、リソースへのすべての呼び出しは、ネイティブボディではなく、呼び出されたモジュールのボディに行きます。私たちは現在この問題について考えており、おそらく解決できるでしょう。

 
Renat:

...今、この問題について考えていて、おそらく解決できると思います。

ありがとう。