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 函数的第四个参数(其中第四个参数==参数_array[]数组中传递的参数数量),然后被用作ChartIndicatorAdd 函数的第二个参数(其中第二个参数==图表子窗口编号)。仔细阅读。
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
仔细阅读。
https://www.mql5.com/ru/docs/chart_operations/chartindicatorstotal
这就是你的意思吗?
图表_窗口_总数
图表窗口的总数,包括指标子窗口
英镑r/o
顺便说一下,不太清楚为什么你的代码中会有相同的变量
首先,它被用作IndicatorCreate 函数的第四个参数(其中第四个参数==数组参数_array[]中传递的参数数量),然后它被用作ChartIndicatorAdd 函数的第二个参数(其中第二个参数==图表子窗口数量)。Semyon Semyonych,没错。我在写win_ind的时候很粗心,到处都明确写成1,然后在用变量替换的时候,把所有的1都改成了win_ind。这就是给你电击的原因 :o)
正确的代码应该是这样的
现在是的,一切都自动工作。谢谢你的代码解析,一个头是好的,但两个是更好的 :o)
塔基是的 :)通过做双循环,你可以在没有太多麻烦的情况下通过所有图表指数。
不幸的是,没有。权证制度是不会改变的。