ChartOpen関数の働き・役割
ChartOpen関数は、新しいチャートを開くための関数です。指定された通貨ペアと時間枠に基づいてチャートを開き、そのチャートの識別子を返します。これにより、トレーダーはプログラム内から動的にチャートを管理することができます。
ChartOpen関数の引数について
ChartOpen関数は2つの引数を持ちます。
long ChartOpen(
string symbol, // 銘柄名
ENUM_TIMEFRAMES period // 期間
);
第1引数はsymbolで、データ型はstring型です。シンボル(特定の文字や記号)を指定します。
第2引数はperiodで、データ型はENUM_TIMEFRAMESです。時間枠(時間足の種類)を指定します。ENUM_TIMEFRAMESは、時間足を表すenum列挙型です。
ChartOpen関数の戻り値について
ChartOpen関数は、新しく開かれたチャートの識別子(ID)を返します。この識別子を使用することで、他のチャート操作関数と連携して特定のチャートを操作することができます。もしチャートのオープンに失敗した場合は、戻り値として0が返されます。
ChartOpen関数を使う際の注意点
大量のチャートを一度に開くと、システムリソースを消費する可能性があるため、必要なチャートだけを開くように注意しましょう。
また、MQL5では同時に開くことができるチャートの最大数が「CHARTS_MAX」という定数で制限されています。この定数の値を超えるチャートを開こうとすると、ChartOpen関数は失敗し、0を返します。さらに、開かれたチャートが不要になった場合は、ChartClose関数を使って適切に閉じることが推奨されます。
ChartOpen関数を使ったサンプルコード
以下は、ChartOpen関数を使用して新しいチャートを開くサンプルコードです。
// OnStart関数はスクリプトの実行が開始されたときに自動的に呼び出されます
void OnStart()
{
// "EURUSD"の1時間足チャートを開く
long chart_id = ChartOpen("EURUSD", PERIOD_H1);
// チャートが正しく開けたか確認
if(chart_id != 0)
{
// チャートが開けた場合の処理
Print("チャートを開きました。チャートID: ", chart_id);
}
else
{
// チャートを開けなかった場合の処理
Print("チャートを開くのに失敗しました。");
}
}
このサンプルコードでは、”EURUSD”の1時間足チャートを開き、その結果をエキスパートログに出力します。chart_idが0でない場合はチャートのオープンに成功したことを示し、0の場合は失敗したことを示します。
サンプルコードに使われた関数や文法要素の簡単な解説
OnStart関数は、スクリプトが実行されると自動的に呼び出される関数です。この関数内にプロパティ取得の処理を記述しています。
ChartOpen関数は新しいチャートを開くための関数です。戻り値としてチャートの識別子を返します。
コメント