エキスパート: GlobalVariable

 

GlobalVariable:

このエキスパートアドバイザはグローバル変数の使用例をデモンストレーションします。エキスパートアドバイザの課題は、グローバル変数の計算結果を保存し、新しい初期化の際にグローバル変数を取得することです。

作者: Karputov Vladimir

 
グローバル変数を持って、グローバル変数を保存して、それで何?申し訳ないが、何も理解できない。なぜこんな変数が必要なんだ?
 
spbkit:
グローバル変数を取得して、グローバル変数を保存して、それで何?申し訳ないが、何も理解できない。なぜこんな変数が必要なんだ?

申し訳ない。この例は、フォーラムのメンバーの一人のリクエストに応えて作成されました:ターミナルのグローバル変数を扱う例が必要だったのです。ターミナルのグローバル変数は ターミナルをリロードした後に値を保存します。

 

ありがとう!しかし、MT4では動作しませんでした。このサンプルコードをMT4に適応させるためのアドバイスをいただけますか?

 
Aleksandr Glebov:

ありがとう!しかし、MT4では動作しませんでした。このサンプルコードをMT4用にうまく適応させる方法をアドバイスしていただけませんか?

ファイルの拡張子を*.mq5から*.mq4に変更するだけで十分です。
 
明確な例ではないが...。適用する機会がない...。また、2つの変数(2つの価格水準)を保存する方法も明確ではない...?
 
Aleksandr Glebov:
明確な例ではないが...。適用する機会がない...。 また、2つの変数(2つの価格レベル)を保存する方法も明確ではありません...?

何がうまくいかなかったのか、教えてください。

Aleksandr Glebov:
例が明確でない...。私はそれを適用することができなかった...。そして、2つの変数(2つの価格水準)をどのように保存するのかが明確でない...?

OnInit()、OnTick()、OnDeinitのどれで値を保存しますか?

 
Karputov Vladimir:

何がうまくいかなかったのか、教えてください。

OnInit()、OnTick()、OnDeinitのどの場所で値を保存したいですか?

私はOnTick()で値を保存し、OnInit()で値を取得しようとしましたが、うまくいきませんでした。OnTick()でGlobalVariableSet("OER", OER );を保存し、OnTick()で、最初の条件として、注文が0より多ければ、OER = GlobalVariableGet("OER")とします。OER変数は、リロード時にゼロにリセットされません。しかし、通常の操作で注文がオープンされるとすぐに、必要な変数は前のグローバル 変数の条件を取ります...。OnInit()から値を取得しようとする必要があるのでしょうか...?
 
Aleksandr Glebov:
OnTick()で値を保存し、OnInit()で値を取得しようとしましたが、うまくいきませんでした。OnTick() - GlobalVariableSet("OER", OER ); で保存し、ここで、OnTick() の一番最初の条件 - 注文が0より多ければ、OER = GlobalVariableGet("OER").これで、OER変数はリロード時にリセットされません。このコードの書き方は正しいと思いますか?
グローバル変数に 価格を保存する目的は何ですか?何を実装したいのですか?動作のアルゴリズムは?
 
Karputov Vladimir:
グローバル変数に 価格を保存する目的は?何を実装したいのか?動作のアルゴリズムは?
リロード時に2つの変数がリセットされ、そのためにロード時にフクロウが正しく動作しません。このような場合のために、これらの変数を保存する方法を学ぶ必要があります(ロード時に注文がある場合は、glob.のデータを使用します)。
 
Aleksandr Glebov:
リロードすると、2つの変数がゼロにリセットさ れ、そのせいでロード時にEAが正しく動作しません。このような場合のために、これらの変数を保存する方法を学ぶ必要があります(ロード時に注文がある場合は、glob.のデータを使用します)。

OnDeinit()に、グローバル変数を 上書きする必要があるかどうかという条件を書いてください。

一般的に、私は再び尋ねる:「アクションのアルゴリズムは何ですか?現時点ではヒープ・マラだ。何が必要かを理解しない限り、それを実装することはできないということを理解してください。フローチャートを描いてみてください。