mql5 언어의 특징, 미묘함 및 작업 방법 - 페이지 149

 
fxsaber :

감사합니다. 좋은 규칙입니다. 나는 나 자신의 무능함의 희생양이 되었다. 사실, 그러한 더 분명한 경우에는 더 많은 규칙이 필요합니다.


Warning smart는 두 경우 모두에 대해 수행할 수 있습니까?

필요 없음))) 꽤 지루할 것입니다)))

 
Vladimir Simakov :
이 코드의 문제점은 무엇입니까? Deinit에서는 상수 포인터로 객체를 죽였습니다(여기에 핸들이 있다는 것을 알고 있습니다). C ++ 스타일의 사지에서 일반 촬영, 그렇지 않으면 제작자가 모든 사람을 해고했습니다.)))

시작 시 문제가 없을 것입니다. 실행 후에는 조금 기다렸다가 어드바이저에 실행이 중단되는 상황을 만들 수 있습니다.

그것은 미스터리한 것이 아니라, 첫눈에 무해한 코드에서 문제를 찾는 것이 이해가 훨씬 더 좋다는 것입니다.
 
fxsaber :

시작 시 문제가 없을 것입니다. 실행 후에는 조금 기다렸다가 어드바이저에 실행이 중단되는 상황을 만들 수 있습니다.

그것은 미스터리한 것이 아니라, 첫눈에 무해한 코드에서 문제를 찾는 것이 이해가 훨씬 더 좋다는 것입니다.
예, 문제가 무엇인지 압니다. 시간 프레임 변경 및 oops.. 내 말은, 모든 것이 여기에서 표준입니다. 경고? 무엇 때문에? 그건 나 자신을 위한 것인데, 나 자신이 비슷한 사람을 만났을 때 실력을 올릴 때만 계산한다. IMHO의 예를 통해 여기 커뮤니티의 20%의 힘으로 직면할 수 있는데 왜 개발을 박탈합니까?
 
Vladimir Simakov :
예, 문제가 무엇인지 압니다. 시간 프레임 변경 및 oops.. 내 말은, 모든 것이 여기에서 표준입니다. 경고? 무엇 때문에? 그건 나 자신을 위한 것인데, 나 자신이 비슷한 사람을 만났을 때 실력을 올릴 때만 계산한다. IMHO의 예를 통해 여기 커뮤니티의 20%의 힘으로 직면할 수 있는데 왜 개발을 박탈합니까?

내 상황은 더욱 흥미로웠다. 아무 변화가 없었지만 다시 연결한 후 OnDeinit가 호출되었습니다. 이제 Reason을 추적하겠습니다.

 

Market Watch에서 필요한 기호를 검색해야 하는 필요성에 끊임없이 직면합니다. 예를 들어, 현재 차트의 기호입니다.

매번 소중한 시간이 많이 필요합니다. 바로 가기 키에 다음 스크립트를 걸어 자동화합니다.

 // После запуска и нажатия ENTER делает активным в Обзоре рынка символ чарта.
#include <WinAPI\winuser.mqh>

#define GA_ROOT           0x00000002

#define WM_KEYDOWN         0x0100
#define WM_LBUTTONDOWN     0x0201

#define VK_DELETE         0x2E

#define WM_CHAR           0x0102

#define GET_HANDLE                                                                       \
   long Handle = user32::GetAncestor(:: ChartGetInteger ( 0 , CHART_WINDOW_HANDLE ), GA_ROOT); \
                                                                                         \
   for ( int i = 0 ; i < sizeof (ControlID) / sizeof ( int ); i++)                              \
    Handle = user32::GetDlgItem(Handle, ControlID[i]);


bool SetSymbolNavigator( const string SymbName )
{
   const bool Res = :: SymbolInfoInteger (SymbName, SYMBOL_EXIST );

   if (Res)
  {
     static const int ControlID[] = { 0xE81C , 0x804B , 0x27A0 , 0x271B , 0x3E9 };
    GET_HANDLE

    user32::SendMessageW(Handle, WM_LBUTTONDOWN, 0 , 0 );
    user32::SendMessageW(Handle, WM_KEYDOWN, VK_DELETE, 0 );

     const int Size = :: StringLen (SymbName);
    
     for ( int i = 0 ; i < Size; i++)
      user32::SendMessageW(Handle, WM_CHAR, SymbName[i], 0 );
  }

   return (Res);
}

void OnStart ()
{
  SetSymbolNavigator( _Symbol );
}
 
fxsaber :

나는 Market Watch에서 필요한 기호를 검색해야 하는 필요성에 끊임없이 직면하고 있습니다. 예를 들어, 현재 차트의 기호입니다.

매번 소중한 시간이 많이 필요합니다. 바로 가기 키에 다음 스크립트를 걸어 자동화합니다.

동료, 목표에 대해 지정하십시오. 기호를 Market Watch에 표시하시겠습니까, 아니면 Market Watch에서 강조 표시하시겠습니까?

 
Denis Kirichenko :

동료, 목표에 대해 지정하십시오. 기호를 Market Watch에 표시하시겠습니까, 아니면 Market Watch에서 강조 표시하시겠습니까?

강조 표시됩니다. 예를 들어 사용자 정의 항목으로 가득 차 있습니다. 내가 볼 수 있는 사용자 지정 차트에서 테스터를 실행해야 합니다.

그런 다음 이 스크립트를 실행한 다음 Market Watch에서 선택한 기호를 마우스로 테스터에 던집니다. 모든 작업에 몇 초가 걸립니다.

 
fxsaber :

강조 표시됩니다. 예를 들어 사용자 정의 항목으로 가득 차 있습니다. 내가 볼 수 있는 사용자 지정 차트에서 테스터를 실행해야 합니다.

그런 다음 이 스크립트를 실행한 다음 Market Watch에서 선택한 기호를 마우스로 테스터에 던집니다. 모든 작업에 몇 초가 걸립니다.

그렇다면 이 스크립트는 저에게 적합하지 않습니다. 아무 일도 일어나지 않고 문자가 강조 표시되지 않습니다.

실행하고 Enter 키를 누릅니다. 로그에 오류가 표시됩니다.

 2019.11 . 29 11 : 47 : 38.609 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\ 5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found

예, 스크립트 이름을 SetActiveSymbol.mq5 로 지정했습니다.

 
Denis Kirichenko :

로그에 오류가 표시됩니다.

그래서 그냥 시작하지 않습니다. 파일이 없습니다.

 
fxsaber :

그래서 그냥 시작하지 않습니다. 파일이 없습니다.

그는. 로그에서 항목을 하나만 가져왔습니다. 완전한 것은 다음과 같습니다.

 2019.11 . 29 12 : 37 : 18.851 Scripts script SetActiveSymbol (AUDJPY,H1) loaded successfully
2019.11 . 29 12 : 37 : 18.878 Scripts script SetActiveSymbol (AUDJPY,H1) removed
2019.11 . 29 12 : 37 : 26.419 Error   file C:\Users\Admin\AppData\Roaming\MetaQuotes\Terminal\ 5 B326B03063D8D9C446E3637EFA32247\MQL5\Scripts\Shared Projects\Testing\fxsaber\SetActiveSymbol.mq5 not found