ChartWindowOnDropped関数の働き・役割
ChartWindowOnDropped関数は、エキスパートアドバイザーやスクリプトがドロップされたチャートサブウィンドウの番号(インデックス)を返します。この関数を使用することで、スクリプトやエキスパートアドバイザーがどのウィンドウに配置されたかを特定し、そのウィンドウに対して適切な操作を行うことができます。0はメインチャートウィンドウを意味します。
ChartWindowOnDropped関数の引数について
ChartWindowOnDropped関数は引数を取りません。
int ChartWindowOnDropped();
ChartWindowOnDropped関数の戻り値について
ChartWindowOnDropped関数は、エキスパートアドバイザーやスクリプトがドロップされたチャートサブウィンドウの番号を返します。戻り値の詳細は以下の通りです。
指定されたチャートサブウィンドウの番号
種類: int
説明: ドロップされたチャートサブウィンドウの番号(インデックス)を返します。0はメインチャートウィンドウを意味します。
ChartWindowOnDropped関数を使う際の注意点
ChartWindowOnDropped関数は、エキスパートアドバイザーやスクリプトがドロップされたウィンドウの番号を特定するために使用されます。この情報を基に、特定のサブウィンドウに対して適切な操作を行うことができます。特に複数のウィンドウが存在するチャートにおいて、どのウィンドウでスクリプトが実行されているかを識別するのに役立ちます。
ChartWindowOnDropped関数を使ったサンプルコード
以下に、ChartWindowOnDropped関数を使用してスクリプトがドロップされたウィンドウの番号を取得し、その情報をログに出力するサンプルコードを示します。
//+------------------------------------------------------------------+
//| スクリプトプログラムを開始する関数 |
//+------------------------------------------------------------------+
void OnStart()
{
//--- スクリプトがドロップされたウィンドウの番号を取得
int myWindow = ChartWindowOnDropped();
//--- チャート上のウィンドウの総数を取得
int windowsTotal = (int)ChartGetInteger(0, CHART_WINDOWS_TOTAL);
//--- スクリプトがどのウィンドウで実行されているか、およびチャート上のウィンドウの総数をログに出力
Print("Script is running on the window #", myWindow, ". Total windows on the chart ", ChartSymbol(), ": ", windowsTotal);
}
サンプルコードに使われた関数や文法要素の簡単な解説
OnStart関数
OnStart関数は、スクリプトの実行が開始されたときに自動的に呼び出される関数です。この関数内でスクリプトのメインロジックを実装します。
ChartWindowOnDropped関数
ChartWindowOnDropped関数は、エキスパートアドバイザーやスクリプトがドロップされたチャートサブウィンドウの番号を取得します。
int windowsTotal = (int)ChartGetInteger(0, CHART_WINDOWS_TOTAL);
ChartGetInteger関数を使用して、現在のチャート(識別子0)のウィンドウの総数を取得しています。ChartGetInteger関数は、チャート上のウィンドウの総数を示す整数値を返します。取得した値はlong型ですが、int型にタイプキャストしています。CHART_WINDOWS_TOTALは、チャート内のウィンドウの総数を取得するための定数です。
Print関数
Print関数は、指定されたメッセージをエキスパートログに出力します。このコードでは、Print関数を使用して、スクリプトがどのウィンドウで実行されているか、およびチャート上のウィンドウの総数を出力します。Print関数の引数として使用されているChartSymbol関数は、現在のチャートのシンボル(特定の文字や記号)名を取得します。これにより、ログ出力時にチャートのシンボル名も表示されます。