C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
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();
}
インジケーターハンドルの取得時に、呼び出すインジケーター名が変数に含まれているとエラーになるのですが、なぜか教えてください。
というか、こんなエラーはない。
このように、エラー4802 (Indicator cannot be created)が発生します。
tester_indicatorについては、こちらを ご覧ください。
何度も何度も読み返しています。))でも、必要なものが手に入らないんです。そして、インジケーターの名前を変数に設定する必要があります。
では、プロパティtest_indicatorを追加しましたか?これがなかったら、やっていけなかったと思います。
試してみました。何かこう、うまくいかないんですよね。例を示してもらえますか(私のやり方が悪いのかもしれませんが)。
P.S. うまくいきました。これ以上ないほどシンプルです。休養のためのオフ。))
P.S2. しかし、私はプロパティtest_indicatorを通じて すべての指標を登録しなければならないという事実に依存を得る。つまり、外部パラメータでインジケータ名を指定し、ユーザーが新しいインジケータを持つ場合、再度コードを開く必要があります。これは、私たちが望んでいるものとはちょっと違う。
P.S2. しかし、すべてのインジケータをtest_indicator プロパティで 記述しなければならないという依存関係がまだ残っています。つまり、外部パラメータでインジケータ名を指定し、ユーザーが新しいインジケータを持つ場合、再度コードを開く必要があります。これは、私たちが望んでいるものとはちょっと違う。
5ではこうなっています。私自身は、他のいくつかのインデックスをランダムに選んでインデックスを構築するのに使いました。もしかしたら、開発者の方が教えてくれるかもしれませんね。
MT5テスターのEAはターミナル外で起動するため、MT4にあったライブラリ環境がすべて揃っていないことです。
例えば、Expert Advisorは全くクラウドに送信されず、追加でリンクを渡すためには
ダイナミックインジケーターコールを 使用する場合、使用するインジケーターの リストを手動で規定する必要があります。サードパーティテストを実行する場合、すべての依存ファイルはExpert Advisorと一緒に送信されます。これらは、ローカル(いずれにせよ端末の外にある)、およびリモートまたはクラウドのエージェントの両方が可能です。
これは、「スタートを押せば何も考えず、すべて自動で動く」ということの代償なのです。
要は、MT5テスターのEAはターミナルの外で動くので、MT4が持っていたライブラリ環境がすべて揃っているわけではありません。
これは、「スタートを押せば何も考えず、すべて自動で動く」ということの代償なのです。
この質問はすでにされているかもしれませんが、フォーラムで見つけられませんでした。
以下のコード(test()メソッド内)で、オブジェクトに定数記述子(参照)を取り、定数でないものに代入しても、コンパイラ(MetaEditor 5.00, Build 687)ではエラーが発生しない。
この質問はすでにされているかもしれませんが、フォーラムで見つけられませんでした。
以下のコード(test()メソッド内)において、オブジェクトの定数記述子(参照)を取得し、定数でないものに代入しても、コンパイラ(MetaEditor 5.00, Build 687)ではエラーが発生しない。
というのは、エラーがなければ、このようになります。
オブジェクトポインタの速度について開発者に質問します。
なぜ、最初のコード
は2倍の 速さで動作するのですか?
2012.08.21 09:56:40 info (EURUSD,D1) 2=1654
2012.08.21 09:56:38 info (EURUSD,D1) 1=795
高速化するための最適化は可能ですか?