MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1591

 
Maxim Kuznetsov:

mqlのstaticでは、すべてが実行され、エラーに満ちている。コードは常に全体としてビルド/コンパイルされ、中間 obj はなく、static の宣言は伝統への賛辞に過ぎないのです。

mqlでstaticを使うとしたら、それはほぼ100%C/C++/C#の世界からのもので、あるいは、覗き見してとんでもない真似をしたものです :-)。

しかし、__thread__もあります :-)

関数ではなく、モジュールの中でstaticを書くのであれば、イエスです。コーダーは自分が何をしているのか分かっていない可能性が高い。:)また、関数のローカル変数や、クラスメソッドのローカル変数、クラスフィールドなどについては、非常に有用なものだと思います。

そして、静的 変数の概念を誤解 し、結果として間違った使い方を することでミスが発生することもあります。
 
MakarFX:

つける

は役に立たなかった) どこに置いても)

 
Mihail Matkovskij:

関数内ではなく、モジュール内にstaticを記述する場合は、イエスです。コーダーは何をやっているのかわからないのでしょう。:)また、関数のローカル変数や、クラスメソッドのローカル変数、クラスフィールドなどについては、非常に有用なものだと思います。

単純な命名衝突を解決する方法は、コンパイラはスコープと悪態を知らないので、エンティティにm_ a_ bullshitを追加することです。

独立した2人のプログラマーが、関数、クラス、グローバル変数に同じ名前を付けるべきではありません。また、メソッドや関数のパラメータは一意でなければなりません。ローカル変数もそうであるべきです。

静止画はありません :-)

すみません、勘違いしてました。

 
законопослушный гражданин:

どこに置いてもダメでした)

コードを理解したいのであれば、EAがどのような条件で何をするのか、そのロジックに目を通してください。

初心者の方にもわかりやすく、アドバイザーの全体像を説明しました。

法律を守る市民」としてEAを書いてもらいたい場合はこちらへ

 
Maxim Kuznetsov:

単純な命名の衝突を解決する方法は、コンパイラがスコープを知らないので、エンティティにm_ a_ bullshitを追加して、悪態をつくことです。

独立した2人のプログラマーが、関数、クラス、グローバル変数に同じ名前を付けるべきではありません。また、メソッドや関数のパラメータは一意でなければなりません。ローカル変数もそうであるべきです。

静止画はありません :-)

すみません、勘違いしてました。

タスクは別にして、名前空間の衝突を解決するためだけに静的変数を使うことは、もちろんしてはいけません(でも不正確ですね... :))。しかし、例えば、あるクラスのオブジェクトが何個作られたかを記録することはできます。また、静的定数、とても便利なものです。静的メソッドなど もちろん、静止画でなくてもかまいません。しかし、これらはすべて、さまざまな要因に左右されます。目の前にある課題とその解決方法。まあ、もちろん、そもそもプログラマーが プログラミングの概念を理解しているかどうかにかかっているんですけどね。

 
Mihail Matkovskij:

タスクは様々で、名前空間の衝突を解決するためだけに静的変数を使用することは確かに良いアイデアではありません(しかし不正確です・・・ :))。しかし、例えば、あるクラスのオブジェクトが何個作られたかを書き出すことはできます。また、静的定数、とても便利なものです。静的メソッドなど もちろん、静止画でなくてもかまいません。しかし、これらはすべて、さまざまな要因に左右されます。目の前にある課題とその解決方法。もちろん、プログラマーが プログラミングの概念を理解しているかどうかが、そもそもの問題ですが。

今度はライブラリを取ってきて、#includeして...。

いきなりコンフリクトが発生しますよ。理由は、あなたと著者が一心同体で二人の合理的な人間として言及しているからです。単純なEAでは、ダブルSLを入力する-と警告が多い。

もし、ストップロスと呼ばれ、その通りの意味であれば、誰とも(メソッドのパラメータ名とも)一致しないことを保証するために、一体どのようにストップロスと名づければいいのでしょうか?

おおっ!解はinp_SL...そしてm_SL、a_SLは視認性から...。は、開発者がメタデータや定義域をネームでドラッグできるようにします。

怒るところではない・・・。

 
Maxim Kuznetsov:

さて、いくつかのライブラリを持って、自分自身に#include...

いきなりでは、いろいろな衝突が起きるでしょう。あなたと筆者の2人の合理的な人が、1つの同じものを1つの同じものとして言及したからといって。単純なEAでは、ダブルSLを入力する-と警告が多い。

もし、ストップロスと呼ばれ、その通りの意味であれば、誰とも(メソッドのパラメータ名とも)一致しないことを保証するために、一体どのようにストップロスと名づければいいのでしょうか?

おおっ!解はinp_SL...そしてm_SL、a_SLは視認性から...。は、開発者がメタデータや定義域をネームでドラッグできるようにします。

怒るにも程がある...

文字列のライブラリは、満足できるものが少ないので、ほとんど使っていません。自分で作るのが好きなんです。でも、すでに何度も考えられて いることを作る必要がある場合に限り、サードパーティのライブラリを使うことができるんです。そして、そのようなサードパーティライブラリは、しばしば手を加えなければなりません(例えば、突然エラーが現れたり、必要な関数やメソッドが足りなかったりします)。また、このようなコンフリクトが多い場合は、他の図書館を探した方が良いと思います。あるいは、極端な話、自動置換で名前を変えてもいい。でも、私ならやりません。

 
MakarFX:

コードを理解したいのであれば、EAのロジックがどのような条件で何をするのか、すべて調べてみてください。

初心者の方にもわかりやすいように、EA全体をわかりやすくしましたので、わからないことがあれば聞いてください。

EAを書いてもらいたければ、「遵法市民」の ように、ここに 行けばいいのです。

いや、そうじゃなくて、自分で考えたいんです。

MQLQLハンドブックは私とは違う言語で書かれているので、理解できないところもありますが、Expert Advisorは説明されています、ありがとうございました。

 
Maxim Kuznetsov:

さて、いくつかのライブラリを持って、自分自身に#include...

いきなりでは、いろいろな衝突が起きるでしょう。あなたと筆者の2人の合理的な人が、1つの同じものを1つの同じものとして言及したからと言って。単純なEAでは、ダブルSLを入力する-と警告が多い。

もし、ストップロスと呼ばれ、その通りの意味であれば、誰とも(メソッドのパラメータ名とも)一致しないことを保証するために、一体どのようにストップロスと名づければいいのでしょうか?

おおっ!解はinp_SL...そしてm_SL、a_SLは視認性から...。は、開発者がメタデータや定義域をネームでドラッグできるようにします。

怒るにも程がある...

どうやら迷惑なようです...))他人の大きなバイナリコードをプログラム本体に挿入する意味が全くわからない。それらは実際の指示を必要とするか、あるいはまず分解して理解する必要がある)))

プロジェクト 内のユニークな接頭辞の生成者は、私たちのすべてです)))

 

なんでみんな名前に矛盾があるとか言ってるのか理解できないんだけど......?手続き型プログラミングのことだろう...。私の知る限り、このようなコンフリクトが複数ある場合、接頭辞で簡単に解決できます。それだけなんですけどね...。なぜ、ここまで書かなければならないのか...?:)

それに、ずいぶん前に開発者が名前空間というものを追加したんです。第4弾は知りませんが、第5弾はずっと持っています。だから、そんなに大きな問題はないと思います。