MQL5의 초보자 질문입니다. 프로는 지나치지 않습니다. - 페이지 6

 
_o0O :

또한 아무 것도 아니므로 모든 질문을 환영합니다.

설명서에는 이에 대한 언급이 없습니다. DRAW_NONE은 #property 또는 PlotIndexSetInteger(0,PLOT_DRAW_TYPE,DRAW_NONE)에서 작동하지 않으며, PlotIndexSetString(0, PLOT_LABEL, "Buff")도 작동하지 않으므로 clrNONE을 지정하여 달성하는 논리는 정확히 무엇입니까? 의도한 목표?

또한 모든 사람이 언어에 대한 문서를 읽는 방법을 아는 것은 아닙니다.

제시된 코드에는 확인하고 이해할 수 있는 모든 것이 있습니다.

 
Alexey Viktorov :

또한 모든 사람이 언어에 대한 문서를 읽는 방법을 아는 것은 아닙니다.

제시된 코드에는 확인하고 이해할 수 있는 모든 것이 있습니다.

이야기하고 싶니?

확인. 도움말에서 내 문제에 대한 해결책이 있는 곳을 보여주세요. 버퍼가 그리지 않도록 clrNONE을 지정하는 것은 미친 것처럼 보이기 때문에 코드는 문서화되지 않은 기능입니다.

 
Alexey Viktorov :

유형을 DRAV_NONE으로 설정하지 않고 색상 을 clr_NONE 으로 설정해야 합니다.

다음은 테스트 코드입니다.

설명하다:

 limit = rates_total-prev_calculated; // Это тупо для примера. В нормальном индикаторе так делать нельзя!

왜 안 돼? 왜 빨간색이지만 느낌표가 있습니까?

 
_o0O :

일부 표시기 버퍼가 차트에 그려지지 않고 " 데이터 창 " 표시기 창에 값을 표시하는지 확인하는 방법은 무엇입니까?

나는 이것을 좋아한다:


그러나 여전히 표시기는 버퍼를 그립니다.

여기에서 예를 볼 수 있습니다.

3TF_RSI_Average
3TF_RSI_Average
  • www.mql5.com
Индикатор Three timeframes RSI Average - отображает в отдельном окне три индикатора Relative Strength Index с заданных таймфреймов и их среднее значение. Имеет десять настраиваемых параметров: RSI period - период расчёта RSIOverbought - уровень перекупленностиOversold - уровень перепроданностиDrawing mode - режим рисованияFirst RSI timeframe...
 
Artyom Trishkin :

여기에서 예를 볼 수 있습니다.

아니, 그렇지 않습니다.

귀하의 예에서는 4 개의 버퍼가 그려지고 4 개의 데이터 창 에 4 개의 버퍼가 그려집니다. 그러나 그것들은 그려지지 않을 필요가 있지만 동시에 데이터 창에 있고 주어진 이름을 가질 것입니다.

 
_o0O :

아니, 그렇지 않습니다.

귀하의 예에서는 4 개의 버퍼가 그려지고 4 개의 데이터 창 에 4 개의 버퍼가 그려집니다. 그러나 그것들은 그려지지 않을 필요가 있지만 동시에 데이터 창에 있고 주어진 이름을 가질 것입니다.

자세히 보면 어떨까요? 또한 한 번에 하나씩 4개의 버퍼 중 3개를 비활성화하는 표시가 있습니다. 그러나 비활성화되면 데이터 창에 계속 표시되고 프로그래밍 방식으로 지정된 이름으로 모든 것이 요청된 대로 표시됩니다. 아니면 내가 질문을 이해하지 못했는가?

 
Artyom Trishkin :

자세히 보면 어떨까요? 또한 한 번에 하나씩 4개의 버퍼 중 3개를 비활성화하는 표시가 있습니다. 그러나 비활성화되면 데이터 창에 계속 표시되고 프로그래밍 방식으로 지정된 이름으로 모든 것이 요청된 대로 표시됩니다. 아니면 내가 질문을 이해하지 못했는가?

네 거기 보여요

PlotIndexSetInteger (0,PLOT_DRAW_TYPE,InpShowRSI1);

InpShowRSI1은 0 또는 1의 값을 취하며 이것이 작동하는 방식입니다.

하지만 PlotIndexSetInteger(0,PLOT_DRAW_TYPE, DRAW_NONE); 그리고 그것은 작동하지 않았다

 
_o0O :

네 거기 보여요

PlotIndexSetInteger(0,PLOT_DRAW_TYPE,InpShowRSI1);

InpShowRSI1은 0 또는 1의 값을 취하며 이것이 작동하는 방식입니다.

하지만 PlotIndexSetInteger(0,PLOT_DRAW_TYPE, DRAW_NONE); 그리고 그것은 작동하지 않았다

DRAW_NONE == 0

그리기_라인 == 1

그래서 당신은 어딘가에 다른 것이 있습니다. 이론적으로 모든 것이 당신을 위해 작동해야 합니다.

 
Artyom Trishkin :

설명하다:

왜 안 돼? 왜 빨간색이지만 느낌표가 있습니까?

표시기에 여러 막대 계산이 포함된 경우 이러한 구현은 배열 외부로 날아갑니다. 따라서 각 경우에 머리 근육을 긴장시켜야합니다 ...
 
Alexey Viktorov :
표시기에 여러 막대 계산이 포함된 경우 이러한 구현은 배열 외부로 날아갑니다. 따라서 각 경우에 머리 근육을 긴장시켜야합니다 ...

고맙지 만 사양 할게. 모든 것은 limit>1로 한 번만 수행됩니다. 이것은 역사의 첫 번째 시작 및 로드입니다. 그리고 평활 period_sm=10인 경우 이 경우 제한은 10보다 작아야 합니다. 따라서 다음과 같이 됩니다.

 if (limit> 1 )
  {
   limit=rates_total-period_sm- 1 ;
   ArrayInitialize (Buffer,InitValue);
  }

InitValue - 버퍼를 초기화할 값 - 0 또는 EMPTY_VALUE - 적절합니다. 아니면 -100500...