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

 

だから、まだ本当の入力変数が必要なんだ!

パラメータ

名前

[in]入力 変数または sinput 変数の識別子です。これらの変数は、プログラムの外部パラメータで、起動時に値を設定することができます。

 
Alexey Volchanskiy:

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


以下はその一例です。

ファイル:
test.zip  8 kb
 
Alexey Volchanskiy:

だから、とにかく本当の入力変数が必要なんだ!

ソースに書き込むことは誰も止めない。

 
fxsaber:

ソースで処方することを誰も止めない。


白牛の物語 ))通常の取引でアルゴリズムクラスに渡すには?

 
Alexey Volchanskiy:

白牛の物語 ))通常の取引でアルゴリズムクラスに渡すには?

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

また、入力パラメータを構造体に入れるのはいかがなものでしょうか。

fxsaber さん 2017.10.02 20:15

// 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>();
}
 
fxsaber:

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


その一例を、トップページからご紹介します。

struct VolumeParams                              
{
    double lot;         //Лоты
    double LotRatio;    //Множитель
    int tp;             //ТП
    int sl;             //СЛ
    int orders;         //Количество ордеров
};
VolumeParams ParamBuf[5];

input ParamBuf[0];         // Шаг 1
input ParamBuf[1];         // Шаг 2
input ParamBuf[2];         // Шаг 3
input ParamBuf[3];         // Шаг 4
input ParamBuf[4];         // Шаг 5

プラス私の引用

...ここでは、顧客が10個の入力を希望し、各ステップが独自のtp/sl/lot/tall/signalを入力に持つ場合

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

この設計では、プログラマーは入力パラメータ構造体の配列を初期 化して、それを使って簡単に作業することができます。

これらのパラメータをすべて別の変数に展開し、それを使って作業してみる。

 
Taras Slobodyanik:

以下は、最初のページからの例です。

TSを起動する際、どの入力パラメータを選択するのが良いのか分からないということがよくあります。例えば、12種類の入力パラメータを持つExpert Advisorを実行するとします。そして、各セットはTSの各コピーに適用される。昔、MQL4がまだMQL5からかなり離れていた頃、多くの人がやっていた。

そして、彼らはそれをextern文字列で行いました。今は入力文字列と呼ばれています。

input string Parameters = "1, 2, 3.5, 8, 9l";

入力文字列を解析し、入力行の数を確認し、その数に基づいて、対応する入力パラメータを持つトレードロジックを同じ数だけ作成した(ArrayResizeを 使用)。しかも、これを古代のMQL4で!?そして、そこではTSごとにTCの数などのニュアンスでMMを分配していた。古代のコードベースのどこかに、その例があるはずだ。

 

はい、しかし、この方法で最適化することは不可能です。

1

 
Taras Slobodyanik:
はい、しかし、これでは最適化ができません。

現実とは関係ない仮定の問題を作り上げているのです。最適化が必要 な場合は、初歩的な方法で行われます。ハイライトされた言葉に注目してください。技術的なハードルはありません。この場合、Optimisationを整理できないのであれば、それほど必要な ものなのです。

このニーズ、このニーズを解決するための実用的なテクニックはたくさんあります。しかし、それらは仮定の問題とは程遠いものです。

 
fxsaber:

現実とは関係ない仮定の問題を作り上げているのです。最適化が必要 な場合は、初歩的な方法で行われます。ハイライトされた言葉に注目してください。技術的な障害はありません。この場合、Optimisationを整理できないのであれば、それほど必要な ものなのです。

このニーズ、このニーズを解決するための実用的なテクニックはたくさんあります。しかし、それらは仮定の問題とは程遠いものです。

話題は最適化についてではない)
なぜ、構造体に入力パラメータを入れないのか?