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

 
プロフィールにずっと前の電話番号があったので、変更したいのですが、古い番号にSMSで確認が必要です、どうしたらいいですか?
 
BlackTomcat:
もちろん、私は多くのことを理解しているわけではありませんが、何らかの理由で、異なる「マスター」が作成したインジケータのコピーは、同じパラメータで、1つの同じチャートに適用しても、異なるハンドルになるのだと思います。原則的に、彼らは既に存在するインジケーターのコピーについて知らないし、知るべきでもない。描画するときは、単に重なり合うだけです。
私が間違っているかもしれません。しかし、論理的には前項で書いたように、そうでなければならないのです。

確かに私はMQの開発者ではありませんが、この処理を説明された限りでは、Fiveはインデックスの効果的なキャッシュを行っているので、常に「同じ」インデントが1つだけ存在し、複数の「マスター」がそのリンクを取得することになるのでしょう。ハンドルは違うかもしれませんが(確認していません)、中身は同じものでしょう。誰も「すでに存在するコピーについて知っているはずだ」とは言っていないのですが......憶測で物を言わないでください。もちろん、「ホスト」以外は自分のインジケータを知りませんし、インジケータについては、異なる「ホスト」からの参照カウントが維持されていますが、ホストを知っているわけではありません。

実践でわかるように、ロジックには個人差があります。例えば、私の論理とMQの論理は一致しないことが非常に多いのですが、ここでは私が彼らから聞いたことを話しているだけです。

 
Stanislav Korotky:

確かに私はMQの開発者ではありませんが、この処理を説明された限りでは、Fiveはインデックスの効果的なキャッシュを行っているので、常に「同じ」インデントが1つだけ存在し、複数の「ホスト」がそのリンクを取得することになるのでしょう。ハンドルは違うかもしれませんが(確認していません)、中身は同じものでしょう。誰も「すでに存在するコピーについて知っているはずだ」なんて言ってないのに......憶測で物を言わないでください。もちろん、「ホスト」以外は自分のインジケータを知りませんし、インジケータについては、異なる「ホスト」からの参照カウントが維持されていますが、ホストを知っているわけではありません。

実践でわかるように、ロジックには個人差があります。例えば、私の論理とMQの論理は一致しないことが非常に多いのですが、ここでは私が彼らから聞いたことを話しているだけです。

確かに、あなたが書かれていることは、そのままDocumentationに書かれています。

iMA、iAC、iMACD、iIchimokuなどのすべての機能は、クライアント端末のグローバルキャッシュに適切なテクニカルインディケータのコピーを作成します。これらのパラメータを持つインジケータのコピーが既に存在する場合、新しいコピーは作成されませんが、このコピーへの参照のカウンターは増加します。
ただ、「グローバルクライアント端末キャッシュ」には、例えばテスターも含まれるのでしょうか?なぜなら、ターミナル(口座上)とストラテジーテスター(履歴上)で、同じExpert Advisorを同じ指標で同時に実行することができ、その計算バッファが同一になるかどうかがわからないからです。クライアント端末に蓄積された履歴の深さを計算すれば、できるのですが。
 
A100:

実行中にエラーが発生するソースプログラムに近いテストスクリプトを何とか作ることができた

結果: 'Script2.mq5'の関数ポインタ呼び出しが無効でした。

ビルド1405エラー自体は残っています - プログラムの別の部分に移動しました - 後で対処します

しかし、以前にはなかった新しいものが登場した

typedef int (*fn)();
class A {
public:
        A() { a = &this; ::ArrayResize( f, 1 ); f[ 0 ] = f0; }
        virtual int g0() { return 0; }
        static  int f0() { return a.g0(); }
        static A* a;
        fn f[];
};
A* A::a;
void OnStart() { A b; }
結果:不正なEX5ファイル (8)
 
デバッグ時にShift+F9の配列要素を 表示させるには?
 
fxsaber:
デバッグ時にShift+F9の配列要素を 表示させるにはどうすればよいですか?
配列要素の表示には未対応
 
Renat Fatkhullin:

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

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

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

IndicatorCreateの代わりにiCustomを使用する場合、ユーザーはIndicatorReleaseの責任を普遍的な(したがって、最適ではない)開発者のソリューションにシフトするというのは正しい理解でしょうか。

作成した指標を一定時間保存し、ある頻度で呼び出すもの。しばらく呼び出されないと、強制的にIndicatorReleaseが行われる。そうだろ?

つまり、iCustomは実装の複雑さとパフォーマンスの黄金比を考慮した上で、最適に使用されるべきなのです。しかし、あなたが最高の速度をしたい場合は、より良い(普遍的ではない)指標の独自の高速なアルゴリズムを作成し、IndicatorCreateを通じてすべてをやろうとすると、それらの使用の特殊性を知っている。

ちゃんと理解できたかな?

 
fxsaber:

IndicatorCreateの代わりにiCustomを使用すると、IndicatorReleaseの責任を開発者の普遍的な(したがって、最適ではない)ソリューションに移行するというのは正しい理解でしょうか?

作成した指標を一定時間保存し、ある頻度で呼び出すもの。しばらく呼び出されないと、強制的にIndicatorReleaseが行われる。そうだろ?

つまり、iCustomは実装の複雑さとパフォーマンスの黄金比を考慮した上で、最適に使用されるべきなのです。しかし、あなたが最高の速度をしたい場合は、より良い(普遍的ではない)指標の独自の高速なアルゴリズムを作成し、IndicatorCreateを通じてすべてをやろうとすると、それらの使用の特殊性を知っている。

ちゃんと理解できたかな?

いいえ、そんなことはありません。

この2つの機能は絶対的に同等です。どちらの関数もインジケーターハンドルを返す

 
Slawa:

いいえ、違います。

両者の機能は絶対的に同等です。どちらの関数もインジケーターハンドルを返す

IndicatorReleaseはiCustomの後に行うべき?

基本的には、MT4のEAをMT5で動かすことは十分可能であることがわかりました。内部で他の指標を使用しない人にとっては - 非常に簡単です。それを使う人は、MT4-iCustomのストレージのアナログを作るのです。データ未整備の問題も十分考えられる。

このようなアダプタを書けば、どんなMT4-indicatorでもMT5で正常に動作するようになります。しかし、この場合、ニコライ・コシチェンは 職を失うことになる...。いや、やめたほうがいい。

 
fxsaber:

IndicatorReleaseはiCustomの後に行うべき?

基本的には、MT4のEAをMT5で動かすことは十分可能であることがわかりました。内部で他の指標を使用しない人にとっては - 非常に簡単です。それを使う人は、MT4-iCustomのストレージのアナログを作るのです。データ未整備の問題も十分考えられる。

このようなアダプタを書けば、どんなMT4-indicatorでもMT5で正常に動作するようになります。しかし、この場合、ニコライ・コシツェン 氏は職を失うことになる。いや、むしろそうしたい。

そういえば、ドキュメントには、OnInit関数で指標ハンドルを初期化(作成)し、OnDeinit関数でIndicatorReleaseを実行するのが最も正しい方法と書いてありましたね。これは、Expert Advisorが実行されている間、指標ハンドルが関連するままであることを意味します。