こんにちは、
エキスパートアドバイザで、現在の時間枠とは異なる時間枠にiHighおよびiLow関数を使用したいと思います。この期間に妥当な量のバーがロードされていることをどのように確認できますか?チャートのバーをプリロードする関数を呼び出せますか?
ありがとう
こんにちは、
エキスパートアドバイザで、現在の時間枠とは異なる時間枠にiHighおよびiLow関数を使用したいと思います。この期間に妥当な量のバーがロードされていることをどのように確認できますか?チャートのバーをプリロードする関数を呼び出せますか?
ありがとう
誰もそのような懸念をこれまで経験したことがないと思います。バックテスト用のバーが足りないことを心配している人もいますが、ライブ取引のためにバーをたくさん必要とした人を覚えていません。あなたは合理的な定義をしませんでした、そして、ほとんどの人々にとって、合理的なのはあなたが特別なブローカーを持っていない限り、間違いなくあなたのチャート上に存在する最後の数百のバーです。私がそうするやり方は、Bars値を使って、あなたが望むどんな数でもそれを比較して、それがより少ないならば警報を出すことです。その後、必要なバーの数で手動でチャートを読み込むことができます。それ以外の場合は、十分なバーがあるかどうかを判断するためにすべてのチャートを定期的に確認する必要があります。
Mt4のすべてのシンボルの履歴データをロードするためのコードベースのスクリプトがあります。Originally Posted by ;
http://codebase.mql4.com/6693もしこれをあなたのEAに本当に統合する必要があるなら、それに応じてコードを修正することで可能になるはずです。スクリプトをテストしたばかりで、ランダムチャートにアタッチした後、symbol-listで見つかった最初のシンボルのM1を開き、データをロードし、ロードが完了するまでM5などにタイムフレームを切り替えますそのシンボルのすべての履歴データは、次のシンボルのM1から始まります。あなたのEAでは、あなたは新しい関数(履歴データのロード)にシンボルの名前とおそらくピリオドを伝えてそれをそのシンボルに働きかけるだけで完了です。
あなたはこのようにバーの数をチェックすることができます:挿入されたコードnr_of_bars_on_Chart = iBars(cur_symbol、PERIOD_M15);Originally Posted by ;
はい、ただしEAを自分で使用する場合に限ります。あなたがそれを他の誰かに送るならば、あなたは手動でバーをプリロードするように彼に頼まなければならないでしょう、これは納得できません。Originally Posted by ;
ありがとう。私はそれを試してみます。私の専門家がH1に参加していて、D1からiMAを入手しようとした場合にどうなるか知っていますか?D1に十分なバーがありませんか? MT4は自動的にバーをロードしますか、それともエラーを返しますか?Originally Posted by ;
現在のバーの高値と安値の終値を指定した場合とまったく同じように機能します。終値が最終的にそのバースライスの終わりに達するまで、終値は常に変化します。 maは、変化が止まるまで変化し続けるでしょう...Originally Posted by ;