MQL4 및 MQL5에 대한 초보자 질문, 알고리즘 및 코드에 대한 도움말 및 토론 - 페이지 953

 
Rustam Bikbulatov :

나에게 뭐가 문제 니? 미결 주문만 고려하도록 하는 방법은 무엇입니까? 이 코드는 아직 부분적으로 마감된 주문을 캡처하므로 필요하지 않습니다.

사실 조금 불분명합니다. 함수가 int 유형이지만 string 유형의 값을 반환하는 이유는 무엇입니까? 컴파일할 때 오류가 발생합니까?
 
Igor Kryuchkov :

좌표가 아닌 가격과 시간으로 묶인 OBJ_RECTANGLE 개체 가 있습니다.

그리고? 좋아요. 타임라인을 압축하면 사각형도 압축됩니다. 논리적인가요? 당신은 논리에 어려움을 겪고 있습니까?

차트 이동을 추적합니다.

 
Artyom Trishkin :

그리고? 좋아요. 타임라인을 압축하면 사각형도 압축됩니다. 논리적인가요? 당신은 논리에 어려움을 겪고 있습니까?

차트 이동을 추적합니다.

어느 쪽을 파야 하는지 묻는 요청입니다.

 
Igor Kryuchkov :

어느 쪽을 파야 하는지 묻는 요청입니다.

이 게시물에서 내 힌트를 인용했습니다.

목적에 따라 사용할 수 있는 여러 유형의 개체가 있습니다. 지금 사용하고 있는 것이 작동하지 않습니다.

몇 가지 옵션이 남아 있습니다. 그리고 그들 모두가 여기에 있습니다. 읽기만 하면 되고 명확하지 않은 것은 다음과 같이 질문하십시오.

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
Igor Kryuchkov :

어느 쪽을 파야 하는지 묻는 요청입니다.

위에 표시된 개체 및 다음과 같습니다.

Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
Документация по MQL5: Константы, перечисления и структуры / Константы графиков / Типы событий графика
  • www.mql5.com
Существуют 11 видов событий, которые можно обрабатывать с помощью функции предопределенной функции OnChartEvent(). Для пользовательских событий предусмотрено 65535 идентификаторов в диапазоне от CHARTEVENT_CUSTOM до CHARTEVENT_CUSTOM_LAST включительно. Для генерации пользовательского события необходимо использовать функцию EventChartCustom...
 
Artyom Trishkin :

위에 표시된 개체 및 다음과 같습니다.

내 문제를 해결할 개체가 표시되지 않습니다. 프레임을 지원하면 OBJ_TEXT 인가요!?

 


Rectangle_label이 필요한 것입니다.

그러나 ChartTimePriceToXY를 사용하여 Time, Price를 좌표로 변환하려고했습니다. 나는 그럭저럭 올바른 위치에 그렸지만, 다시 그래프를 스크롤할 때, 그것은 나에게 적합하지 않은 정지 상태로 서 있습니다.


BitMap과 같은 이야기는 좌표로 연결되기 때문에 차트를 스크롤할 때 모든 BitMap이 정지되어 있기 때문에 이것은 저에게 적합하지 않습니다.


그렇다면 일반적으로 문제는 위에서 설명한 내 아이디어를 구현할 수 있습니까?

 
Igor Kryuchkov :


Rectangle_label이 필요한 것입니다.

그러나 ChartTimePriceToXY를 사용하여 Time, Price를 좌표로 변환하려고했습니다. 나는 그럭저럭 올바른 위치에 그렸지만, 다시 그래프를 스크롤할 때, 그것은 나에게 적합하지 않은 정지 상태로 서 있습니다.


BitMap과 같은 이야기는 좌표로 연결되기 때문에 차트를 스크롤할 때 모든 BitMap이 정지되어 있기 때문에 이것은 저에게 적합하지 않습니다.


그렇다면 일반적으로 문제는 위에서 설명한 내 아이디어를 구현할 수 있습니까?

네.

OnChartEvent() 에 대한 도움말 링크를 제공했습니다.

 

안녕하세요 여러분, MT5의 lstrcpyW()에 문제가 있습니다.


winbase.mqh에 정의된 lstrcpyW(): string lstrcpyW(ushort &string1[],const string string2);


이 코드는 문자열을 클립보드에 복사합니다. 작동하도록 변경하는 방법


 //+------------------------------------------------------------------+
//| This piece of code will copy any text we want to the clipboard   |
//+------------------------------------------------------------------+
/*
#import "kernel32.dll"
   int GlobalAlloc(int Flags, int Size);   long                 GlobalAlloc(uint flags,ulong bytes);
   int GlobalLock(int hMem);               long                  GlobalLock(HANDLE mem);            
   int GlobalUnlock(int hMem);             int                    GlobalUnlock(HANDLE mem);
   int GlobalFree(int hMem);               long                 GlobalFree(HANDLE mem);
   int lstrcpyW(int ptrhMem, string Text);
#import


#import "user32.dll"
   int OpenClipboard(int hOwnerWindow);         int   OpenClipboard(HANDLE wnd_new_owner)
   int EmptyClipboard();                        int   EmptyClipboard(void);
   int CloseClipboard();                        int   CloseClipboard(void);
   int SetClipboardData(int Format, int hMem);  long  SetClipboardData(uint format,HANDLE mem);
#import
*/
#define GMEM_MOVEABLE   2
#define CF_UNICODETEXT   13



#include <WinAPI\winuser.mqh>
#include <WinAPI\winbase.mqh>
// Copies the specified text to the clipboard, returning true if successful
bool CopyTextToClipboard( string Text)
{ 
   bool bReturnvalue = false ;
   long wnd_new_owner= 0 ;
   // Try grabbing ownership of the clipboard 
   if (OpenClipboard(wnd_new_owner) != 0 ) {
       // Try emptying the clipboard
       if (EmptyClipboard() != 0 ) {
         // Try allocating a block of global memory to hold the text 
         int lnString = StringLen (Text);
         long hMem = GlobalAlloc(GMEM_MOVEABLE, lnString * 2 + 2 );
         if (hMem != 0 ) {
             // Try locking the memory, so that we can copy into it
             long ptrMem = GlobalLock(hMem);
             if (ptrMem != 0 ) {
               // Copy the string into the global memory
               lstrcpyW(ptrMem, Text);            
               // Release ownership of the global memory (but don't discard it)
               GlobalUnlock(hMem);            

               // Try setting the clipboard contents using the global memory
               if (SetClipboardData(CF_UNICODETEXT, hMem) != 0 ) {
                   // Okay
                  bReturnvalue = true ;   
               } else {
                   // Failed to set the clipboard using the global memory
                  GlobalFree(hMem);
               }
            } else {
               // Meemory allocated but not locked
               GlobalFree(hMem);
            }      
         } else {
             // Failed to allocate memory to hold string 
         }
      } else {
         // Failed to empty clipboard
      }
       // Always release the clipboard, even if the copy failed
      CloseClipboard();
   } else {
       // Failed to open clipboard
   }

   return (bReturnvalue);
}




void OnStart (){

bool re = false ;

re =CopyTextToClipboard( "11111" );

printf (re);

}