記事"インディケータの経済的計算原理"についてのディスカッション

 

新しい記事 インディケータの経済的計算原理 はパブリッシュされました:

自動化されたトレーディングシステムのプログラムコードではユーザーとテクニカルインディケータの呼び出しはほとんどスペースを取りません。たいてい数行のコード行ですむ簡単なものです。ただこの数行のコードがExpert Advisorの検証に必要な時間の多くを費やす、ということはよくあることです。インディケータ内でデータ計算に関連することはすべて、一見したよりもずっと綿密に配慮される必要があります。本稿ではこの件に関して詳しく述べていきます。

図11 Expert AdvisorのAMA_Ex_Test検証の通過結果

作者: Nikolay Kositsin

 

記事をありがとう。

一つ質問があります。あなたは、インジケータの計算を 最適化するためにインジケータの最初のフォームを使用しています。しかし、それを使用できない場合(正しい計算にはopen[]、high[]、low[]、close[]が必要です)、どうすればよいのでしょうか? 第2のフォームにはbeginがありません。

 
Prival:

記事をありがとう。

一つ質問があります。あなたは、インジケータの計算を 最適化するためにインジケータの最初のフォームを使用しています。しかし、それを使用できない場合(正しい計算のためには、open[]、high[]、low[]、close[]が必要です)、どうすればよいのでしょうか? 第2のフォームにはbeginはありません。

なぜなら、入力パラメータは常に価格の特性であり、それらはすべての要素にあり、beginだけで満たされた「任意の」配列を使用しないからです。
 

すべてが考慮されているわけではありませんが、一般的には、それはまだ興味深いです =)

特に、テクニカル指標 コールの最適化などは考慮されていません。

私はこのトピックは非常に関連していると思います。

 

より正確には、テクニカル指標をより良く初期化する方法である。

一般的に、データチェックの機能は実装されている。

しかし、初期化の例は正確には考慮されていない。

ヘルプを読む限り

Нельзя обратиться к данным индикатора сразу после его создания, так как на расчет значений индикатора требуется некоторое время, и поэтому создавать хэндлы индикаторов лучше всего в OnInit(). Функция iCustom() создает соответствующий пользовательский индикатор и при успешном создании возвращает его хэндл. Пользовательские индикаторы могут содержать до 512 индикаторных буферов, содержимое которых также можно получать при помощи функции CopyBuffer(), используя полученный хэндл.

この機能を回避する最善の方法は?

 

いつも同じことを考えている。

   if (Handle == INVALID_HANDLE)  Print(「SMAインジケーターのハンドル取得に失敗しました。);

もしこの条件がうまくいったら、どうすればいいのだろう? 仮に優勝だとしたら、それだけだ...。initはもう走らない。

 
Prival:

ずっと同じことを考えていた。

もしこの条件がうまくいったら、どうすればいいのだろう? 仮に優勝だとしよう、それだけだ...。initはもう動かない。

そう!文書化されていない事実なんだ!ぜひ調べてみよう!エキスパート・アドバイザーがマラソンのスプリンターのように走り、どこにもつまずかないようにするためだ!

 
Prival:

いつも同じことを考えている。

もしこのコンディションがうまくいったら、どうすればいいのだろう? チャンピオンシップだとしよう。

まず、エラーコードを 取得してログに出力する。そしてOnTick()やOnCalculate()で再度アクセスしてみてください。インジケータハンドルの取得に失敗した場合、そのようなインジケータがないか、メモリが不足している可能性が高いです。この場合、Expert Advisorは取引する権利がありません。
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
Документация по MQL5: Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений
  • www.mql5.com
Стандартные константы, перечисления и структуры / Коды ошибок и предупреждений - Документация по MQL5
 
Rosh:
まず、エラー・コードを取得してログに出力する。そして、OnTick() または OnCalculate() で再度アクセスしてみてください。インジケータハンドルの取得に失敗した場合、そのようなインジケータが存在しないか、メモリ不足である可能性が高いです。この場合、Expert Advisorは取引する権利がありません。

では、自分たちでやってみましょう!このような場合、OnInit()関数が マイナス1を返すようにすれば、ハンドルが表示されるまでOnInit()を繰り返し呼び出すことができます!しかし、コンピュータに過度のストレスを与えなければ、ハンドルが表示されない理由はないことは明らかだ。しかし、私はビルドを更新したときに一度だけこの現象に遭遇したことがありますが、インジケーターを再コンパイルすれば治ります!

Документация по MQL5: Основы языка / Функции / Функции обработки событий
Документация по MQL5: Основы языка / Функции / Функции обработки событий
  • www.mql5.com
Основы языка / Функции / Функции обработки событий - Документация по MQL5
 
マイナス1が返されることもあるが、EA/インジケーターにとって良い兆候ではない。
 
幸いなことに、端末の不具合によるインジケーター作成 ミスは実質的に発生しない。