MT4・MT5のチャートを一定間隔で自動更新できるインジケーター「kousin」を無料配布しています。更新する間隔を自由に設定でき、正常に動いているかログから確認することもできます。
ご要望をいただきました
無料インジケーターを公開していただき、ありがとうございます。
MT4では、任意の時間足で、チャート自動更新できるインジケーターがいろいろあり正常に稼働しますが、MT5では、正常に稼働するインジケーターをみかけません。
ChartRefresherなるインジケーターをインストールしましたが、チャート自動更新されません。
お忙しいとは思いますが、不具合修正もしくは、インジケーター作成していただけると幸いです。
よろしくお願いいたします。

ご要望ありがとうございます。
※少しプログラムの関数名が出てきますがご了承下さい。
確認したところ、ChartRefresherでは一定時間ごとにChartRedraw()を実行する仕組みになっていました。
ChartRedraw()は現在表示されているチャートを再描画するための処理で、MT5のチャート上で行う「更新」とは役割が異なります。
そこで今回は、現在開いている通貨ペアと時間足をChartSetSymbolPeriod()へ指定し、設定した時間ごとにチャートへ更新を要求するインジケーター「kousin」を作成しました。
【自社開発】チャート自動更新インジケーター「kousin」とは

「kousin」は、MT4・MT5のチャートを設定した時間ごとに自動で更新するインジケーターです。
例えば更新間隔を「1分」に設定すると、現在開いている通貨ペア・時間足を変えずに、1分ごとにチャートへ更新を要求します。
MT4・MT5を長時間起動している場合や、チャートやインジケーターを定期的に更新したい場合に使用できます。
パラメーターの設定(インプット)

チャートを何分ごとに更新するか設定します。
初期値:1
「1」なら1分ごと、「5」なら5分ごとに更新を要求します。
チャートの自動更新を行うか設定します。
初期値:true(オン)
trueの場合は自動更新を行い、falseの場合は更新を行いません。
更新処理の結果をMT4・MT5のログへ表示するか設定します。
初期値:true(オン)
正常に動いているか確認したい場合はオンのまま使用してください。
ログ表示のON/OFFについて

kousinでは、チャートの更新が正常に動いているかログから確認できます。
ログはMT4・MT5の「ツールボックス」→「エキスパート」から確認できます。
ログを表示するかどうかは、インプットの「ログ表示 ON/OFF」から設定でき、初期設定ではオンになっています。
| ログの表示 | 意味 |
|---|---|
| チャート更新:更新を要求しました | MT4・MT5へチャート更新の命令を正常に送れています。 |
| チャート更新:失敗しました | 更新の命令を送れなかった状態です。エラー番号も一緒に表示されます。 |
| チャート更新:OFFのため実行しませんでした | インプットでチャート更新がオフになっているため、更新していません。 |
通常は「チャート更新:更新を要求しました」と表示されていれば、kousinが設定した間隔で動作していることを確認できます。
ChartRedraw()との違いについて
今回ご相談いただいたChartRefresherでは、ChartSetSymbolPeriod()ではなくChartRedraw()が使用されていました。
| 処理 | 役割 |
|---|---|
| ChartRedraw() | 現在表示されているチャートを再描画する |
| ChartSetSymbolPeriod() | 現在と同じ通貨ペア・時間足を指定して、チャートを読み込み直す |
ChartRedraw()は、チャート上のライン・ボタン・オブジェクトなどを画面へ描き直すための処理です。
そのため、ChartRefresherという名前から「チャートを更新する処理」に見えますが、実際には一定時間ごとに画面を再描画している仕組みでした。
一方、kousinではChartSetSymbolPeriod()を使用し、現在と同じ通貨ペア・時間足を指定することでチャートへ更新を要求します。
MT5では、チャート上で右クリックして「更新」を選択した場合と同じ目的で使用できます。
よくある質問
よくある質問
Q.更新されてもチャートの見た目が変わりません
正常です。
kousinは、現在と同じ通貨ペア・同じ時間足のままチャートへ更新を要求します。
新しい価格データや表示の変化がなければ、更新前と更新後でチャートの見た目がほとんど変わらない場合があります。
動作を確認する場合は、ログ表示をオンにしてください。
Q.「チャート更新:更新を要求しました」とはどういう意味ですか?
MT4・MT5へ更新の命令を正常に渡せたことを表しています。
ChartSetSymbolPeriod()は、命令を送ったあとに更新処理がすべて完了するまで待つものではありません。
そのためログでは「更新しました」ではなく、「更新を要求しました」と表示しています。
Q.インターネットに接続していなくても新しい価格を取得できますか?
新しい価格データを受信するには、MT4・MT5が取引サーバーへ接続されている必要があります。
kousinはチャートへ更新を要求するインジケーターであり、新しい価格データそのものを作るものではありません。
kousinを無料ダウンロード
kousinはMT4/MT5専用のインジケーターです。MT4/MT5の導入方法は関連記事をご確認ください。


※二次配布や販売、自作発言は禁止です。
※本ツールによる損害の責任は負いかねます。
※学習用としてご活用ください。
※シェアして頂けると助かります。
30種類を超える当サイトオリジナルのインジケーターがすべて無料になっています。取引を快適にするツールを多く取り揃えていますので、是非ご活用下さい。




コメントをお待ちしています
要望以上の機能を追加していただき、ありがとうございます!
MQL5素人にも分かりやすい説明、迅速な対応ありがとうございます。
また、コメントしたいと思っています。
よろしくお願いいたします。
このたびは嬉しいコメントをありがとうございます。
少しでもお役に立てたようで何よりです。
今後も分かりやすく、使いやすいツールを公開していきたいと思います。
また何かございましたら、お気軽にコメントください。