やっていることは大したことないのですが、たまに他のチャートの情報を取ってくることがあるので、開いているチャートの数に応じた動作をするスクリプトをブログに貼り付けておくことにしました。(ここからコピペして使おうと思います)。
以下のコードは開いているチャートの数を数えます。
#property copyright "Copyright 2020. PHILOJUAN" #property link "https://uhoho.hatenablog.jp/" #property version "1.00" #property strict void OnStart() { int counter = 1; // チャートの数 // [備考] 1つもチャートが無い状態では、EAもインジもスクリプトも実行できない // ので必ず1つはチャートを開いている。 // 2つ目のチャートのIDをnextChartに代入 // [備考] 2つ目のチャートが無い場合は、-1が代入される long nextChart = ChartNext(ChartFirst()); while(nextChart != -1){ counter++; nextChart = ChartNext(nextChart); } printf("チャートの個数は: %d", counter); }
for文の例
実際に使う場合は、for文でループさせる気がします。
void OnStart() { int n = 1; for(long nextchart = ChartNext(ChartFirst()); nextchart != -1; nextchart = ChartNext(nextchart)){ printf("%d回目", n); n++; } // このコードを実行すると「チャートの数 - 1」回だけループすることが分かる。 // チャートの数だけループするわけではない点に注意。 }