より正確には、テクニカル指標をより良く初期化する方法である。
一般的に、データチェックの機能は実装されている。
しかし、初期化の例は正確には考慮されていない。
ヘルプを読む限り
Нельзя обратиться к данным индикатора сразу после его создания, так как на расчет значений индикатора требуется некоторое время, и поэтому создавать хэндлы индикаторов лучше всего в OnInit(). Функция iCustom() создает соответствующий пользовательский индикатор и при успешном создании возвращает его хэндл. Пользовательские индикаторы могут содержать до 512 индикаторных буферов, содержимое которых также можно получать при помощи функции CopyBuffer(), используя полученный хэндл.
この機能を回避する最善の方法は?
いつも同じことを考えている。
if (Handle == INVALID_HANDLE) Print(「SMAインジケーターのハンドル取得に失敗しました。);
もしこの条件がうまくいったら、どうすればいいのだろう? 仮に優勝だとしたら、それだけだ...。initはもう走らない。
ずっと同じことを考えていた。
もしこの条件がうまくいったら、どうすればいいのだろう? 仮に優勝だとしよう、それだけだ...。initはもう動かない。
そう!文書化されていない事実なんだ!ぜひ調べてみよう!エキスパート・アドバイザーがマラソンのスプリンターのように走り、どこにもつまずかないようにするためだ!
いつも同じことを考えている。
もしこのコンディションがうまくいったら、どうすればいいのだろう? チャンピオンシップだとしよう。
- www.mql5.com
まず、エラー・コードを取得してログに出力する。そして、OnTick() または OnCalculate() で再度アクセスしてみてください。インジケータハンドルの取得に失敗した場合、そのようなインジケータが存在しないか、メモリ不足である可能性が高いです。この場合、Expert Advisorは取引する権利がありません。
では、自分たちでやってみましょう!このような場合、OnInit()関数が マイナス1を返すようにすれば、ハンドルが表示されるまでOnInit()を繰り返し呼び出すことができます!しかし、コンピュータに過度のストレスを与えなければ、ハンドルが表示されない理由はないことは明らかだ。しかし、私はビルドを更新したときに一度だけこの現象に遭遇したことがありますが、インジケーターを再コンパイルすれば治ります!
- www.mql5.com
- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索
新しい記事 インディケータの経済的計算原理 はパブリッシュされました:
自動化されたトレーディングシステムのプログラムコードではユーザーとテクニカルインディケータの呼び出しはほとんどスペースを取りません。たいてい数行のコード行ですむ簡単なものです。ただこの数行のコードがExpert Advisorの検証に必要な時間の多くを費やす、ということはよくあることです。インディケータ内でデータ計算に関連することはすべて、一見したよりもずっと綿密に配慮される必要があります。本稿ではこの件に関して詳しく述べていきます。
作者: Nikolay Kositsin