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

 
Rosh :
계정은 과도한 거래 활동으로 거래 서버에 의해 금지되었습니다. 거래 플랫폼은 보호되며 매 틱마다 무심코 거래 요청 을 보내는 계정을 비활성화합니다.

무역 문의는 이해할 수, 수정되었습니다. 이것이 전략이 의도된 방식입니다. 이제 Expert Advisor가 어떻게 작동하는지 모르겠지만 각 틱에 대한 수정을 비활성화했습니다. 계정을 다시 켜주세요. 그는 3개월, 좋은 스탯입니다.

 

Al_key :

/portable 키가 도움이 되나요?

영원한 /portable 또는 UAC를 비활성화하고 재부팅 후 /portable 스위치 없이 터미널을 시작하십시오 .

 
avoitenko :

842/64비트를 빌드합니다. 캔버스를 선언할 때:

오류:

해결되지 않은 정적 변수 'CCanvas::m_default_colors'

저만 그런가요?
정적 변수를 배치하기 위한 요구 사항이 변경되었습니다.

전역 수준에서 정적 변수가 있는 개체를 사용하고 있기 때문에 오류가 발생했습니다. 이 경우 컴파일러에서 정적 배열을 명시적으로 할당해야 합니다.
이것은 프로그래머가 클래스/구조의 정적 멤버 초기화 순서 를 명시적으로 나타내기 위해 필요합니다.

이 경우 문제는 정적 배열 'CCanvas::m_default_colors'를 CCanvas 생성자에서 읽기용으로 사용할 수 있으며, CCanvas 클래스 개체가 할당된 후 프로그래머가 할당하고 초기화하면 해당 값이 CCanvas::CCanvas 생성자는 예상한 것과 다릅니다. 따라서 컴파일러는 클래스/구조체 개체를 사용하기 전에 클래스/구조체의 정적 멤버가 할당 및 초기화되었는지 확인합니다.

우리는 우리가 뭔가를 바꿀 수 있다고 생각합니다.

Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
Документация по MQL5: Основы языка / Переменные / Создание и уничтожение объектов
  • www.mql5.com
Основы языка / Переменные / Создание и уничтожение объектов - Документация по MQL5
 

MKUEL 5로의 전환을 계속합니다. MT4에서는 그러한 코드가 굉장했습니다. 이제 문제는 근육과의 연결입니다.

 #import "libmysql.dll"
int mysql_init( int db);
int mysql_errno( int TMYSQL);
int mysql_real_connect( int TMYSQL, string host, string user, string password, string DB, int port, int socket, int clientflag);
int mysql_real_query( int TMSQL, string query, int length);
void mysql_close( int TMSQL);
#import

int i = 0 ;
int mysql;
string query;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit ()
  {
//---
   
   mysql = mysql_init(mysql);
   if (mysql!= 0 ) Print ( "allocated" );
   string host= "localhost" ;
   string user= "root" ;
   string password= "1111" ;
   string DB= "fxdb" ;
   int clientflag= 0 ;
   int port= 3306 ;
   string socket= "" ;
   int
   res=mysql_real_connect(mysql,host,user,password,DB,port, socket,clientflag);
   int err= GetLastError ();
   if (res==mysql) Print ( "connected" );
   else Print ( "error=" ,mysql, " " ,mysql_errno(mysql), " " );
   
 
   
   //mysql_real_query(mysql,query,length);
   //int myerr=mysql_errno(mysql);
   //if (myerr>0)Print("error=",myerr); else Print(i, "good"); 

//---
   return ( INIT_SUCCEEDED );
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit ( const int reason)
  {
//---
      mysql_close(mysql);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick ()
  {
//---
   
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent ( const int id,
                   const long &lparam,
                   const double &dparam,
                   const string &sparam)
  {
//---
   
  }
//+------------------------------------------------------------------+

오류 메시지를 표시합니다.

2013.08.03 12:41:41 testMySql(AUDCAD, H1) 오류=313111904 2005

소켓 변수의 유형 불일치에 대한 경고가 표시됩니다. 변수 대신 NULL을 넣었습니다. 도움이 되지 않습니다. 나는 또한 MT5가 어떻게든 특별한 방식으로 DLL에 라인을 전송한다고 들었습니다. 이 오페라에서? 어떻게 대처해야 하는지 알려주세요.

 
mql5 :
정적 변수를 배치하기 위한 요구 사항이 변경되었습니다.
따라서 컴파일러는 클래스/구조체 개체를 사용하기 전에 클래스/구조체의 정적 멤버가 할당 및 초기화되었는지 확인합니다.
고맙습니다. 이제 모든 것이 명확해졌습니다.
 
Al_key :
나는 또한 MT5가 어떻게든 특별한 방식으로 DLL에 라인을 전송한다고 들었습니다. 이 오페라에서? 어떻게 대처해야 하는지 알려주세요.
이 기사 에는 MySQL 데이터베이스에 연결하는 라이브 예제가 있습니다.
 
또 다른 질문: 저는 처음으로 MT5를 표준으로 설치했습니다. 데모 계정 - metaquotes. USDCAD가 아닌 메이저에서 4켤레만 봅니다. 약간의 시간이 흐르고 CFD 및 knadets를 포함하여 다양한 쌍이 로드되었습니다. 그런 다음 /portable을 사용하도록 전환했습니다. 당연히 기본적으로 다시 최소 쌍이 있지만 이번에는 어떤 이유로 다른 쌍은로드되지 않으며 다섯 번째 MT에서 USDCAD 데모를 갖는 것이 매우 바람직합니다.
 

나는 TF를 기억하고 M1으로 전환하고 현재 것으로 돌아갑니다.

문제: 현재 TF를 할당한 것을 기억할 수 없습니다.

 int current_period_tf;
   string n;
   if ( _Period == PERIOD_M1 )  {current_period_tf= 0x00000001 ;};
   if ( _Period == PERIOD_M2 )  {current_period_tf= 0x00000002 ;};
   if ( _Period == PERIOD_M3 )  {current_period_tf= 0x00000004 ;};
   if ( _Period == PERIOD_M4 )  {current_period_tf= 0x00000008 ;};
   if ( _Period == PERIOD_M5 )  {current_period_tf= 0x00000010 ;};
   if ( _Period == PERIOD_M6 )  {current_period_tf= 0x00000020 ;};
   if ( _Period == PERIOD_M10 ) {current_period_tf= 0x00000040 ;};
   if ( _Period == PERIOD_M12 ) {current_period_tf= 0x00000080 ;};
   if ( _Period == PERIOD_M15 ) {current_period_tf= 0x00000100 ;};
   if ( _Period == PERIOD_M20 ) {current_period_tf= 0x00000200 ;};
   if ( _Period == PERIOD_M30 ) {current_period_tf= 0x00000400 ;};
   if ( _Period == PERIOD_H1 )  {current_period_tf= 0x00000800 ;};
   if ( _Period == PERIOD_H2 )  {current_period_tf= 0x00001000 ;};
   if ( _Period == PERIOD_H3 )  {current_period_tf= 0x00002000 ;};
   if ( _Period == PERIOD_H4 )  {current_period_tf= 0x00004000 ;};
   if ( _Period == PERIOD_H6 )  {current_period_tf= 0x00008000 ;};
   if ( _Period == PERIOD_H8 )  {current_period_tf= 0x00010000 ;};
   if ( _Period == PERIOD_H12 ) {current_period_tf= 0x00020000 ;};
   if ( _Period == PERIOD_D1 )  {current_period_tf= 0x00040000 ;};
   if ( _Period == PERIOD_W1 )  {current_period_tf= 0x00080000 ;};
   if ( _Period == PERIOD_MN1 ) {current_period_tf= 0x00100000 ;};
   ChartSetSymbolPeriod ( ChartID (), _Symbol , PERIOD_M1 );
   ObjectSetInteger ( 0 ,n, OBJPROP_TIMEFRAMES ,current_period_tf);
   ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);

M1으로 전환합니다.

 ChartSetSymbolPeriod ( ChartID (), _Symbol , PERIOD_M1 );

개체의 경우

 ObjectSetInteger ( 0 ,n, OBJPROP_TIMEFRAMES ,current_period_tf);

공장. 차트의 경우

 ChartSetSymbolPeriod ( ChartID (), _Symbol ,current_period_tf);

컴파일러 문제

'current_period_tf' - can't convert enum

무슨 수수께끼야?

upd 라인을 통해 변환하고 유형을 변경하려고 시도했지만 불가능합니다.

 
Al_key :
또 다른 질문: 저는 처음으로 MT5를 표준으로 설치했습니다. 데모 계정 - metaquotes. USDCAD가 아닌 메이저에서 4켤레만 봅니다. 약간의 시간이 흐르고 CFD 및 knadets를 포함하여 다양한 쌍이 로드되었습니다. 그런 다음 /portable을 사용하도록 전환했습니다. 당연히 기본적으로 다시 최소 쌍이 있지만 이번에는 어떤 이유로 다른 쌍은로드되지 않으며 다섯 번째 MT에서 USDCAD 데모를 갖는 것이 매우 바람직합니다.
구성된 기본 프로필 파일 - 프로필 - 기본값을 저장합니다.
 
Silent :

...

무슨 수수께끼야?

upd 라인을 통해 변환하고 유형을 변경하려고 시도했지만 불가능합니다.

 int current_period_tf;
 ENUM_TIMEFRAMES current_period_tf;