표준 표시기의 색상을 프로그래밍 방식으로 변경하는 방법은 무엇입니까?
그런 질문을 한 번도 다루지 않았지만 생각은 다음과 같습니다. 표준 표시기 코드를 열고 표시기_ 색상* 이 있는 행을 찾아야 합니다.
글쎄, 뭔가
//--- японские свечи будут рисоваться цветом clrDodgerBlue #property indicator_color1 clrDodgerBlue
그런 다음 원하는 색상을 붙여넣습니다. MQL5 참조 / 사용자 지정 표시기 / 표시기 속성 및 기능과 MQL5 참조 간의 관계 / 표준 상수, 열거 및 구조 / 표시기 상수 / 그리기 스타일도 참조하십시오.
물론 감사합니다.
그러나 코드를 편집해야 할 때마다?
남자 이름
물론 감사합니다.
그러나 코드를 편집해야 할 때마다?
물론 감사합니다.
그러나 코드를 편집해야 할 때마다?
당신의 논리에 문제가 있습니다. 당신은 원래 다음과 같이 물었습니다.
표준 표시기의 색상을 프로그래밍 방식으로 변경하는 방법은 무엇입니까?
논리에 문제가 있습니다. 당신은 원래 다음과 같이 물었습니다.
친애하는 아볼크!
분명히 귀하의 코드에서.
남자 이름
"일반" 표시기를 직접 만들고 옵션을 삽입하십시오. 예를 들어(순전히 아이디어): 입력 매개변수에 색상을 표시한 다음 PlotIndexSetInteger (N-1, PLOT_LINE_COLOR , nColor) 함수를 사용하여 Oninit()에서 색상을 처리합니다. 핸드북의 예가 도움이 될 수 있습니다. 그러면 코드 자체를 편집하는 것이 아니라 실행 또는 변경될 때 표시기의 속성을 통해 원하는 색상을 설정할 수 있습니다.
정말 감사합니다.
안타깝게도 개발자들은 그것을 생각하지 않았습니다.
이 코드는 작동했어야 했지만.... 아아...
params[ 0 ].type = TYPE_INT ; params[ 0 ].integer_value = 10 ; params[ 1 ].type = TYPE_INT ; params[ 1 ].integer_value = 0 ; params[ 2 ].type = TYPE_INT ; params[ 2 ].integer_value = MODE_SMA ; params[ 3 ].type = TYPE_INT ; params[ 3 ].integer_value = PRICE_MEDIAN ; params[ 4 ].type = TYPE_COLOR ; params[ 4 ].double_value = clrBlue ; ma_handle = IndicatorCreate ( NULL , PERIOD_CURRENT , IND_MA , 5 , params ); if ( ma_handle != INVALID_HANDLE ) { ChartIndicatorAdd ( 0 , 0 , ma_handle ); }
이 코드는 작동했어야 했지만.... 아아...
IndicatorCreate() 함수와 함께 작동하지 않았습니다. 사용자 지정 표시기 를 만드는 것이 더 쉬운 것으로 나타났습니다. 그럼에도 불구하고 코드의 일부만 제공했기 때문에 질문은 다음과 같습니다. params 변수를 사용하기 시작하기 전에 재설정했습니까? 예를 들어 다음과 같습니다.
MqlParam params; ZeroMemory (params);
그리고 귀하의 게시물은 어떤 오류 코드를 반환합니까?
그리고 그들은 이렇게 했습니다.
ArrayResize (params, 5 );?
또한 IND_MA( iMA ) 표시기에는 "색상"과 같은 매개변수가 없으며 사용자가 지정했습니다. 여기에서 iMA 사용 예를 참조하십시오: MQL5 참조 / 시계열 및 지표 액세스 / IndicatorCreate.
이 코드는 작동했어야 합니다
왜 그런 겁니까? 먼저 색상이 왜 실수인지 설명하십시오.
params[ 4 ].type = TYPE_COLOR ; params[ 4 ].double_value = clrBlue ;
좋은 오후의 스트링고와 예델킨!
제 글을 잘 안 읽으셨나봐요.
"개발자들이 그런 생각을 하지 못한 게 너무 안타까워요."
이제 위의 코드를 작성한 이유를 설명하겠습니다.
이동 평균 설정에서 표시기에 7개의 매개변수(5개 기본 + 2개 라인)가 있음이 분명합니다.
탭에 "설정"이라고 표시되어 있습니다.
모든 매개변수를 "수동으로" 변경할 수 있는 경우
프로그래밍 방식으로 모든 매개변수를 변경하는 기능! 개발자가 한 일
IndicatorCreate 함수에 있지만 끝까지는 아닙니다(또는 이것은 BUG입니다).
MqlParam 구조를 사용하면 색상을 입력할 수 있습니다. - TYPE_COLOR( ENUM_DATATYPE ) ;
MQL5 참조에서:
색상 유형 은 색상 정보를 저장하도록 설계되었으며 메모리에서 4바이트를 차지합니다. 첫 번째 바이트는 고려되지 않고 나머지 3바이트에는 RGB 구성 요소가 포함됩니다.
......
정수 표현은 16진수 또는 10진수로 작성됩니다. 16진수는 0x00BBGGRR입니다.
//--- 정수 표현
0xFFFFFF // 흰색
16777215 // 흰색
0x008000 // 녹색
32768 // 녹색
인용 끝.
구조체 MqlParam
{
ENUM_DATATYPE 유형 ; // 입력 파라미터 타입, ENUM_DATATYPE 열거 값
긴 정수 값 ; // 정수 값을 저장하는 필드
더블 이중 값 ; // double 또는 float 값을 저장하기 위한 필드
끈 문자열 값 ; // 스트링 타입의 값을 저장하기 위한 필드
};
(처음에는 오래 시도했지만 작동하지 않았으며 두 번 시도했지만 작동하지 않아 코드에 남아 있습니다).
다음과 같아야 합니다.
MqlParam 매개변수[5];
.......
매개변수[ 4 ].유형 = TYPE_COLOR ;
params[ 4 ].integer_value = clrBlue; // - 파란색 0х00FF0000 (16711680)
stringo, 나는 "무슨 두려움으로" 당신의 질문에 대답했습니까?
다시 한 번 말씀드리지만, 개발자분들이 색상 변경을 하지 않은 점은 유감입니다.
안부, 미하일
좋은 오후, stringo와 Yedelkin!
제 글을 잘 안 읽으셨나봐요.
"개발자들이 그런 생각을 하지 못한 게 너무 안타까워요."
Mikalas, 너무 많은 전문가들이 이미 다른 사람들을 위해 결론을 내리기 위해 여기에서 이혼했습니다. 그들의 수를 늘리지 마십시오, plz.
더 나아가. 나는 당신을 돕기 위해 특정한 비감정적 질문을 했습니다. 당신은 그들에게 대답하는 대신에 "당신이 어떻게 그런 삶을 살게 되었는지"라고 말합니다. 무엇을 원하십니까? - 식별한 버그의 존재를 누군가에게 확신시키거나 선택한 코드를 "프로그래밍 방식으로" 개선하시겠습니까? 특정 "버그"가 보이면 상황에 대한 전체 설명과 함께 서비스 데스크에 문의하십시오. "프로그래밍 방식으로"작업하려면 표시기 생성 및 작동의 본질을 탐구하십시오.
안녕하세요!
표준 표시기의 색상을 프로그래밍 방식으로 변경하는 방법은 무엇입니까?
감사합니다 마이클