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

 
Dmytro Zelenskyy :

진지한 접근

자, 그럼, 당신이 스크리닝하고 싶은 바로 위에서, 당신은 그것에 대해 한 번 작은 스크립트를 실행하고, 이것은 id를 전역 변수 에 부여합니다(임시 전역 변경보다 낫습니다).

그리고 귀하의 스크립트는 id로 심사됩니다.

까다로운 움직임!

고맙습니다!
 
Dmytro Zelenskyy :

화면 너비를 픽셀 단위로 정확하게 계산하더라도 화면의 일부가 가격 열에 의해 가려집니다.

또한 화면 해상도에 따라 다릅니다. 저(1280x1024)의 경우 통화 자릿수에 따라 50에서 60까지입니다. 다른 화면에서는 다릅니다.

다음은 해당 픽셀을 화면 너비에 추가하기 위한 열 너비를 파악하는 방법입니다. (열이 닫힌 것을 화면에서 엽니 다)


안녕하세요 fxsaber에서:

 //+------------------------------------------------------------------+
#define TOSTRING(A) #A + " = " + ( string )(A) + "\n"
// Ширина вертикальной шкалы графика
int GetWidthScale( const long chartID= 0 )
  {
   const string Name= __FUNCTION__ +( string ) MathRand ();

   ObjectCreate (chartID,Name, OBJ_CHART , 0 , 0 , 0 );
   ObjectSetInteger (chartID,Name, OBJPROP_XDISTANCE ,- 1 e3);

   const long chart= ObjectGetInteger (chartID,Name, OBJPROP_CHART_ID );

   const int Res=( int )( ChartGetInteger (chart, CHART_WIDTH_IN_PIXELS ) -
                  ( ChartSetInteger (chart, CHART_SHOW , false ) ? ChartGetInteger (chart, CHART_WIDTH_IN_PIXELS ) : 0 ));

   ObjectDelete (chartID,Name);

   return (-Res);
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnStart ()
  {
   Print (TOSTRING(GetWidthScale()));
  }
//+------------------------------------------------------------------+
 
Artyom Trishkin :

안녕하세요 fxsaber에서:

주인의 일이 두렵다!!!

시원한!

 
Artyom Trishkin :

안녕하세요 fxsaber에서:

코드는 확실히 매우 흥미롭지 만 문제가 해결되지 않는 것으로 나타났습니다 ...

 
문제는 특정 막대를 포함하여 최대 픽셀 수를 결정하는 데 사용할 수 있는 범용 기능(모든 확대/축소 및 다양한 스케일 너비로 작업)을 얻는 방법이 명확하지 않다는 것입니다.
 
Aleksey Vyazmikin :
문제는 특정 막대를 포함하여 최대 픽셀 수를 결정하는 데 사용할 수 있는 범용 기능(모든 확대/축소 및 다양한 스케일 너비로 작업)을 얻는 방법이 명확하지 않다는 것입니다.

그만해 모든 자물쇠 가 여기에 있습니다 .
막대 너비는 1,2,4,8,16,32 값만 허용합니다.

이상하게도 CHART_POINTS_PER_BAR ID가 작동하지 않습니다.

그러나 픽셀 단위의 막대 너비는 쉽게 계산할 수 있습니다.

 int WidthBar= int ( 1 << ChartGetInteger ( 0 , CHART_SCALE ));
왼쪽 막대는 항상 중앙에서 그려지고 오른쪽 막대는 원하는 대로 그려집니다. 따라서 원점은 0(왼쪽)입니다.
 
Nikolai Semko :

그만해 모든 자물쇠 가 여기에 있습니다 .
막대 너비는 1,2,4,8,16,32 값만 허용합니다.

이상하게도 CHART_POINTS_PER_BAR ID가 작동하지 않습니다.

그러나 픽셀 단위의 막대 너비는 쉽게 계산할 수 있습니다.

왼쪽 막대는 항상 중앙에서 그려지고 오른쪽 막대는 원하는 대로 그려집니다. 따라서 원점은 0(왼쪽)입니다.

이것은 이론이지만 가장 정확한(더 정확한) 옵션은 다음과 같습니다.

pp=( double ) ChartGetInteger (handle, CHART_WIDTH_IN_PIXELS )/( double ) ChartGetInteger (handle, CHART_WIDTH_IN_BARS )*((Shift_Start-Shift_Stop)*(- 1 )+ 2 )+Schkala+ 3 ;

그러나 그는 또한 부부를 흔들립니다.

 
Aleksey Vyazmikin :

이것은 이론이지만 가장 정확한(더 정확한) 옵션은 다음과 같습니다.

그러나 그는 또한 부부를 흔들립니다.

:))
명확한 작업을 공식화하십시오. 어떤 가치를 얻어야 합니까?
 
Nikolai Semko :
:))
명확한 작업을 공식화하십시오. 어떤 가치를 얻어야 합니까?

날짜 A부터 날짜 B까지의 스크린샷을 찍어야 합니다. 이 경우 어떤 줌에서도 기능의 발달이 정확해야 합니다.

 

스크린샷을 기반으로 별도의 분기를 만들어 문제를 설명하고 제가 가지고 있는 코드를 게시했습니다. 전문가에게 도움을 요청합니다!

https://www.mql5.com/ru/forum/237291

Организация пакетной обработки задачи по снятия изображений с экрана графика
Организация пакетной обработки задачи по снятия изображений с экрана графика
  • 2018.04.15
  • www.mql5.com
Встала у меня задача доработать скрипт https://www.mql5.com/ru/code/936 , который делает скрины...