int win_ind=1;
intOnInit()
{
//---
chart_id=ChartID();
//--- set balans indMqlParam params[1];
params[0].type =TYPE_STRING;
params[0].string_value =name_ind;
handle=IndicatorCreate(ChartSymbol(chart_id),ChartPeriod(chart_id),IND_CUSTOM,win_ind,params); // вот тут ещё // прокатит несуществующее окноChartIndicatorAdd(chart_id,win_ind,handle); // а вот тут уже нужно точно знать его номер
win_ind=ChartWindowFind(chart_id,name_ind); // а получить его можно только тут//---return(0);
}
int win_ind=-1;
intOnInit()
{
//---
chart_id=ChartID();
//--- set balans indMqlParam params[1];
params[0].type =TYPE_STRING;
params[0].string_value =name_ind;
handle=IndicatorCreate(ChartSymbol(chart_id),ChartPeriod(chart_id),IND_CUSTOM,1,params);// 1- количество параметров ChartIndicatorAdd(chart_id,win_ind,handle); // тут поскольку win_ind=-1 создаём новое окно
win_ind=ChartWindowFind(chart_id,name_ind); // а тут получаем значение win_ind //---return(0);
}
存在しない ウィンドウ番号を指定すればいいのです。
すなわち、INT_MAXを 指定する、など。あるいは負の値(私自身は試していませんが、アイデアとして試してみてはいかがでしょうか)。
そのため、win_indを明示的に指定しないと動作しません。
Urain:
存在しない ウィンドウ番号を指定すればいいのです。
すなわち、INT_MAXを 指定する、など。 あるいは負の値(私自身は試していませんが、アイデアとして、試してみてはいかがでしょうか)。
試していないからこそ、そうアドバイスしてくれるのでしょう
よし、負の値を指定するアイデアを確認して、それが証明されないなら、最初のヒントで止めておこう。
"INT_MAXを 指定する" など、存在しない ウィンドウ番号を指定すればいいのです。つまり、上記の例では、次のように指定します。
それとも、あなたの場合、存在しないウィンドウ番号を指定すると、ChartIndicatorAdd 関数が動作を拒否して、新しいサブウィンドウを作成するのでしょうか?
ところで、なぜあなたのコードに同じ変数があるのか、よく分かりませんが
は、まずIndicatorCreate 関数の第4パラメータ(第4パラメータ==parameters_array[]配列に渡されたパラメータ数)として使われ、次にChartIndicatorAdd 関数の第2パラメータ(第2パラメータ==チャートサブウィンドウ数)として使用されます。よく読んでみてください。
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
よく読んでみてください。
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
こういうことですか?
chart_windows_total
チャートウィンドウの総数(インジケータサブウィンドウを含む
int r/o
ところで、なぜあなたのコードに同じ変数があるのか、よく分かりませんが
まず、IndicatorCreate 関数の4番目のパラメータとして使われ(4番目のパラメータ== parameters_array[]配列に渡されたパラメータの数)、次にChartIndicatorAdd 関数の2番目のパラメータとして使われます(2番目のパラメータ== chart subwindow number)。セミョーンセミョーニッチ、その通りです。win_indをどこでも明示的に1と書いておいて、変数に置き換えるときに、1を全部win_indに変えてしまったのが不注意でした。それが電気ショックを与えたのですね :o)
正しいコードは次のようになります。
これではい、すべて自動で動きます。コードの解析ありがとうございます。1つの頭も良いですが、2つの方がより良いです :o)
タキ はい。)二重ループにすることで、すべてのチャートのインデックスを問題なく通過することができます。
残念ながら、そうではありません。令状制度は変わりません。