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

 
Комбинатор:
次に、ファイルでパラメータを設定します。

ところで、そうなんです。

多くのパラメータがある場合、INIファイルは "just what the doc ordered "であると私は思います。

INIファイルを操作するために、すぐに使えるWindowsの関数を直接使用することができます。とはいえ、自分の、自作はあるのですが。

 
Taras Slobodyanik:

だから、あれだけのパラメータを書くには、構造を定義して入力パラメータに入れれば十分なのだ。


はい、その通りです。

 
Alexey Volchanskiy:

はい、その通りです。

利便性の例を教えてください。何を言っているのかわからないのですが。

 
Ihor Herasko:

では、設定用のウィンドウが標準のものと新しいものの2つあってもおかしくはないですね。

標準のウィンドウを使用せずにEAを実行します。

 
fxsaber:

mqh-fileについて触れているので、このスレッドとは関係ないですね。そして、構造を定義することは、すべてのフィールドを記述することと同じです。つまり、同じことなのです。


かなりわかりやすく書いたつもりですが、例を挙げて繰り返します。Expert Advisorがあり、100の入力パラメータがあり、それらすべてを、すべての作業が行われるアルゴリズムのクラスのインスタンスに渡す必要が あります。方法は2つあります。

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

    input double LotSize = 0.1;
    // другие 100 input переменных...
    
    #include <MyLib\MyClassEA.mqh>
    CMyClassEA MyEA;
そこで問題は、アルゴリズムクラスのインスタンスに入力 変数をどのように渡すかである
 
fxsaber:

利便性の例を教えてください。何を話しているのか理解できない。


初期化関数に100個のパラメータを渡すのと、入力パラメータを持つ1つの構造体への参照とでは、どちらが簡単でしょうか?

 
George Merts:

ところで、そうなんです。

パラメータがたくさんある場合は、INIファイルはまさに「What the doc ordered」だと思います。

INIファイルを操作するために、すぐに使えるWindowsの関数を直接使用することができます。とはいえ、私自身、自分で書いたものもありますが。


ポイントは、標準的な最適化の可能性を残すことです。iniで本当に可能なのでしょうか?

 
Ihor Herasko:

これが今のやり方です。同時に、Expert Advisorには、このようなファイルの「エディタ」がDLLの形で付属しており、タブ付きのパラメータを持つウィンドウが表示されます。

つまり、すべてが可能なのです。誰もそれに異論はないだろう。もうひとつは、端末ですぐに使える機能という形であれば、格好がつくと思います。


そして、どのように最適化するのか?この質問をするのは初めてではないのに、誰も何も言わないんです。

 
Alexey Volchanskiy:

ポイントは、標準的な最適化の可能性を残すことです。iniで可能ですか?

可能です。しかし、なぜiniなのかがわからない。

 
fxsaber:

標準のウィンドウを使用せずにEAを実行します。


そんなことが可能なのか?どうしてこんなことが可能なのか、本当に理解できない。スクリプトの場合はこのトリックを知っていますが、EAやインジケーターの場合は知りません。