C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
全てはカスタムインジケータの ロジックに依存します。原理的には、1日に1回、それ以外の刻みをスキップして値を再計算することができます。いわば作者の意向に沿って。
基本的に、iCustom経由でインジケーターのコピーを作成し、必要なデータをコピーし、インジケーターのコピーを削除するという怪しげな方法をとろうとする人がいます。必要に応じて、この手順を繰り返します。
OnTimer()関数もありますが、私自身は扱ったことがありません。
ありがとうございます。そう思っていました。OnTimerは適さない。
インジケーターがM5になっていても、1時間に1回呼ばれるなどの状況があります。1時間に1回呼び出すために、Expert Advisorでは5分ごとにアイドル状態でインジケータが計算されることが判明しました。そのため、インジケータの再計算を一時停止することはできないかと考えています。
インジケーターがM5になっていても、例えば1時間に1回呼ばれる状況もある。1時間に1回呼び出すために、Expert Advisorでは5分ごとにダラダラとインジケータが計算されることが判明しました。
1時間単位でも計算するようにインジケータを書き換えることはできますか?
M5で取引が行われています。なお、この指標がいつ呼ば れるかは不明です。2時間に1回かもしれないし、1時間に3回かもしれない。取引判断の確認に使用する指標です。
こんにちは、教えてください。
1)TRADE_RETCODE_LOCKED、TRADE_RETCODE_FROZENの ようなエラーや、リクエストがブロックされた場合、ポジションや注文がフリーズ した場合、どのように対処すればよいですか?
2)また、TRADE_RETCODE_INVALID_FILLは、どの ような場合に発生するのでしょうか。
こんにちは、教えてください。
1)TRADE_RETCODE_LOCKED,TRADE_RETCODE_FROZEN のようなエラーで、リクエストがブロックされたり、ポジションや注文が凍結された場合はどうすればよいですか?
2)また、TRADE_RETCODE_INVALID_FILLは どうすればいいのか、どのような場合に発生するのか。
1) フォーラム検索を確認する。1年ほど前にも話題になりました。
2)ENUM_ORDER_TYPE_FILLING のリファレンスを参照する。おそらく、指定された「執行注文タイプ」の取引要求と執行モードが不一致で、指定されたリターンコードが発生するのでしょう。
例えば、ORDER_FILLING_FOKや SYMBOL_TRADE_EXECUTION_MARKETなどです。
iCustomでインジケータを起動した場合、1tick毎に計算されているのではないかという疑念があります。そして、CopyBufferを介した呼び出しに依存しない。これでいいのでしょうか?
もしそれが正しいのであれば、インジケータの計算を無効にして、CopyBufferを呼び出す前だけ有効にすることは可能でしょうか?
もし私が正しく理解しているなら、iFractalsのヘルプにある例(OnCalculateの 複数の条件を参照)を参考に、次のティックでの計算を制限してみてはいかがでしょうか?
おそらく、OnCalculateで 必要なすべてのバーのインジケータ計算の初期実行のフラグを立て、ターミナルのサーバー時間を確認し、それが起こった後、フラグをfalseにリセットし、それによって再計算を可能にし、再びtrueに設定することもできるだろう...。といった具合に。
あるいは、計算を伴う外部関数を 書き、OnInitでそれを呼び出し、インジケータの最初の起動時に一度だけ実行し(TFの変更時など、ユーザー主導で行われる)、次にOnCalculateで 同じ関数を二度目の 方法で呼び出します(サーバー上で指定した時刻に、フラグ立てによって)。
しかし、最初の方法は良いもので、毎ティックごとに完全な再計算でプロセッサに負荷をかけない(しばしば新しい結果をもたらさない)だけでなく、与えられた時間間隔で完全な再計算も行わず、最新のバーだけを計算します(毎ティックなら新しいものを一つ、t回ならその間に蓄積されたいくつかのバー)...このバージョンは個人的に確認する方が良いですが、私は間違っている可能性があります...。また、すべてはインジケーターの具体的な目的によって決まります。大きな、あるいは市場全体の履歴に依存するのであれば、全体の履歴の再計算をなくすことはできない。
冗談のユーモアがわからなかった(指標を書くこと、違いはないが)。
エラーや警告を出さずにコンパイルします。
1つのエラーと0つの警告で コンパイルされました: 'elements' - 無効なインデックス値です。
ここで、当たり前の常識を覆すことができるでしょうか。
ここで、当たり前の常識を覆すことができるでしょうか。
配列の要素 数を定数で指定します。
要素数があらかじめわからない場合は、ArrayResize を用いて変数を用いてサイズを設定する。
これはc++の基本中の基本です。
だから、どちらか