"ダミー "からの質問 - ページ 66

 
Yedelkin:

全てはカスタムインジケータの ロジックに依存します。原理的には、1日に1回、それ以外の刻みをスキップして値を再計算することができます。いわば作者の意向に沿って。

基本的に、iCustom経由でインジケーターのコピーを作成し、必要なデータをコピーし、インジケーターのコピーを削除するという怪しげな方法をとろうとする人がいます。必要に応じて、この手順を繰り返します。

OnTimer()関数もありますが、私自身は扱ったことがありません。

ありがとうございます。そう思っていました。OnTimerは適さない。

インジケーターがM5になっていても、1時間に1回呼ばれるなどの状況があります。1時間に1回呼び出すために、Expert Advisorでは5分ごとにアイドル状態でインジケータが計算されることが判明しました。そのため、インジケータの再計算を一時停止することはできないかと考えています。

 
masharov:

インジケーターがM5になっていても、例えば1時間に1回呼ばれる状況もある。1時間に1回呼び出すために、Expert Advisorでは5分ごとにダラダラとインジケータが計算されることが判明しました。

また、インジケータを 時間足と呼ばれるように書き換える ことはできないのでしょうか?
 
Yedelkin:
1時間単位でも計算するようにインジケータを書き換えることはできますか?
トレードはM5で。インジケーターが いつ呼ば れるかは不明です。2時間に1回の場合もあれば、1時間に3回の場合もあります。この指標は、取引を行うかどうかの判断を確認するために使用されます。
Способы вызова индикаторов в MQL5
Способы вызова индикаторов в MQL5
  • 2010.03.09
  • KlimMalgin
  • www.mql5.com
C появлением новой версии языка MQL, не только изменился подход к работе с индикаторами, но и появились новые способы создания индикаторов. Кроме того, появилась дополнительная гибкость при работе с индикаторными буферами - теперь вы можете самостоятельно указать нужное направление индексации и получать ровно столько значений индикатора, сколько вам требуется. В этой статье рассмотрены базовые методы вызова индикаторов и получения данных из индикаторных буферов.
 
masharov:
M5で取引が行われています。なお、この指標がいつ呼ば れるかは不明です。2時間に1回かもしれないし、1時間に3回かもしれない。取引判断の確認に使用する指標です。
理屈は明快です。そのような場合、私はスマートでシンプルな方法で行いました。インジケータからExpert Advisorに直接計算ブロックを転送しました。つまり、外部データソース(インディケータ)の代わりに、Expert Advisorが持つ関数の1つ(インディケータの計算アルゴリズムを再現する関数)を使用したのです。この場合、この関数は必要に応じて呼び出され、必要な値を完全に再計算していた。
 

こんにちは、教えてください。

1)TRADE_RETCODE_LOCKED、TRADE_RETCODE_FROZENの ようなエラーや、リクエストがブロックされた場合、ポジションや注文がフリーズ した場合、どのように対処すればよいですか?

2)またTRADE_RETCODE_INVALID_FILLはどの ような場合に発生するのでしょうか。

 
PunkBASSter:

こんにちは、教えてください。

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などです。

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
イェデルキンさん、 ありがとうございました)
 
masharov:

iCustomでインジケータを起動した場合、1tick毎に計算されているのではないかという疑念があります。そして、CopyBufferを介した呼び出しに依存しない。これでいいのでしょうか?

もしそれが正しいのであれば、インジケータの計算を無効にして、CopyBufferを呼び出す前だけ有効にすることは可能でしょうか?

もし私が正しく理解しているなら、iFractalsのヘルプにある例(OnCalculateの 複数の条件を参照)を参考に、次のティックでの計算を制限してみてはいかがでしょうか?

おそらく、OnCalculateで 必要なすべてのバーのインジケータ計算の初期実行のフラグを立て、ターミナルのサーバー時間を確認し、それが起こった後、フラグをfalseにリセットし、それによって再計算を可能にし、再びtrueに設定することもできるだろう...。といった具合に。

あるいは、計算を伴う外部関数を 書き、OnInitでそれを呼び出し、インジケータの最初の起動時に一度だけ実行し(TFの変更時など、ユーザー主導で行われる)、次にOnCalculateで 同じ関数を二度目の 方法で呼び出します(サーバー上で指定した時刻に、フラグ立てによって)。

しかし、最初の方法は良いもので、毎ティックごとに完全な再計算でプロセッサに負荷をかけない(しばしば新しい結果をもたらさない)だけでなく、与えられた時間間隔で完全な再計算も行わず、最新のバーだけを計算します(毎ティックなら新しいものを一つ、t回ならその間に蓄積されたいくつかのバー)...このバージョンは個人的に確認する方が良いですが、私は間違っている可能性があります...。また、すべてはインジケーターの具体的な目的によって決まります。大きな、あるいは市場全体の履歴に依存するのであれば、全体の履歴の再計算をなくすことはできない。

 

冗談のユーモアがわからなかった(指標を書くこと、違いはないが)。

struct TBuffer
{
  double buffer[];
};

TBuffer BuffArray[4];

エラーや警告を出さずにコンパイルします。

int elements=4;

struct TBuffer
{
  double buffer[];
};

TBuffer BuffArray[elements];

1つのエラーと0つの警告で コンパイルされました: 'elements' - 無効なインデックス値です。

ここで、当たり前の常識を覆すことができるでしょうか。

 
x100intraday:


ここで、当たり前の常識を覆すことができるでしょうか。

配列の要素 数を定数で指定します。

要素数があらかじめわからない場合は、ArrayResize を用いて変数を用いてサイズを設定する。

これはc++の基本中の基本です。

だから、どちらか

#define  elements 4