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
 

당신은 그것에 대해 이야기하고 있습니까?

CHART_WINDOWS_TOTAL

지표 하위 창을 포함한 차트 창의 총 수

int r/o

 
그래서 그렇습니다 :) 이중 루프를 만들어 차트의 모든 칠면조를 문제 없이 통과할 수 있습니다.
 
Yedelkin :

그건 그렇고, 왜 코드에 동일한 변수가 있는지 완전히 명확하지 않습니다.

첫 번째는 IndicatorCreate 함수의 네 번째 매개변수로 사용되며(여기서 네 번째 매개변수는 == parameters_array[] 배열에 전달된 매개변수의 수) 그 다음에는 ChartIndicatorAdd 함수의 두 번째 매개변수(여기서 두 번째 매개변수 == 차트 하위 창 번호).

Semyon Semyonovich, 음, 정확히. 내가 감독을 통해 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 유형 등의 주문을 입력합니다. 오늘날 이러한 아이디어의 홍보는 어떻게 진행되고 있습니까? 새로운 유형의 보류 주문(최소 1년)의 출현을 희망하는 것이 가능합니까?
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
불행하게도. 주문 시스템은 변경되지 않습니다.
 
Renat :
불행하게도. 주문 시스템은 변경되지 않습니다.
알겠습니다. 사용 가능한 것부터 진행하겠습니다.