对MT5的祝愿 - 页 62

 
Yedelkin:

你只需要指定一个不存在的 窗口号码。

即指定INT_MAX,例如。或者一个负值(我自己没有试过,但作为一个想法,你可以试试)。


int win_ind=1;

int OnInit()
  {
//---
   chart_id=ChartID();
//--- set balans ind

   MqlParam 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);
  }

这就是为什么你必须明确指定win_ind,否则它将无法工作。

 

Urain:

耶德尔金

你只需要指定一个不存在的 窗口号码。

即指定INT_MAX,例如。 或者一个负值(我自己没有试过,但作为一个想法,你可以试试)。

那是因为我没有试过,所以你才会如此建议。

好吧,如果你已经检查了指定负值的想法,并且它没有被证明是正确的,让我们停止在第一个提示。

"你只需要指定一个不存在的 窗口号码,比如说指定INT_MAX"。就是说,在上面的例子中指定

ChartIndicatorAdd(chart_id,INT_MAX,handle); // указываем заранее несуществующий номер подокна

或者,在你的案例中,当指定一个不存在的窗口号码时,ChartIndicatorAdd 函数拒绝工作并创建一个新的子窗口?

顺便说一下,不太清楚为什么你的代码中会有相同的变量

int win_ind=1;
首先被用作IndicatorCreate 函数的第四个参数(其中第四个参数==参数_array[]数组中传递的参数数量),然后被用作ChartIndicatorAdd 函数的第二个参数(其中第二个参数==图表子窗口编号)。
 
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
  • www.mql5.com
Операции с графиками / ChartIndicatorsTotal - Документация по MQL5
 

这就是你的意思吗?

图表_窗口_总数

图表窗口的总数,包括指标子窗口

英镑r/o

 
塔基是的 :)通过做双循环,你可以在没有太多麻烦的情况下通过所有图表指数。
 
Yedelkin:

顺便说一下,不太清楚为什么你的代码中会有相同的变量

首先,它被用作IndicatorCreate 函数的第四个参数(其中第四个参数==数组参数_array[]中传递的参数数量),然后它被用作ChartIndicatorAdd 函数的第二个参数(其中第二个参数==图表子窗口数量)。

Semyon Semyonych,没错。我在写win_ind的时候很粗心,到处都明确写成1,然后在用变量替换的时候,把所有的1都改成了win_ind。这就是给你电击的原因 :o)

正确的代码应该是这样的

int win_ind=-1;

int OnInit()
  {
//---
   chart_id=ChartID();
//--- set balans ind

   MqlParam 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);
  }

现在是的,一切都自动工作。谢谢你的代码解析,一个头是好的,但两个是更好的 :o)

 
TheXpert:
塔基是的 :)通过做双循环,你可以在没有太多麻烦的情况下通过所有图表指数。
没事的!但为了我的目的,我设法避免了这个循环。
 
大约6个月前,有人建议扩大未决订单 的清单。例如,引入OCO类型的订单,等等。这些想法目前的进展状况如何?我们能否希望出现(至少在一年内)新类型的挂单?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
不幸的是,没有。权证制度不会改变。
 
Renat:
不幸的是,没有。权证制度是不会改变的。
好吧,那么我们就用我们所拥有的东西。