なぜ、構造体に入力パラメータを入れないのか? - ページ 4

 

Alexey Volchanskiy

ところで、MQL5では、関数のパラメータ数に制限があるのでしょうか?

1つの関数につき、64個のパラメータがあるようです。

 
Alexey Volchanskiy:

どのように最適化するのですか?今に始まったことじゃないし、誰も何も言ってくれない。


それが、「しない」なのです。カスタムウィンドウ(MQLではDLL、GUI)があると、ネイティブの最適化を完全に破壊してしまうということです。極端な話、EA内部に独自の最適化を加える必要があるわけで、これも自転車操業ですね。

iniファイルは同じものです。ここでどう便利かというと、まったくもって不明です。少なくとも、チューニングパラメータの値を変更するためにiniファイルを編集するような単純なユーザは見たことがありません。

 
Alexey Volchanskiy:

十分わかりやすく書いたように思いますが、例を挙げて繰り返します。エキスパートアドバイザーがあり、それは100の入力パラメータを持ち、それらのすべては、すべての作業が行われるアルゴリズムのクラスのインスタンスに渡される必要が あります。方法は2つあります。

  1. パラメータ設定機能をクラスで作成する。ここで、100個のパラメータを持つ関数を想像してみてください。ところで、MQL5では関数のパラメータ数に制限があるのでしょうか?
  2. クラスは入力変数の後に定義され、すなわちEAから見えるようになっています。欠点 - クラスのインスタンスが複数ある場合、柔軟性に欠ける。プラスは最小限の書き込み。

そこで問題は、アルゴリズムクラスのインスタンスに入力変 数をどのように渡すかである

それなら、うまくいったね。

// Begin: mqh-файл
class CLASS_EXPERT
{
public:  
  template <typename T>
  void Set( void );
};
// End: mqh-файл

input int inNum = 0;

struct INPUTS
{
  const int Num;
  
  INPUTS( void ) : Num(inNum)
  {
  }
};

CLASS_EXPERT Experts[10];

void OnInit()
{
  for (int i = ArraySize(Experts) - 1; i >= 0; i--)
    Experts[i].Set<INPUTS>();
}
 
Ihor Herasko:

そんなことが可能なのか?どうしてこんなことが可能なのか、本当に理解できない。スクリプトの場合はそのような仕掛けがありますが、Expert Advisorやインジケータの場合はそうではありません。

ExpertLoader_Example.mq5こちらから

イホル・ヘラスコ

ここがポイントです、そうではありません。カスタムウィンドウ(MQLではDLL、GUI)は、標準の最適化を完全に破壊してしまうということです。極端な話、EA内部に独自の最適化を加える必要があるわけで、これも自転車操業ですね。

iniファイルは同じものです。ここでどう便利かというと、まったくもって不明です。少なくとも、チューニングパラメータの値を変更するためにiniファイルを編集するような単純なユーザは見たことがありません。

https://www.mql5.com/ru/docs/optimization_frames/parametersetrange

Expert
Expert
  • 投票: 16
  • 2017.08.28
  • fxsaber
  • www.mql5.com
Все остальные файлы на данной странице описания библиотеки являются ее примерами/сценариями применения и не нужны для работы самой библиотеки. Возможности Примеры К описанию прикреплены примеры/сценарии ее использования. ExpertsRemove.mq5 ExpertsReopen.mq5 ChartsClose.mq5 ExpertLoader_Example.mq5 ExpertsChange_Example.mq5 Это...
 

外部変数をmqhファイルに書いて 差し込めばいいんです。

 

私は時代から遅れているか、間違った方向に進んでいるに違いない。

EAは入力パラメータが少ない方がいいと思っていました。

私が思うに、EAには入力パラメータ(入力変数)がないのが理想的です。

100のパラメータは何のためにあるのか、説明してください。

 
Sergey Chalyshev:

私は時代から遅れているか、間違った方向に進んでいるに違いない。

EAは入力パラメータが少ない方がいいと思っていました。

私が思うに、EAには入力パラメータ(入力変数)がないのが理想的です。

100個のパラメータは何のためにあるのか、説明してください。


あくまで実験のため。

 
Sergey Chalyshev:

私は時代から遅れているか、間違った方向に進んでいるに違いない。

EAは入力パラメータが少ない方がいいと思っていました。

私が思うに、EAには入力パラメータ(入力変数)がないのが理想的です。

100のパラメータの意味を教えてください。


この質問については、ここでは触れません。パラメータ受け渡しの技術的な部分を議論しています。

 
Dmitry Fedoseev:

mqhファイルに外部変数を書き込んで 差し込むことができます。


気が狂いそうだ、みんなに頑なに無視されてる。.mqhに書くこともできますが、アルゴリズムクラスへの渡し 方にどんな違いがあるのでしょうか?

 
Alexey Volchanskiy:

気が狂いそうだ、まだ聞いてもらえない。.mqhも使えますが、アルゴリズムクラスへの渡し 方にどんな違いがあるのでしょうか?


渡す必要はなく、グローバル変数が そのまま利用できます。