오류, 버그, 질문 - 페이지 1396

 
Ilya Malev :
예제에서는 스케일이 어떻게 작동하는지 보여주기 위해 MathRand를 만들었습니다. 원작에서 나는 어떤 작가의 거래 기법에 따라 거기에 수치적 수준을 계산했다. 처음에는 1부터 5까지 만들고 싶었지만 DRAW_NONE이 있는 버퍼에 이러한 값을 가진 MT4에서도 적절한 스케일을 달성하지 못했습니다. 음수를 만들고 최소값을 0으로 고정한 후 문제를 해결할 수 있었습니다. 표시기를 MT5로 전송할 때 이 솔루션도 작동하지 않는 것으로 나타났습니다. 나는 Voldemar가 말한 대로 Point를 곱해야 했습니다.

그건 그렇고, 나는 완전히 잊어 버렸습니다. ))

다음과 같이 시도하십시오.

   SetIndexBuffer ( 0 ,buffer1, INDICATOR_DATA );
   SetIndexBuffer ( 1 ,buffer2, INDICATOR_CALCULATIONS );

표시기_계산 >>>

 
Karputov Vladimir :
예를 들어 곡선을 수정하고 싶지 않은 경우가 있습니다. 수정하시면 확인하겠습니다.

실제 애플리케이션 코드라면 수정하겠습니다. 그러나 이 코드는 그가 성공적으로 대처한 문제를 보여주기 위해 만들어졌습니다. 그것을 핥는 것은 결과에 영향을 미치지 않기 때문에 시간 낭비입니다.

 
Anatoli Kazharski :

그건 그렇고, 나는 완전히 잊어 버렸습니다. ))

다음과 같이 시도하십시오.

INDICATOR_CALCULATIONS 를 사용하여 indicator_plots=1인 것처럼 시도했습니다.

두 번째 버퍼의 판독값은 PlotIndexSetInteger(1, PLOT_SHOW_DATA, true)에 관계없이 데이터 창 에서 단순히 사라집니다.

 
Anatoli Kazharski :

이 오류를 서비스 데스크에 보고하고 거기에서 응답을 기다릴 수 있습니다.

썼다. 그들이 대답하면 구독을 취소하겠습니다) 맞습니다. 이것이 실수인지 의심됩니다. 여기서 우리는 알게 될 것입니다.
 
Ilya Malev :

INDICATOR_CALCULATIONS 를 사용하여 indicator_plots=1인 것처럼 시도했습니다.

두 번째 버퍼의 판독값은 PlotIndexSetInteger(1, PLOT_SHOW_DATA, true)에 관계없이 데이터 창 에서 단순히 사라집니다.

그러나 스케일링 문제는 이 방법으로 해결됩니다. 따라서 데이터 창에 이러한 버퍼를 표시하는 기능을 추가하기 위해 서비스 데스크에 요청을 생성할 수 있습니다.

다음을 시도할 수도 있습니다.

 //+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int     id,       // идентификатор события
                   const long    &lparam, // параметр события типа long
                   const double &dparam, // параметр события типа double
                   const string &sparam) // параметр события типа string
  {
   if (id== CHARTEVENT_MOUSE_MOVE )
     {
       int       subwin = WRONG_VALUE ; // Номер окна, в котором находится курсор
       datetime time   = NULL ;         // Время соответствующее координате X
       double    level  = 0.0 ;         // Уровень (цена) соответствующий координате Y
       //---
       if ( ChartXYToTimePrice ( 0 ,( int )lparam, int (dparam),subwin,time,level))
        {
         int bars_total= Bars ( Symbol (), Period (),time, TimeCurrent ());
         //---
         Comment ( "x: " ,lparam, "; y: " ,( int )dparam, "; subwin: " ,subwin, "; time: " ,time, "; level: " ,level, "\n" ,
                 "indicator value: " ,buffer2[bars_total]);
        }
     }
  }

//---

OnInit ()에서 다음을 추가해야 합니다.

 void OnInit ()
  {
   ChartSetInteger ( 0 , CHART_EVENT_MOUSE_MOVE , true );
  }
 
Anatoli Kazharski :

따라서 데이터 창에 이러한 버퍼를 표시하는 기능을 추가하기 위해 서비스 데스크에 요청을 생성할 수 있습니다.

방금 문제를 설명했습니다. DRAW_NONE 버퍼 값의 논리는 정의상 그리기가 있는 값의 논리와 다르며, 이는 그래픽 값이 아니므로 이를 사용한 크기 조정은 논리적이지 않습니다. 그리고 그들이 이 문제를 어떻게 해결하고 싶은지 아니면 그대로 두기를 원하는지 - 이것은 더 이상 내 일이 아닙니다.

 
Ilya Malev :

방금 문제를 설명했습니다. DRAW_NONE 버퍼 값의 논리는 정의상 그리기가 있는 값의 논리와 다르며, 이는 그래픽 값이 아니므로 이를 사용한 크기 조정은 논리적이지 않습니다. 그리고 그들이 이 문제를 어떻게 해결하고 싶은지, 아니면 이 문제를 더 이상 내 일이 아닌 상태로 두고 싶어하는지.

이전글은 안되나요? 모든 것이 그대로 유지되는 경우를 대비하여. )

파일:
Test.mq5  4 kb
 
Anatoli Kazharski :

이전글은 안되나요? 모든 것이 그대로 유지되는 경우를 대비하여. )

물론 조언 감사합니다. 제가 목발을 짚고 싶다는 생각이 들면 뭔가 생각해 냈을 텐데, 먼저 데이터 창에서 값을 보는 것이 편리합니다. 그리고 두 번째로 다른 지표와 Expert Advisors에서 지표 버퍼의 이 값을 사용해야 하는데 계산용 버퍼를 만들면 iCustom을 통해 그 값을 가져오는 것이 불가능하다는 말이 있습니다.

결과적으로 두 번째 버퍼의 값에 Point를 곱하여 문제를 해결하면서

 
Ilya Malev :

방금 문제를 설명했습니다. DRAW_NONE 버퍼 값의 논리는 정의상 그리기가 있는 값의 논리와 다르며, 이는 그래픽 값이 아니므로 이를 사용한 크기 조정은 논리적이지 않습니다. 그리고 그들이 이 문제를 어떻게 해결하고 싶은지 아니면 그대로 두기를 원하는지 - 이것은 더 이상 내 일이 아닙니다.

값을 매핑하려는 위치에 따라 다릅니다. 표시를 별도의 창으로 설정하면 계산된 버퍼 값이 보이는지 여부는 중요하지 않습니다. 모든 값은 여전히 이 창에 속합니다. 따라서 스케일이 파손될 수 있습니다.

논리가 아닌 것에 대해 - 동의하지만 수정하지 않을 것입니다.

 
Ilya Malev :

물론 조언 감사합니다. 제가 목발을 짚고 싶다는 생각이 들면 뭔가 생각해 냈을 텐데, 먼저 데이터 창에서 값을 보는 것이 편리합니다. 그리고 두 번째로 다른 지표와 Expert Advisors에서 지표 버퍼의 이 값을 사용해야 하는데 계산용 버퍼를 만들면 iCustom을 통해 그 값을 가져오는 것이 불가능하다는 말이 있습니다.

시도 해봐. 색상 버퍼에서 값을 추출할 수 있습니다. 따라서 아마도 계산용 버퍼에서도 마찬가지입니다. 결국 인덱스가 있습니다. 그리고 이론적으로 그에게 연락할 수 있습니다.