찻주전자의 질문 - 페이지 9

 
stringo :

그리고 나는 이 문제에 대해 말하지 않았다.

테스터 에이전트 로그, 테스터 에이전트 로그를 의미합니다.

글쎄, 먼저 늦게 온 사람들의 경우 위치와 내용을 표시해야합니다 (바람직하게는 그림에서) ...
 

드래그하여 수평선이나 수직선 을 따라 개체를 부드럽게 움직일 수 있습니까?

차트에 스크롤 유형을 만들고 싶습니다.

Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы объектов / Типы объектов - Документация по MQL5
 
kPVT :

드래그하여 수평선이나 수직선 을 따라 개체를 부드럽게 움직일 수 있습니까?

차트에 스크롤 유형을 만들고 싶습니다.

스크립트를 찾아 약간 수정했습니다.

 #import "user32.dll"
bool       GetCursorPos( int &Pos[]);
bool       GetWindowRect( int hWnd, int &Pos[]);
#import
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart ()
  {
//---
   int p[ 2 ];
   int rect[ 4 ];
   int hwnd= ChartGetInteger ( ChartID (), CHART_WINDOW_HANDLE );
   while (! IsStopped ())
     {
      GetWindowRect(hwnd,rect);
      GetCursorPos(p);
       int X=p[ 0 ]-rect[ 0 ];
       int Y=p[ 1 ]-rect[ 1 ];
       string c= "Глобальные координаты мыши x= " +p[ 0 ]+ " y= " +p[ 1 ]+ "\n" +
               "Координаты мыши в окне котировок x= " +X+ " y= " +Y;
       Comment (c);
       Sleep ( 100 );
     }
  }
//+------------------------------------------------------------------+

스크롤을 부드럽게 만들기 위해 마우스 좌표를 얻기 위해 user32.dll을 사용하려고 합니다. 제대로 작동해야 합니다.

일반적으로 Chart 개체에 대한 기본 제공 탐색 도구가 있으면 좋을 것입니다.

 
앵커 각도 섹션의 예를 보셨습니까?
 
Rosh :
앵커 각도 섹션의 예를 보셨습니까?

감사합니다, 이미 메시지를 찾아서 삭제했지만 당신이 더 빨랐습니다 :)

다른 질문이 있습니다. 어드바이저는 OnTimer에서 작동하며 창은 다음 틱으로만 업데이트됩니다. 이 문제를 해결할 수 있습니까?

 
Olegts :

감사합니다, 이미 메시지를 찾아서 삭제했지만 당신이 더 빨랐습니다 :)

다른 질문이 있습니다. 어드바이저는 OnTimer에서 작동하며 창은 다음 틱으로만 업데이트됩니다. 이 문제를 해결할 수 있습니까?

차트의 개체 의미에서 창?

ChartRedraw - 차트를 강제로 다시 그 립니다(대부분 도움이 될 것입니다).

Документация по MQL5: Операции с графиками / ChartRedraw
Документация по MQL5: Операции с графиками / ChartRedraw
  • www.mql5.com
Операции с графиками / ChartRedraw - Документация по MQL5
 
Interesting :

차트의 개체 의미에서 창?

ChartRedraw - 차트를 강제로 다시 그 립니다(대부분 도움이 될 것입니다).

삽입된 ChartRedraw(0); , 창은 정확히 0이고 유일한 창이며 도움이되지 않습니다. Print()는 초당 한 번 데이터 변경 사항을 표시하지만 개체는 다음 틱 후에만 업데이트됩니다. EventSetTimer(1)
 
Olegts :
삽입된 ChartRedraw(0); , 창은 정확히 0이고 유일한 창이며 도움이되지 않습니다. Print()는 초당 한 번 데이터 변경 사항을 표시하지만 개체는 다음 틱 후에만 업데이트됩니다. EventSetTimer(1)

그러면 최소한 더 많은 정보가 필요합니다.

개체는 무엇입니까? 누가, 어떻게 생성합니까(예: 올빼미나 칠면조가 개체를 생성/변경할 수 있음)?

그리고 전체적인 상황은 매우 모호하게 설명되어 있습니다.

 
Interesting :

그러면 최소한 더 많은 정보가 필요합니다.

개체는 무엇입니까? 누가, 어떻게 생성합니까(예: 올빼미나 칠면조가 개체를 생성/변경할 수 있음)?

그리고 전체적인 상황은 매우 모호하게 설명되어 있습니다.

 //+------------------------------------------------------------------+
//|                                                    testClass.mq5 |
//|                        Copyright 2011, MetaQuotes Software Corp. |
//|                                              http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2011, MetaQuotes Software Corp."
#property link       "http://www.mql5.com"
#property version   "1.00"

//--- input parameters

input int Timer= 1 ;


int Val=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//--- create timer
   EventSetTimer (Timer);
   int height= ChartGetInteger ( 0 , CHART_HEIGHT_IN_PIXELS , 0 );
   int width= ChartGetInteger ( 0 , CHART_WIDTH_IN_PIXELS , 0 );
   int step= 0 ;
   step=step+ 30 ; CreateLabel( 0 , "EUR" , CORNER_LEFT_UPPER , "" , 50 ,step);
   step=step+ 30 ; CreateLabel( 0 , "GBP" , CORNER_LEFT_UPPER , "" , 50 ,step);
   
   
//---
   return ( 0 );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//--- destroy timer
   EventKillTimer ();
   ObjectDelete ( 0 , "EUR" );
   ObjectDelete ( 0 , "GBP" );
  
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
//void OnTick()
//  {
//---
//   
//  }
//+------------------------------------------------------------------+
//| Timer function                                                   |
//+------------------------------------------------------------------+
void OnTimer ()
  {
   Val=Val+1;
   int EUR0=Val,EUR1=Val;
   
   int GBP0=Val,GBP1=Val;

     
   ObjectSetString ( 0 , "EUR" , OBJPROP_TEXT , "EUR: " + IntegerToString (EUR0)+ " | " + IntegerToString (EUR1));
   ObjectSetString ( 0 , "GBP" , OBJPROP_TEXT , "GBP: " + IntegerToString (GBP0)+ " | " + IntegerToString (GBP1));

   ChartRedraw ( 0 );
//---
  }
//+------------------------------------------------------------------+

void CreateLabel( long    chart_id,
                 string name,
                 int     chart_corner,
                 string text_label,
                 int     x_ord,
                 int     y_ord)
  {
//---
   ObjectCreate (chart_id,name, OBJ_LABEL , 0 , 0 , 0 );
   ResetLastError ();
   if (! ObjectSetInteger (chart_id,name, OBJPROP_CORNER ,chart_corner))
       Print ( "Не удалось установить угол привязки для объекта " ,
            name, ", ошибка " , GetLastError ());
   ObjectSetInteger (chart_id,name, OBJPROP_XDISTANCE ,x_ord);
   ObjectSetInteger (chart_id,name, OBJPROP_YDISTANCE ,y_ord);
   ObjectSetString (chart_id,name, OBJPROP_TEXT ,text_label);
   }
 
Olegts :
모든 것이 정상적으로 업데이트되며 값은 1초마다 변경됩니다.