Desejos para MT5 - página 62

 
Yedelkin:

Só tem de especificar um número de janela inexistente .

Isto é, especificar INT_MAX, por exemplo. Ou um valor negativo (eu próprio ainda não o experimentei, mas como ideia pode experimentar).


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

É por isso que tem de especificar explicitamente o win_ind, caso contrário não funcionará.

 

Urain:

Yedelkin:

Só tem de especificar um número de janela inexistente .

Isto é, especificar INT_MAX, por exemplo. Ou um valor negativo (eu próprio ainda não o experimentei, mas como ideia, pode experimentar).

Isso é porque ainda não experimentei, é por isso que o aconselha

OK, se verificou a ideia de especificar valores negativos e não se provar que seja verdade, vamos parar na primeira dica:

"Só tem de especificar um número de janela inexistente , por exemplo, especificar INT_MAX". Ou seja, no exemplo acima especificar

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

Ou, no seu caso, ao especificar um número de janela inexistente, a funçãoChartIndicatorAdd recusa-se a trabalhar e a criar uma nova subjanela?

A propósito, não é bem claro porque tem a mesma variável no seu código

int win_ind=1;
é primeiro utilizado como o quarto parâmetro da funçãoIndicatorCreate (onde o quarto parâmetro == número de parâmetros passados na matriz parameters_array[]) e depois utilizado como o segundo parâmetro da funçãoChartIndicatorAdd(onde o segundo parâmetro == número da subjanela do gráfico).
 
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
Документация по MQL5: Операции с графиками / ChartIndicatorsTotal
  • www.mql5.com
Операции с графиками / ChartIndicatorsTotal - Документация по MQL5
 

É a isto que se refere?

GRÁFICO_JANELAS_TOTAL

Número total de janelas de gráficos, incluindo as subjanelas de indicadores

int r/o

 
Taki sim :) Ao fazer um loop duplo pode passar por todos os índices do gráfico sem grandes problemas.
 
Yedelkin:

A propósito, não é bem claro porque tem a mesma variável no seu código

primeiro é usado como o quarto parâmetro da funçãoIndicatorCreate (onde o quarto parâmetro == número de parâmetros passados em array parameters_array[]) e depois é usado como o segundo parâmetro da funçãoChartIndicatorAdd(onde o segundo parâmetro == número da subjanela do gráfico).

Semyonych Semyonych, isso mesmo. Fui descuidado ao escrever win_ind explicitamente como 1 e depois, ao substituí-lo por uma variável, mudei todos os 1's para win_ind. Foi isso que lhe deu o choque eléctrico :o)

O código correcto seria este

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

Agora sim, tudo funciona automaticamente. Obrigado pela análise do código, uma cabeça é boa, mas duas é melhor :o)

 
TheXpert:
Taki sim :) Ao fazer um loop duplo pode passar por todos os índices do gráfico sem grandes problemas.
Está tudo bem! Mas, para os meus propósitos, consegui evitar o loop.
 
Houve sugestões sobre o alargamento da lista de encomendas pendentes há cerca de seis meses. Por exemplo, para introduzir encomendas do tipo OCO, etc. Qual é o estado actual de progresso dessas ideias? Podemos esperar o aparecimento (pelo menos dentro de um ano) de novos tipos de encomendas pendentes?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
Infelizmente, não. O sistema de mandado não mudará.
 
Renat:
Infelizmente, não. O sistema de mandado não vai mudar.
OK, então vamos com o que temos.
Razão: