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

 
voix_kas:

EAを使用するには、インジケータへのアクセスが必要です。IndicatorCreate(...)やiCustome(...)、あるいは標準的なインディケータであればiMA(...)など、少なくとも3つの方法で取得することが可能です。

私の理解では、任意のバリアントを使用する場合、結果のハンドルを明示的に解放(IndicatorRelease)する必要があります。

インジケーターの呼び出し方の 選択についての質問です。それぞれの方法の長所と短所は何ですか?処理速度の優先的な関心。

IndicatorCreate - 標準的な指標のために、手首の場合、彼らはiMAの呼び出しのアナログであるように。iCustom - "カスタム "カスタムインジケータ用。つまり、本質的に異なるものです。

iMAとIndicatorCreate(IND_MA)の呼び出し速度は同等であるべきですが、確認していません。

IndicatorReleaseについては、計算後にこのインディケータに戻る必要がないのであれば、これを呼び出すことは理にかなっています。そのような状況はありません。もし、ある指標が(与えられたパラメータセットで)必要であれば、それは追加の計算/再計算のために必要となり、もしスクリプトの入力パラメータが変われば、すべてが再初期化され新しいハンドルが作成されるでしょう。

 

実際、IndicatorReleaseの呼び出しは 99%プログラマー側の論理的なエラーです。

インジケーターの作成は最もコストのかかる作業の一つであり、その計算には非常に深いメカニズムが必要である。インジケータ・ハンドルを閉じようとするのも、その実装の実際のプロセスを考えると、非常にコストのかかる操作である。指標の作成と終了が頻繁に行われるのは、開発者が運用の本質を全く理解していないことを示しています。

とてもわかりやすいと思います。

Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
Документация по MQL5: Доступ к таймсериям и индикаторам / IndicatorRelease
  • www.mql5.com
Доступ к таймсериям и индикаторам / IndicatorRelease - Документация по MQL5
 
Renat:

実際、99%のケースでIndicatorReleaseの呼び出しは プログラマー側の論理的なエラーとなる。

インジケーターの作成は、それを計算するための非常に深いメカニズムを誘発する最も高価な操作の1つである。インジケーターのハンドルを閉じようとするのも、その実装の本当の根本的な処理を考えれば、非常にコストのかかる操作です。指標の作成と終了が頻繁に行われるのは、開発者が運用の本質を全く理解していないことを示しています。

とてもわかりやすいと思います。

話に割り込んで言わせてもらうと、mプログラム、ターミナル、FXの仕組み(実際、なぜここに集まっているかというと)

私たちがここにいる理由は単純な真理ですから、それを理解してルーブルを刈ること、つまり私たちが売ろうとしているソフトを妨げるものはありません。

そして、その可能性がないのであれば、「奇跡」が起きるまで黙っているしかないのです !

 
Im_hungry:

話に割り込んで言わせてもらうと、プログラムの仕組み、端末、FX(基本的に何のためにあるのか)。

奇跡」が起きるまで、黙っているべき!

理解しがたい思考の流れの美しい例です。そんな能力がうらやましい。
 
Renat:
理解しがたい思考の流れが美しい例です。それができるのはうらやましい限りです。

確かにレベル80のジェダイ、マスター・ヨーダは傍らで静かに瞑想していますね :)

そして、「困ったときの家なき子助け」(椅子12個分より)であることは間違いない。

 

少し前に、私の作業用コードがコンパイルされなくなりました。

標準ライブラ リのコードを非難しているのです。

'GetLastError' - ambiguous call to overloaded function with the same parameters SymbolInfo.mqh  718     10
'GetLastError' - ambiguous call to overloaded function with the same parameters	SymbolInfo.mqh	725	57
どうやら私のコードの中にあるものが原因らしい。
#import "kernel32.dll"
uint GetLastError();
#import
.....
kernel32::GetLastError() 
.... 

これをどう "消化 "すれば、またプログラムが動くようになるのか?MQLの新しいビルドで何が変わったのかよくわからない。

インポートした関数は、組み込み関数と同じ名前にすることはできないのですか?人生を歩んでいくには?

 
7134956:

どうすればこれを「消化」して、プログラムが再び機能するようになるのか?MQLの新ビルドで何が変わったのか、よく理解できません。

の中にパラメータを追加するだけです。

#import "Kernel32.dll"
uint GetLastError(int);
#import
 
sergeev:

の中に簡単なパラメータを追加します。

ありがとうございました。助かっているようです。でも、冗長なパラメータを渡すのは、なんだか窮屈な感じがします。
 
機能やオートバグと考えよう。
 
sergeev:
機能、オートバグと考えましょう。

それを取り出して、名前を変えて別のライブラリに包むことができます。

名前付きスペースを要求してみるという手もありますが、おそらく無駄でしょう。