記事"MQL5をプログラミングの基礎: ターミナルのグローバル変数"についてのディスカッション

 

新しい記事 MQL5をプログラミングの基礎: ターミナルのグローバル変数 はパブリッシュされました:

ターミナルのグローバル変数は、高度で信頼性の高いEAを開発するために欠かせないツールです。グローバル変数なしで MQL5で EA の開発をすることは想像を絶します。

スクリプトを実行し、ターミナルからグローバル変数ウィンドウを開きます。ウィンドウには、「テスト」という名前の新しい変数と 1.23 (図4) の値があるはずです。

 
図4。新しい「テスト」変数とグローバル変数ウィンドウのフラグメント

作者: Dmitry Fedoseev

 

模範的な記事!

Глобальные переменные терминала — незаменимое средство при разработке сложных и надежных экспертов. Освоив работу с глобальными переменными терминала, вы уже не сможете представить себе создание экспертов на MQL5 без их использования.

私はどうにかグローバル ターミナル変数 なしでやっている。グローバルターミナル変数が必要なタスクはない。

 
fxsaber:

模範的な記事!

どういうわけか、私はグローバル ターミナル変数 なしでやっている。グローバル変数が必要になるような作業はない。

まあ、ファイルへの書き込みとその読み込みを除けば、それなしにはできない瞬間があることは確かだが、これは多くのタスクで非常にリソースを消費する。


Dmitry Fedoseev:
グローバル・ターミナル変数を、よく知られたグローバル・プログラム変数(図2)と混同しては いけません。

jsやphpという言語では、glob.terminalは個々の端末の環境でのみ動作し、ドメイン内で動作する。


 
Vitaly Muzichenko:

まあ、ファイルへの書き込みとその読み込みを除けば、それなしでは不可能な場合もあるとしよう。しかし、これは多くのタスクにとって非常にリソースを消費するものであり、そこでグローバル・ターミナルの出番となる。

いや、私が言いたかったのは別のことだ。TCとのやりとり-そんなタスクはなかった。

 
Vitaly Muzichenko:

...

jsとphpという言語で何が置き換えられないのか、ここに疑問があるのは確かだ。

そうなんですね、それは思いつきませんでした。それは良いことだ、それは理にかなっている(クッキーを使用するときにいくつかの手間を考慮し、グローバル変数を 使用するときに完全に存在しない)。

 
fxsaber:

いや、そういう意味ではない。TCの相互作用 - そのようなタスクはありませんでした。

最も単純な例として、Expert Advisorがあり、時間内に何かをする必要があります。glob.variablesを使用しない場合、端末のリブート後に時間の制御を完全に失い、そのイベントが最後に実行されたのはいつか分からなくなる。

また、一般的に応用範囲は非常に広く、先に書いたように、これがないとどうしようもない場合もある。

 
fxsaber:

模範的な記事!

私はどうにかグローバル ターミナル変数 なしでやっている。それが必要なタスクはない。

ストップ・リバーサル戦略 - ストップロスの成行注文で、数量を増やしたストップ注文がある。しかし、乗算係数は1.4であり、すべての乗算が実際にロットを増加させるとは限らない(ロットを正規化する必要があるため)。ここでは、MathPow()によってのみカウントすることができ、これは初期ロットと注文インデックスが必要であることを意味します。

履歴を参照することもできますが、それでも最初の注文は何らかの方法でラベル付けされなければなりません。

グローバル変数がない場合はどうするのでしょうか?

 

目次のリンクをクリックしてください:

このようなページに移動します:


 
Dmitry Fedoseev:

ストップ・リバーサル戦略 - ストップロスの成行注文で、出来高増加のストッパーがあるため、利益が出るまでリバーサルを実行し、ロットを増加させる。しかし、乗算係数は1.4であり、すべての乗算が実際にロットを増加させないような係数である(ロットを正規化する必要があるため)。ここでは、MathPow()を通してのみカウントすることができ、これは初期ロットと注文インデックスが必要であることを意味します。

履歴を参照することもできますが、それでも最初の注文は何らかの方法でラベル付けされなければなりません。

グローバル変数がない場合はどうするのでしょうか?

マジックです。
 

私がこの記事に期待したのは、説明だった:

-- グローバル変数が どこにどのように保存されているか(メモリ上、ディスク上)

-- グローバル変数の読み込み頻度

-- などである。

残念ながら、これらの質問に対する答えは記事にはなかった。

 
Vitaly Muzichenko:

最も単純な例として、Expert Advisor があり、時間通りに何かを実行する必要があります。glob.variablesを使用しない場合、ターミナルを再起動した後、時間の制御が完全にできなくなり、イベントが最後に実行されたのがいつか分からなくなる。

また、一般的に応用範囲は非常に広く、先に書いたように、これがないとどうしようもない場合もある。

そう、このような環境ではグローバル変数が 理想的なのだ。ただ、TSやインジケーターを書くときに、ターミナル・レベルで何かを記憶しておく必要があるような作業はなかった。

だから、このような発言には少々驚きました。

グローバルターミナル変数は、複雑で信頼性の高いExpert Advisorを開発する際に 欠かせないツールです。グローバル・ターミナル変数の使い方をマスターすれば、MQL5でエキスパート・アドバイザーを作成する際に、グローバル・ターミナル変数の使用なしには考えられなく なるでしょう。

グローバル変数、グラフィカルオブジェクト、ファイルについてはそれなりに知っている。しかし、それら(あるいは他の何か)を使ってTSのために何かを覚えたことはない。TCは信頼性が高く、かなり重かったが。