Erros, bugs, perguntas - página 1027

 
Rosh:
A conta foi banida pelo servidor de negociação por excesso de actividade comercial. A plataforma de negociação protege-se a si própria e desactiva as contas que despropositadamente enviam pedidos de negociação em cada tic.

As questões comerciais, compreensivelmente, foram modificadas. Foi assim que a estratégia foi concebida. Não sei como funcionará agora o Expert Advisor, mas desabilitei a modificação em cada carrapato. Estou a pedir-lhe um grande favor - ligue a conta. tem 3 meses, boas estatísticas.

 

Al_key:

Será que o interruptor /portável ajudará?

Desactivar/desactivar permanentemente o UAC ou desactivar o UAC e executar o terminal sem o interruptor /portável depois de reiniciar.

 
avoitenko:

Bild 842/64 bit. Ao declarar o canva:

Aparece um erro:

variável estática não resolvida 'CCanvas::m_default_colors'

Serei eu o único com este problema?
Os requisitos das variáveis estáticas mudaram.

O erro ocorreu porque se utiliza um objecto com variáveis estáticas a nível global e, neste caso, o compilador requer que seja colocada explicitamente uma matriz estática.
Isto é necessário para que o programador especifique explicitamente a ordem de inicialização dos membros da classe/estrutura estática.

O problema aqui é que a matriz estática 'CCanvas::m_default_colors' pode ser usada no construtor CCanvas para leitura e depois, se for colocada e inicializada pelo programador após o objecto da classe CCanvas ser colocado, os seus valores no CCanvas::CCanvas construtor não serão os esperados. Portanto, o compilador está a verificar se os membros da classe/estrutura estática são colocados e inicializados antes de o objecto classe/estrutura ser utilizado.

Pensaremos bem, talvez mudemos alguma coisa.

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

Continuando a mudar para mcuel 5. No mt4 este código estava a funcionar bem. Agora tenho um problema de ligação a mkuell.

#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)
  {
//---
   
  }
//+------------------------------------------------------------------+

Dá um erro:

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

Há um aviso sobre um desajuste do tipo variável de tomada, colocando NULL em vez de uma variável não ajuda. Ouvi também que МТ5 transfere cadeia de caracteres para DLL de uma forma especial. É assim? Por favor, aconselhar como lidar com isto.

 
mql5:
Os requisitos para a colocação de variáveis estáticas mudaram.
Portanto, o compilador verifica se os membros estáticos da classe/estrutura são colocados e inicializados antes de o objecto classe/estrutura ser utilizado.
Obrigado. Tudo isto faz agora sentido.
 
Al_key:
Também ouvi dizer que o MT5 envia cordas para a DLL de uma forma especial. Será esse tipo de coisa? Como lidar com isto, por favor aconselhar.
Há um exemplo vivo de ligação à base de dados MySQL neste artigo.
 
Outra questão: Instalado o padrão MT5 pela primeira vez, conta demo é metaquotes. Vejo apenas 4 pares de majores, sem USDCAD. Passado algum tempo, foram adicionados muitos pares diferentes, incluindo o CFD e o Knaadec. Depois mudei para /portável. Claro, os pares mínimos são novamente definidos por defeito, mas desta vez outros pares não são carregados por alguma razão e é melhor ter USDCAD demo em MT5.
 

Memorizo a TF, mudo para M1, volto para a actual.

Problema: Não me lembro de atribuir a actual 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);

Posso mudar para M1

ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);

Para um objecto

ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);

funciona. Para um gráfico

ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);

o compilador dá

'current_period_tf' - can't convert enum

Qual é o mistério?

Tentei actualizar a conversão através de cordel e mudar os tipos, mas não funciona.

 
Al_key:
Outra questão: Instalado o padrão MT5 pela primeira vez, conta demo é metaquotes. Vejo apenas 4 pares de majores, sem USDCAD. Passado algum tempo, foram adicionados muitos pares diferentes, incluindo o CFD e o Knaadec. Depois mudei para /portável. Naturalmente, novamente pares mínimos por defeito, mas desta vez por alguma razão outros pares não estão carregados e eu quero muito ter uma demonstração do USDCAD na quinta MT.
Guardar o perfil configurado por defeito Ficheiro - Perfis - Predefinição
 
Silent:

...

Qual é o mistério?

Tentei converter através de cordel e mudar de tipo, mas não funciona.

int current_period_tf;
ENUM_TIMEFRAMES current_period_tf;
Razão: