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

 
Dmitry Fedoseev:

最初の投稿でちゃんと書いてないからかな?だから、みんな自分のことを書いているんです。そして、質問することもできません。答えは、無知かヒステリーのどちらか です。


誰からの?

 

いやいや、油断は禁物です。質問は、ユーザーが既存のチャートにEAを添付したときに、EAの入力パラメータを表示しないようにするにはどうしたらいいか、ということでした。テンプレート経由ではありません。

ところで、この解決策では、なぜ新しいチャートを作成する必要があるのか、はっきりしませんね?

P.S.そして、この行には「誤植」があるのです。

  Params[0].string_value = "Experts\\Advisors\E xpertMACD.ex5";
 
Ihor Herasko:

いやいや、ごまかさないでくださいよ。問題は、ユーザーが既存のチャートにEAをアタッチする際に、EAの入力パラメータを表示しないようにするにはどうしたらよいか、ということでした。テンプレート経由ではありません。

ユーザーはExpert_loaderをExpert Advisorと同じように実行します。

ところで、この解決策では、なぜ新しいチャートを作成する必要があるのか、はっきりしませんね?

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

ライブラリ: エキスパート

fxsaber さん 2017.09.08 14:45

もし、スクリプトが投げられた同じチャートでEAも動かす必要があるなら、新しいチャートを開いて、その上でテンプレートを使って自分(スクリプト)を動かし、そこから、補助のチャートを閉じて、必要なチャートでEAを動かす必要があります。これは、ExpertLoader_Example.mq5によって 行われます。

新しいチャートでは、非常にシンプルです
// Запуск советника с заданными входными параметрами
#include <fxsaber\Expert.mqh>

void OnStart()
{
  MqlParam Params[2];
  
  // Путь к советнику
  Params[0].string_value = "Experts\\Advisors\\ExpertMACD.ex5";

  // Первый входной параметр советника
  Params[1].type = TYPE_STRING;
  Params[1].string_value = "Hello World!";

  // На новом чарте запускаем советник
  EXPERT::Run(ChartOpen(_Symbol, _Period), Params);
}

P.S.この行には誤植があります。

ありがとうございます!説明文に誤植がありました。MQLファイルは大丈夫です。