エラー、バグ、質問 - ページ 815

 
tol64:

インジケーターハンドルの取得時に、呼び出すインジケーター名が変数に含まれているとエラーになるのですが、なぜか教えてください。

というか、こんなエラーはない。

このように、エラー4802 (Indicator cannot be created)が発生します。

tester_indicatorについてはこちらを ご覧ください。
 
marketeer:
tester_indicatorについてはこちらを ご覧ください。
はい、もう全部何度も読み直しています。))しかし、必要なものを手に入れることはできていない。そして、インジケーターの名前を変数に設定する必要があります。
 
tol64:
何度も何度も読み返しています。))でも、必要なものが手に入らないんです。そして、インジケーターの名前を変数に設定する必要があります。
では、test_indicatorというプロパティを追加しましたか?これがないとダメなんでしょうね。
 
marketeer:
では、プロパティtest_indicatorを追加しましたか?これがなかったら、やっていけなかったと思います。

試してみました。何かこう、うまくいかないんですよね。例を示してもらえますか(私のやり方が悪いのかもしれませんが)。

P.S. うまくいきました。これ以上ないほどシンプルです。休養のためのオフ。))

P.S2. しかし、私はプロパティtest_indicatorを通じて すべての指標を登録しなければならないという事実に依存を得る。つまり、外部パラメータでインジケータ名を指定し、ユーザーが新しいインジケータを持つ場合、再度コードを開く必要があります。これは、私たちが望んでいるものとはちょっと違う。

 
tol64:

P.S2. しかし、すべてのインジケータをtest_indicator プロパティで 記述しなければならないという依存関係がまだ残っています。つまり、外部パラメータでインジケータ名を指定し、ユーザーが新しいインジケータを持つ場合、再度コードを開く必要があります。これは、私たちが望んでいるものとはちょっと違う。

5で行われます。他のランダムに選ばれたいくつかのインデックスからインデックスを構築するために使用しました。もしかしたら、開発者の方が教えてくれるかもしれませんね。
 
marketeer:
5ではこうなっています。私自身は、他のいくつかのインデックスをランダムに選んでインデックスを構築するのに使いました。もしかしたら、開発者の方が教えてくれるかもしれませんね。

MT5テスターのEAはターミナル外で起動するため、MT4にあったライブラリ環境がすべて揃っていないことです。

例えば、Expert Advisorは全くクラウドに送信されず、追加でリンクを渡すためには

  1. 静的なインジケータ名を呼び出しに使用することで、コンパイラが自動的にエキスパートの依存関係を規定することができます。
  2. 依存関係のリストを手動で構築するために必要な指標のリストをプロパティを通じて明示的に規定する。

ダイナミックインジケーターコールを 使用する場合、使用するインジケーターの リストを手動で規定する必要があります。サードパーティテストを実行する場合、すべての依存ファイルはExpert Advisorと一緒に送信されます。これらは、ローカル(いずれにせよ端末の外にある)、およびリモートまたはクラウドのエージェントの両方が可能です。

これは、「スタートを押せば何も考えず、すべて自動で動く」ということの代償なのです。

Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
Renat:

要は、MT5テスターのEAはターミナルの外で動くので、MT4が持っていたライブラリ環境がすべて揃っているわけではありません。

これは、「スタートを押せば何も考えず、すべて自動で動く」ということの代償なのです。

これは理解できるのですが、一方で、いつもの効果的な柔軟性が失われているため、ユーザーからは定期的に反論の声が上がっています。実際には、静的なバインディングモデルしか実装していないのですね。そして、ダイナミックリンクも求められています。クラウドに送られたものがカウントされ始め、突然外部のタレットにアクセスしたとしても、端末からエージェントに渡された他の環境と同様に問い合わせ、取得することができるというものです。まあ、声を大にして思っただけなんですけどね。この質問はしていません ;-)。
 

この質問はすでにされているかもしれませんが、フォーラムで見つけられませんでした。

以下のコード(test()メソッド内)で、オブジェクトに定数記述子(参照)を取り、定数でないものに代入しても、コンパイラ(MetaEditor 5.00, Build 687)ではエラーが発生しない。

class A{
   public:
      void someDo() {}
};

class B{
   public:
      void B( A* aA ) : mA( aA ) {}
      const A* getA() { return (mA); }   
   private:
      A* mA;
};

void test(){
   A a;
   B b( GetPointer( a ) );

   //Ошибки нет. И это правильно   
   const A* a1 = b.getA();
   //Ошибка есть: "...someDo' - call non-const method for constant object..". И это правильно   
   a1.someDo();
   
   //Ошибки нет. Это НЕ правильно(CONST A* B::getA())!
   A* a2 = b.getA();
   //ошибки нет. Правильно (а2 не const)
   a2.someDo();
}
 
mvk:

この質問はすでにされているかもしれませんが、フォーラムで見つけられませんでした。

以下のコード(test()メソッド内)において、オブジェクトの定数記述子(参照)を取得し、定数でないものに代入しても、コンパイラ(MetaEditor 5.00, Build 687)ではエラーが発生しない。

というのは、エラーがなければ、このようになります。

class A{
   public:
      void someDo() const {};
};
 

オブジェクトポインタの速度について開発者に質問します。


なぜ、最初のコード

class CSomeObj
{
public:
   double prm;
};

CSomeObj arr;

void OnStart()
{
        EventSetTimer(1);

        uint s0=GetTickCount();
        for (int i=0; i<100000000; i++) arr. prm=10;
        Print("1=", GetTickCount()-s0);
        
        s0=GetTickCount();
        CSomeObj *item=GetPointer(arr);
        for (int i=0; i<100000000; i++) item. prm=10;
        Print("2=", GetTickCount()-s0);
}

は2倍の 速さで動作するのですか?

2012.08.21 09:56:40 info (EURUSD,D1) 2=1654
2012.08.21 09:56:38 info (EURUSD,D1) 1=795

高速化するための最適化は可能ですか?