EA cambia a Script [MQL5][SQL]

 

¿Por qué mi EA cambia a Script cuando coloco esto:

void OnStart(){
   string filename="Foreign_Exchange.sqlite";
   int Foreign_Exchange=DatabaseOpen(filename, DATABASE_OPEN_READWRITE | DATABASE_OPEN_CREATE |DATABASE_OPEN_COMMON);
   if(DatabaseTableExists(Foreign_Exchange, _Symbol) == false)
     {
      DatabaseExecute(Foreign_Exchange,
                      StringFormat("CREATE TABLE %s("
                                   "ID INT PRIMARY KEY,"
                                   "EVENT_ID INT NOT NULL,"
                                   "CURRENCY TEXT NOT NULL,"
                                   "COUNTRY TEXT NOT NULL,"
                                   "COUNTRY_ID INT NOT NULL,"
                                   "NEWS TEXT NOT NULL,"
                                   "NEWS_CODE TEXT NOT NULL,"
                                   "CALENDAR_IMPORTANCE INT NOT NULL,"
                                   "TYPE_INDICATOR INT,"
                                   "SECTOR_BUSINESS INT,"
                                   "FREQUENCY_MONTH INT,"
                                   "TIME TEXT NOT NULL,"
                                   "IMPACT INT NOT NULL,"
                                   "ACTUAL_VALUE REAL,"
                                   "FORECAST_VALUE REAL,"
                                   "PREV_VALUE REAL,"
                                   "PRICE REAL NOT NULL,"
                                   "HIGHPRICE_15M REAL NOT NULL,"
                                   "HIGHPRICE_30M REAL NOT NULL,"
                                   "HIGHPRICE_1H REAL NOT NULL,"
                                   "HIGHPRICE_2H REAL NOT NULL,"
                                   "LOWPRICE_15M REAL NOT NULL,"
                                   "LOWPRICE_30M REAL NOT NULL,"
                                   "LOWPRICE_1H REAL NOT NULL,"
                                   "LOWPRICE_2H REAL NOT NULL,"
                                   "VALIDITY REAL NOT NULL,"
                                   "RELIABILITY REAL NOT NULL,"
                                   "TAKEPROFIT REAL NOT NULL,"
                                   "PROBABILITY REAL NOT NULL);",_Symbol));
     }
   DatabaseClose(Foreign_Exchange);
  }
 
Yovanis Pineda:

¿Por qué mi EA cambia a Script cuando coloco esto:

Seguro que ese no es el problema, explicalo mejor y te ayudaremos, que observas al meter ese codigo que deja de hacer que?

 
Marta Gonzalez:

Seguro que ese no es el problema, explicalo mejor y te ayudaremos, que observas al meter ese codigo que deja de hacer que?

Ya lo resolví. Pues el problema es más de estructura. Lo que pasa es que solo los Scripts tienen OnStart(), entonces ese fue el error.

¡Gracias por responder!

 

Es lo que iba a comentar...OnStart es solo para scripts. Ver documentacion.

https://www.mql5.com/es/docs/event_handlers/onstart

Documentación para MQL5: Procesamiento de eventos / OnStart
Documentación para MQL5: Procesamiento de eventos / OnStart
  • www.mql5.com
Se llama solo en los scripts y servicios al suceder el evento Start. La función ha sido pensada para ejecutar una sola vez las acciones implementadas en el programa. Existen dos variantes de la función. Después de finalizar el script en el diario de registro se creará una entrada del tipo "script nombre_del_script removed (result code N...