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

 
ingram :
조언 해주셔서 감사합니다! CTrad를 통해 모든 것이 예상대로 작동합니다. 그러나 문서화된 기능이 예상대로 작동하지 않는 것은 여전히 즐겁지 않습니다. (((((어제 Expert Advisor 를 제대로 작동시키려고 4시간을 허비했습니다. 이것은 일종의 왼손잡이 라이브러리가 아닙니다. 이것은 문서화된 기본 기능입니다. 매우 이상합니다!
가장 중요한 것은 모든 것이 원래대로 진행되었다는 것입니다.
 
MetaDriver :

1) 어떤 작업 버전의 터미널이 이미 설치되어 있습니까?

2) 그리고 어떤 종류의 프로세서가 있습니까? SSE2는 명령어를 지원합니까?

죄송합니다. 오래 동안 답변을 하지 못했습니다. 일이 많았습니다.

1. 터미널 버전 4.0 bilt 509가 설치됩니다.

2. AMD Duron 1.2GHz 프로세서 SSE 명령이 지원됩니다. SSE2는 지원되지 않습니다...

파일:
fiwq5lfx.JPG  174 kb
Report.txt  31 kb
 
cichiniov :

죄송합니다, 나는 오랫동안 대답하지 못했습니다, 그것은 일이 많았습니다.

1. 터미널 버전 4.0 bilt 509가 설치됩니다.

2. AMD Duron 1.2GHz 프로세서 SSE 명령이 지원됩니다 . SSE2는 지원되지 않습니다...

그게 요점입니다. 새 빌드는 SSE2 명령어를 지원하지 않으면 작동하지 않습니다. 하드웨어를 업그레이드해야 합니다.
 
이 고문의 오류가 무엇을 의미하는지 알려주십시오 ??? "2014.02.13 05:29:06.885 stop_gambling EURUSD,H1: 판매 후행 중지 설정 오류: 130" ??
 

도움말은 다음과 같이 말합니다.

STAT_RECOVERY_FACTOR

회복 계수 - 비율 STAT_PROFIT/ STAT_BALANCE_DD

아마도 수정해야 할 것 같습니다. 확인했습니다. 회수율은 수단 내에서 고려됩니다.

 

코드(전문가)가 64 터미널 vhlam을 낳습니다... 개발자 여러분, 도와주세요! #956630

 #import "msvcrt.dll"
   int memcpy( int &dst[], double &src[], int cnt);

#import "ntdll.dll"
   int RtlGetLastWin32Error();
   int RtlSetLastWin32Error( int dwErrCode);

#import "kernel32.dll"
   int    DeleteFileW ( string lpFileName);
   
   int    CloseHandle( int hObject);
   int    CreateFileW(       string lpFileName,         int dwDesiredAccess, 
                           int dwShareMode,           int lpSecurityAttributes,
                           int dwCreationDisposition, int dwFlagsAndAttributes, 
                           int hTemplateFile
                     );

   int    SetFilePointer( int hFile, int lDistanceToMove, int & lpDistanceToMoveHigh[], int dwMoveMethod);
   int    SetEndOfFile ( int hFile);
   int    ReadFile( int hFile, ushort & lpBuffer[], int nNumberOfBytesToRead, int & lpNumberOfBytesRead[], int lpOverlapped);
   int    WriteFile( int   hFile, int & lpBuffer[], int nNumberOfBytesToWrite, int & lpNumberOfBytesWritten[], int   lpOverlapped);
   int    GetFileSize( int hFile,   int notUsed = 0 );
   
   int    FindFirstFileW( string path, int & answer[]);
   int    FindNextFileW( int handle, int & answer[]);
   int    FindClose( int handle);
   
   int    CreateDirectoryW( string path, int securityAttributes /*set to 0*/ );
   
#import

#define F_GENERIC_WRITE                 0x40000000 // Доступ к файлу для записи.
const uint F_GENERIC_READ            = 0x80000000 ; // Доступ к файлу для чтения.

// ---- Параметр "dwShareMode".
#define F_FILE_SHARE_NO                 0x00000000 // Запрещает процессы открытия файла.
#define F_FILE_SHARE_READ               0x00000001 // Подготавливает работу без ограничений в файле или устройстве для чтения.
#define F_FILE_SHARE_WRITE             0x00000002 // Подготавливает работу без ограничений в файле или устройстве для записи.
#define F_FILE_SHARE_DELETE             0x00000004 // Подготавливает работу без ограничений в файле или устройстве для удаления. 

// ---- Параметр "dwCreationDisposition".
#define F_CREATE_NEW                   1            // Создает новый файл, если его ещё нет. Если файл есть, будет ошибка.
#define F_CREATE_ALWAYS                 2            // Создает новый файл, всегда.
#define F_OPEN_EXISTING                 3            // Открывает файл или устройство, если он существует.
#define F_OPEN_ALWAYS                   4            // Открывает файл, всегда.
#define F_TRUNCATE_EXISTING             5            // Открывает файл и исключает это чтобы размер - нулевые байты, только если он существует.

//==== Константы для функции "SetFilePointer()".
#define F_FILE_BEGIN                   0            // От начала файла.
#define F_FILE_CURRENT                 1            // От текущей позиции.
#define F_FILE_END                     2            // От конца файла.

#define INVALID_SET_FILE_POINTER - 1
#define INVALID_FILE_ATTRIBUTES - 1
#define INVALID_HANDLE_VALUE - 1
#define INVALID_FILE_SIZE 0xFFFFFFFF

#define FILE_ATTRIBUTE_DIRECTORY 0x10

#define ERROR_FILE_NOT_FOUND 2
#define ERROR_PATH_NOT_FOUND 3

string StringFromBuffer( int & buffer[])
{
   string text = "" ;

   for ( int pos = 11 ; pos < 75 ; pos++) 
   {
       int curr = buffer[pos];
      text = text + 
         CharToString ( uchar (curr       & 0x000000FF )) +
         CharToString ( uchar (curr >> 8   & 0x000000FF )) +
         CharToString ( uchar (curr >> 16 & 0x000000FF )) +
         CharToString ( uchar (curr >> 24 & 0x000000FF )); 
   }

   return (text);
}

int GetFileList( string path, string filter, string & list[])
{
   int Win32Data[ 80 ];
   ArrayInitialize (Win32Data, 0 );

   RtlSetLastWin32Error( 0 );
   int hFind = FindFirstFileW(path + filter, Win32Data);
   
   if (INVALID_HANDLE_VALUE == hFind)
   {
       return (RtlGetLastWin32Error());
   }
   
   ArrayResize (list, 0 );
   
   if ((Win32Data[ 0 ] & FILE_ATTRIBUTE_DIRECTORY) == 0 ) // if found item is file, not directory
   {
       ArrayResize (list, 1 );
      list[ 0 ] = StringFromBuffer(Win32Data);
   }
   ArrayInitialize (Win32Data, 0 );
   
   while (FindNextFileW(hFind, Win32Data) != 0 )
   {
       if ((Win32Data[ 0 ] & FILE_ATTRIBUTE_DIRECTORY) == 0 ) // if found item is file, not directory
      {
         int size = ArraySize (list);
         ArrayResize (list, size + 1 );
         list[size] = StringFromBuffer(Win32Data);
      }
       ArrayInitialize (Win32Data, 0 );
   }
   
   FindClose(hFind);
   
   return ( 0 );
}

int TryToCaptureFile( string fileName, int & err)
{
   RtlSetLastWin32Error( 0 );
   int hFile = CreateFileW(fileName, F_GENERIC_WRITE | F_GENERIC_READ, F_FILE_SHARE_NO, 0 , F_OPEN_ALWAYS, 0 , 0 );
   err = RtlGetLastWin32Error();
   return (hFile);
}

bool CheckDirectoryExists( string path)
{
   int Win32Data[ 80 ];
   ArrayInitialize (Win32Data, 0 );

   RtlSetLastWin32Error( 0 );
   int hFind = FindFirstFileW(path, Win32Data);

   if (INVALID_HANDLE_VALUE == hFind)
   {
       return ( false );
   }

   FindClose(hFind);
   
   return ((Win32Data[ 0 ] & FILE_ATTRIBUTE_DIRECTORY) != 0 ); // if found item is directory
}

string LockFileName = "VolumeDataReceiver" ;

int hLockFile;
string ClusterDeltaPath;
string LockPath;

int UpdateIntervalSec;

int CheckLock()
{
   int err = 0 ;
   if (INVALID_HANDLE_VALUE != hLockFile) return ( 0 );
   
   string path = StringSubstr (LockPath, 0 , StringLen (LockPath) - 1 );
   bool exists = CheckDirectoryExists(path);
   
   if (!exists)
   { // try to create if not available
      RtlSetLastWin32Error( 0 );
       int res = CreateDirectoryW(LockPath, 0 );
      
       if (res == 0 )
      {
         err = RtlGetLastWin32Error();
         if (err != 183 ) // ERROR_ALREADY_EXISTS
         {
             Print ( "Failed to create directory -- \"" , LockPath, "\"" );
         }
         return (err);
      }
   }
   
   if (INVALID_HANDLE_VALUE == hLockFile)
   {
       return (err);
   }
   
   return ( 0 );
}

int OnInit ()
{
   if (! MQL5InfoInteger ( MQL5_DLLS_ALLOWED ) ) 
   { 
       Alert ( "Dlls are not allowed. You should allow dll imports." );
       return ( 1 ); 
   }

   hLockFile = INVALID_HANDLE_VALUE;
   
   ClusterDeltaPath = TerminalInfoString ( TERMINAL_DATA_PATH ) + "\\ClusterDelta\\Volume\\" ;
   LockPath = TerminalInfoString ( TERMINAL_DATA_PATH ) + "\\ClusterDelta\\" ;

   if (UpdateIntervalSec < 30 )
   {
      UpdateIntervalSec = 30 ;
   }

   int err = CheckLock();
   if (err != 0 )
   {
       Alert ( "Failed initializing (Data Receiver already running?), error = " , err);
       return ( 1 );
   }
   
   return ( 0 );
}
 
TheXpert :

코드(전문가)가 64 터미널 vhlam을 낳습니다... 개발자 여러분, 도와주세요! #956630

포인터 는 길어야 합니다.
 
TheXpert :

코드(전문가)가 64 터미널 vhlam을 낳습니다... 개발자 여러분, 도와주세요! #956630


핸들이나 포인터가 있는 MSDN의 zyr - long에 버전 추가

나는 이것을한다

 #import "kernel32.dll"
     int    CloseHandle( int hObject);
     int    CloseHandle( long hObject);
#import 

int    CloseHandle( long hObject)
{
   if (_Is64) return ( kernel32:: CloseHandle(hObject));
   else return ( kernel32:: CloseHandle(( int )hObject));
}

в коде
::CloseHandle(h); // где h - long типа
 
감사합니다. 포인터처럼 보이지만 핸들을 잊어 버렸습니다. 그리고 그것은 당신이 무엇 때문에 흔들리고 있는지 ...
 
TheXpert :
포인터를 보니
 int lpOverlapped ???