Errores, fallos, preguntas - página 1027

 
Rosh:
La cuenta fue prohibida por el servidor de operaciones por una actividad comercial excesiva. La plataforma de negociación se protege a sí misma y desactiva aquellas cuentas que envían solicitudes de negociación sin sentido en cada tick.

Las consultas comerciales son comprensibles, hubo una modificación allí. Así es como se diseñó la estrategia. No sé cómo funcionará ahora el Asesor Experto, pero he desactivado la modificación en cada tick. Te pido un gran favor: vuelve a activar la cuenta. Tiene 3 meses, buenas estadísticas.

 

Al_key:

¿Ayudará el interruptor /portable?

O bien desactiva permanentemente /portable o desactiva UAC y ejecuta el terminal sin /portable después de un reinicio.

 
avoitenko:

Bild 842/64 bit. Al declarar canva:

Aparece un error:

variable estática no resuelta 'CCanvas::m_default_colors'

¿Soy el único con este problema?
Los requisitos para las variables estáticas han cambiado.

El error se ha producido porque se utiliza un objeto con variables estáticas a nivel global y en este caso el compilador requiere que se coloque un array estático explícitamente.
Esto es necesario para que el programador especifique explícitamente el orden de inicialización de los miembros de la clase/estructura estática.

El problema aquí es que el array estático 'CCanvas::m_default_colors' puede ser utilizado en el constructor de CCanvas para su lectura y luego si es colocado e inicializado por el programador después de colocar el objeto de clase CCanvas, sus valores en el constructor de CCanvas::CCanvas no serán los esperados. Por lo tanto, el compilador está comprobando que los miembros de la clase/estructura estática están colocados e inicializados antes de utilizar el objeto de clase/estructura.

Lo pensaremos, tal vez cambiemos algo.

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

Continuando con el cambio a mcuel 5. En mt4 este código funcionaba bien. Ahora tengo un problema de conexión con 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)
  {
//---
   
  }
//+------------------------------------------------------------------+

Da un error:

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

Hay una advertencia sobre un desajuste de tipo de variable de socket, poner NULL en lugar de una variable no ayuda. También he oído que МТ5 transfiere la cadena a DLL de una manera especial. ¿Es así? Por favor, aconséjeme cómo manejarlo.

 
mql5:
Los requisitos para la colocación de variables estáticas han cambiado.
Por lo tanto, el compilador comprueba que los miembros estáticos de la clase/estructura están colocados e inicializados antes de que se utilice el objeto de la clase/estructura.
Gracias. Ahora todo tiene sentido.
 
Al_key:
También he oído que MT5 envía cadenas a la DLL de una manera especial. ¿Es ese tipo de cosas? Cómo afrontarlo, por favor, aconséjeme.
Hay un ejemplo en vivo de conexión a la base de datos MySQL en este artículo.
 
Otra pregunta: Instalado MT5 estándar por primera vez, la cuenta demo es metaquotes. Sólo veo 4 pares de mayores, ningún USDCAD. Después de un tiempo, se añadieron muchos pares diferentes, incluyendo CFD y Knaadec. Entonces he cambiado a /portable. Por supuesto, los pares mínimos están de nuevo establecidos por defecto, pero esta vez otros pares no se cargan por alguna razón y es mejor tener la demo de USDCAD en MT5.
 

Memorizo el TF, cambio a M1, vuelvo al actual.

Problema: No me acuerdo de asignar el TF actual

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);

Puedo cambiar a M1

ChartSetSymbolPeriod(ChartID(),_Symbol,PERIOD_M1);

Para un objeto

ObjectSetInteger(0,n,OBJPROP_TIMEFRAMES,current_period_tf);

funciona. Para un gráfico

ChartSetSymbolPeriod(ChartID(),_Symbol,current_period_tf);

el compilador da

'current_period_tf' - can't convert enum

¿Cuál es el misterio?

He probado a actualizar la conversión por medio de una cadena y a cambiar los tipos, pero no funciona.

 
Al_key:
Otra pregunta: Instalado MT5 estándar por primera vez, la cuenta demo es metaquotes. Sólo veo 4 pares de mayores, ningún USDCAD. Después de algún tiempo, se añadieron muchos pares diferentes, incluyendo CFD y Knaadec. Entonces he cambiado a /portable. Por supuesto, de nuevo los pares mínimos son por defecto, pero esta vez por alguna razón otros pares no se cargan y quiero tener USDCAD demo en la quinta MT mucho.
Guardar el perfil configurado por defecto Archivo - Perfiles - Por defecto
 
Silent:

...

¿Cuál es el misterio?

Intenté convertir a través de la cadena y cambiar los tipos, pero no funciona.

int current_period_tf;
ENUM_TIMEFRAMES current_period_tf;
Razón de la queja: