즉, 예를 들어 INT_MAX 를 지정합니다. 또는 음수 값(직접 시도하지는 않았지만 아이디어로 시도할 수 있음).
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 );
}
첫 번째는 IndicatorCreate 함수의 네 번째 매개변수로 사용되며(여기서 네 번째 매개변수는 == parameters_array[] 배열에 전달된 매개변수의 수) 그 다음에는 ChartIndicatorAdd 함수의 두 번째 매개변수(여기서 두 번째 매개변수 == 차트 하위 창 번호).
Semyon Semyonovich, 음, 정확히. 내가 감독을 통해 win_ind가 명시 적으로 1로 모든 곳에서 작성되었고 모든 것을 변수로 대체했을 때 1이 win_ind로 변경되었습니다. 여기에 현재와 킥이 있습니다. o)
올바른 코드는 다음과 같습니다.
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 );
}
이제 예, 모든 것이 자동으로 작동합니다. 코드 분석 감사합니다. 머리 하나는 좋고 두 개는 더 좋습니다 :o)
존재하지 않는 창의 번호를 지정하기만 하면 됩니다.
즉, 예를 들어 INT_MAX 를 지정합니다. 또는 음수 값(직접 시도하지는 않았지만 아이디어로 시도할 수 있음).
따라서 win_ind 값을 명시적으로 설정해야 합니다. 그렇지 않으면 작동하지 않습니다.
Urain :
존재하지 않는 창의 번호를 지정하기만 하면 됩니다.
예를 들어, INT_MAX를 지정합니다. 또는 음수 값(직접 시도하지는 않았지만 아이디어로 시도할 수 있음).
제가 안써봐서 조언좀 부탁드립니다
네, 음수 값으로 아이디어를 테스트했지만 제대로 작동하지 않으면 첫 번째 힌트에 집중하겠습니다.
" 존재하지 않는 창의 번호를 지정하기만 하면 됩니다. 예를 들어 INT_MAX 를 지정하십시오." 저것들. 주어진 예에서 표시
또는 귀하의 경우 존재하지 않는 창의 번호를 지정할 때 ChartIndicatorAdd 기능이 작동을 거부하고 새 하위 창을 생성합니까?
그건 그렇고, 왜 코드에 동일한 변수가 있는지 완전히 명확하지 않습니다.
먼저 IndicatorCreate 함수의 네 번째 매개변수로 사용되고(여기서 네 번째 매개변수 == 매개변수_array[] 배열에 전달된 매개변수의 수), - ChartIndicatorAdd 함수의 두 번째 매개변수(여기서 두 번째 매개변수 == 차트 하위 창 번호).주의 깊게 읽으십시오.
https://www.mql5.com/en/docs/chart_operations/chartindicatorstotal
주의 깊게 읽으십시오.
https://www.mql5.com/en/docs/chart_operations/chartindicatorstotal
당신은 그것에 대해 이야기하고 있습니까?
CHART_WINDOWS_TOTAL
지표 하위 창을 포함한 차트 창의 총 수
int r/o
그건 그렇고, 왜 코드에 동일한 변수가 있는지 완전히 명확하지 않습니다.
첫 번째는 IndicatorCreate 함수의 네 번째 매개변수로 사용되며(여기서 네 번째 매개변수는 == parameters_array[] 배열에 전달된 매개변수의 수) 그 다음에는 ChartIndicatorAdd 함수의 두 번째 매개변수(여기서 두 번째 매개변수 == 차트 하위 창 번호).Semyon Semyonovich, 음, 정확히. 내가 감독을 통해 win_ind가 명시 적으로 1로 모든 곳에서 작성되었고 모든 것을 변수로 대체했을 때 1이 win_ind로 변경되었습니다. 여기에 현재와 킥이 있습니다. o)
올바른 코드는 다음과 같습니다.
이제 예, 모든 것이 자동으로 작동합니다. 코드 분석 감사합니다. 머리 하나는 좋고 두 개는 더 좋습니다 :o)
그래서 그렇습니다 :) 이중 루프를 만들어 차트의 모든 칠면조를 문제 없이 통과할 수 있습니다.
불행하게도. 주문 시스템은 변경되지 않습니다.