ライブラリ: エキスパート - ページ 10 1...345678910111213 新しいコメント Stanislav Korotky 2020.08.02 13:58 #91 直感的でないのは、パラメータと名前の配列が異なるサイズを返すことです。なぜなら、エキスパートアドバイザーの名前を表す名前にはnullパラメータがないからです。 また、私はパラメータの実際の型を知りたい、今 "文字列 "はどこでも返されます。文字列の内容を分析し、浮動小数点 数または整数に変換する方法がありますが、パラメータに「0」が格納されている場合、その型を特定することはできません。 fxsaber 2020.08.02 14:18 #92 Stanislav Korotky:直感的でないのは、パラメータ配列と名前配列が異なるサイズを返すことです。これは、名前に Expert Advisor の名前を表す null パラメータがないためです。 そう、これはあまり良いことではありません。おそらく、Names[]のために偽のnull要素を作るべきだったのでしょう。 また、パラメータの本当の型を知りたいのですが、今はどこでも "string "が返されます。文字列の中身を分析し、浮動小数点数や整数への還元性を分析するのですが、パラメータに "0 "が格納されていると、その型を特定することができません。 カスタムENUMが残っているので、ライブラリでは不要だと考えました。さらに、それが必要になりそうなタスクも見当たらなかった。 私は自分でオート・オプティマイザーを作っていた。そこでは役に立たなかった。 Stanislav Korotky 2020.08.02 14:32 #93 fxsaber:そうだね。おそらく、Names[]のために偽のnull要素を作るべきだったのだろう。カスタムENUMもあるので、ライブラリでは不要だと考えました。しかも、それが必要になるようなタスクは見当たりませんでした。私は自分でオート・オプティマイザーを作っていた。そこでは役に立たなかった。 ParameterGetRange/ParameterSetRange 関数はlong型と double型に対してのみ 定義されているため、パラメータ・ループでは数値のみを分析して設定を変更する必要がある。 fxsaber 2020.08.02 14:53 #94 Stanislav Korotky:ParameterGetRange/ParameterSetRange関数は、それぞれlong型と double型に対してのみ 定義されており、パラメータに対するループでは、数値のみを分析し、設定を変更する必要があります。 整数型は bool、enumです。 Stanislav Korotky 2020.08.02 15:08 #95 fxsaber:整数型は bool、enumである。 これは普通のことだ。今やすべてが文字列で表現され、本物の文字列をふるいにかけることが不可能なのは正常ではない。 fxsaber 2020.08.02 15:38 #96 Stanislav Korotky:それが普通だ。すべてが文字列で表現されるようになり、実際の文字列をふるいにかけることができないのは普通じゃない。 最適化されるパラメータはあらかじめ数字になっている。だからその中に文字列は絶対にない。だからフィルターとして使える。 Aleksei Beliakov 2020.09.21 17:35 #97 どうも、エキスパートでオーソライズされた取引で オープンする方法がわかりません。 このコードは私が渡した入力で普通にオープンします。 Params[0].string_value = "Experts\\Shared Projects\\luipaulo89\\experts\\PullbackEA_v2.ex5"; // Expert Advisor の最初の入力パラメータ。 Params[1].type = TYPE_STRING; Params[1].string_value = "Hello World!"; Params[2].type = TYPE_INT; Params[2].integer_value = 0; // 新しいチャートでExpert Advisorを実行する。 if (inpFirst==1) EXPERT::Run(ChartOpen(_Symbol, _Period), Params); このコードを使用すると Params[0].string_value = "Experts\\Shared Projects\\luipaulo89\\experts\\PullbackEA_v2.ex5"; Params[0].string_value += "\nexpertmode=5"; // Expert Advisor の最初の入力パラメータ。 Params[1].type = TYPE_STRING; Params[1].string_value = "Hello World!"; Params[2].type = TYPE_INT; Params[2].integer_value = 0; // 新しいチャートでExpert Advisorを実行する。 if (inpFirst==1) EXPERT::Run(ChartOpen(_Symbol, _Period), Params); このコードを使用すると、許可された取引で開きますが、パラメータは渡されません。 課題は新しいチャートで同じExpert Advisorを開くことです。 input group "EA Settings" input int inpFirst = 1;//最初のインスタンス; 最初のExpert Advisorだけが新しいExpert Advisorを開くことができるように、私は新しいExpert Advisorに0を渡しますが、残念ながら2番目のバリエーション(取引が許可されている場合)ではパラメータが渡されません(または間違って渡されます)。 inpFirst = 0; Aleksei Beliakov 2020.09.21 18:03 #98 tplファイルでは、ヘッダーは完璧に作成されているのですが、なぜかパラメータが渡されないのです。 <expert> name=PullbackEA_v2 path=Experts\Shared Projects\luipaulo89\experts\PullbackEA_v2.ex5 expertmode=5 <inputs> inpFirst=1 inpFirst=0であることが期待される Params[1].type = TYPE_INT; Params[1].integer_value = 0; fxsaber 2020.09.22 18:43 #99 Aleksei Beliakov: ライブラリを更新する。 Expert Advisorをテストする。 input group "EA Settings" input int inpFirst = 1;//最初のインスタンス; void OnInit() {} 例1。 #include <fxsaber\Expert.mqh> void OnStart() { MqlParam Params[3]; // カウンセラーへの道 Params[0].string_value = "Experts\\Test6.ex5"; Params[0].string_value += "\nexpertmode=5"; // 入力グループ "EA設定" Params[1].type = TYPE_STRING; Params[1].string_value = NULL; // 入力 int inpFirst Params[2].type = TYPE_INT; Params[2].integer_value = 123; EXPERT::Run(ChartOpen(_Symbol, PERIOD_CURRENT), Params); // 独自のチャート上でEAを正しく動作させることができません。 } 例2。 #include <fxsaber\Expert.mqh> void OnStart() { MqlParam Params[3]; // カウンセラーへの道 Params[0].string_value = "Experts\\Test6.ex5"; Params[0].string_value += "\nexpertmode=5"; // 入力グループ "EA設定" Params[1].type = TYPE_STRING; Params[1].string_value = NULL; EXPERT::AddInputName(Params[1], " "); // 問題 // 入力 int inpFirst Params[2].type = TYPE_INT; Params[2].integer_value = 123; EXPERT::AddInputName(Params[2], "inpFirst"); EXPERT::Run(0, Params); // Expert Advisor を独自のチャート上で正しく実行できるようになります。 } Aleksei Beliakov 2020.09.22 19:00 #100 いつもありがとう! 1...345678910111213 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
直感的でないのは、パラメータと名前の配列が異なるサイズを返すことです。なぜなら、エキスパートアドバイザーの名前を表す名前にはnullパラメータがないからです。
また、私はパラメータの実際の型を知りたい、今 "文字列 "はどこでも返されます。文字列の内容を分析し、浮動小数点 数または整数に変換する方法がありますが、パラメータに「0」が格納されている場合、その型を特定することはできません。
直感的でないのは、パラメータ配列と名前配列が異なるサイズを返すことです。これは、名前に Expert Advisor の名前を表す null パラメータがないためです。
そう、これはあまり良いことではありません。おそらく、Names[]のために偽のnull要素を作るべきだったのでしょう。
また、パラメータの本当の型を知りたいのですが、今はどこでも "string "が返されます。文字列の中身を分析し、浮動小数点数や整数への還元性を分析するのですが、パラメータに "0 "が格納されていると、その型を特定することができません。
カスタムENUMが残っているので、ライブラリでは不要だと考えました。さらに、それが必要になりそうなタスクも見当たらなかった。
私は自分でオート・オプティマイザーを作っていた。そこでは役に立たなかった。
そうだね。おそらく、Names[]のために偽のnull要素を作るべきだったのだろう。
カスタムENUMもあるので、ライブラリでは不要だと考えました。しかも、それが必要になるようなタスクは見当たりませんでした。
私は自分でオート・オプティマイザーを作っていた。そこでは役に立たなかった。
ParameterGetRange/ParameterSetRange 関数はlong型と double型に対してのみ 定義されているため、パラメータ・ループでは数値のみを分析して設定を変更する必要がある。
ParameterGetRange/ParameterSetRange関数は、それぞれlong型と double型に対してのみ 定義されており、パラメータに対するループでは、数値のみを分析し、設定を変更する必要があります。
整数型は bool、enumです。
整数型は bool、enumである。
これは普通のことだ。今やすべてが文字列で表現され、本物の文字列をふるいにかけることが不可能なのは正常ではない。
それが普通だ。すべてが文字列で表現されるようになり、実際の文字列をふるいにかけることができないのは普通じゃない。
最適化されるパラメータはあらかじめ数字になっている。だからその中に文字列は絶対にない。だからフィルターとして使える。
どうも、エキスパートでオーソライズされた取引で オープンする方法がわかりません。
このコードは私が渡した入力で普通にオープンします。
このコードを使用すると
このコードを使用すると、許可された取引で開きますが、パラメータは渡されません。
課題は新しいチャートで同じExpert Advisorを開くことです。
最初のExpert Advisorだけが新しいExpert Advisorを開くことができるように、私は新しいExpert Advisorに0を渡しますが、残念ながら2番目のバリエーション(取引が許可されている場合)ではパラメータが渡されません(または間違って渡されます)。
tplファイルでは、ヘッダーは完璧に作成されているのですが、なぜかパラメータが渡されないのです。
inpFirst=0であることが期待される
ライブラリを更新する。
Expert Advisorをテストする。
例1。
例2。