No se puede ver un gráfico fuera de línea - página 2

 
lingwuchung:


Hola,

He resuelto todos los errores de compilación pero encuentro que el OnTick del EA (simplificado a testOffline.mq4 como adjunto) no puede ser activado en un gráfico offline (generado por PeriodConvertor). Sin embargo, no tiene problemas con el gráfico M1 normal. Así que me pregunto qué es lo que está mal?



No hay ticks entrantes en el gráfico offline.

Pruebe con OnTimer en lugar de OnTick

Ver ejemplo de EA trabajando en un gráfico offline refrescado desde PeriodConverter

int ExtCounter;
int ExtTickCount;
int ExtBars;
//+------------------------------------------------------------------+
//| expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//----
   ExtCounter=0;
   ExtTickCount=GetTickCount();
   ExtBars=Bars;
   Print("init  ExtBars=",ExtBars,"  Time[0]=",TimeToString(Time[0]));
   EventSetTimer(1);
//----
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   ExtTickCount=GetTickCount()-ExtTickCount;
   Print("ExtTickCount=",ExtTickCount,"   ExtCounter=",ExtCounter);
  }
//+------------------------------------------------------------------+
//| expert start function                                            |
//+------------------------------------------------------------------+
void OnTick()
  {
   if(ExtBars!=Bars)
     {
      ExtBars=Bars;
      Print("start  ExtBars=",ExtBars,"  Time[0]=",TimeToString(Time[0]));
     }
  }
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
void OnTimer()
  {
   if(RefreshRates())
      OnTick();
//----
   if(ExtCounter%15==0)
      Print("OnTimer  ExtCounter=",ExtCounter,"  Time[0]=",TimeToString(Time[0]));
   ExtCounter++;
  }
 
stringo:

No hay ticks entrantes en el gráfico offline.

Pruebe con OnTimer en lugar de OnTick

Ver ejemplo de EA trabajado en gráfico offline refrescado desde PeriodConverter


OK, ahora tengo el tick del gráfico fuera de línea. Pero, ¿significa que la EA puede activarse a cada 1 segundo sólo el más rápido? (desde EventSetTimer() puede establecer hasta la unidad de segundos solamente).

Si es así, esto es un degrade en el nuevo mql4 y me pregunto por qué.

 

¿Degradar? ¿Por qué?

los expertos nunca han trabajado en gráficos fuera de línea

 
RaptorUK:

Puedes actualizar la documentación de FileOpenHistory() por favor....

. no hay ninguna mención de las otras banderas.


Trate de actualizar su ayuda por favor


 
Rosh:

Trate de actualizar su ayuda por favor

Lo siento pero no he dicho FileOpen() . Dije FileOpenHistory()

 
stringo:

¿Degradar? ¿Por qué?

los expertos nunca han trabajado en gráficos fuera de línea


Por favor, no bromees. Llevo un año operando con expertos en gráficos offline. La última versión que utilicé (antes de ser forzado a actualizar a 600) fue la build 509.
 
lingwuchung:

Por favor, no bromees. Llevo un año operando con expertos en el gráfico offline. La última versión que utilicé (antes de ser forzado a actualizar a 600) fue la build 509.
¿No es con un hack, no apoyado por Metaquotes?
 
angevoyageur:
¿No es con un hack, no soportado por Metaquotes?


Dado que los Metaquotes no han revelado la estructura de los archivos hst al público (la mantienen para sus propios fines), entonces todo uso de los archivos *.hst es un hack.
 
Ovo:

Dado que los Metaquotes no han revelado la estructura de los archivos hst al público (lo mantienen para sus propios fines), entonces todo uso de los archivos *.hst es un hack.

¿Por qué dice eso? ¿Quién está detrás del script PeriodConverter?

pista : intente averiguar el autor de este artículo

 
Ovo:

Dado que los Metaquotes no han revelado la estructura de los archivos hst al público (la guardan para sus propios fines), entonces todo uso de los archivos *.hst es un hack.
No, el formato de los archivos .hst está publicado en el archivo de ayuda del terminal . . supongo que se actualizará a su debido tiempo. mql4 también proporciona una función para leer y escribir archivos .hs . . no es un hack.

Formato de archivo histórico (archivos HST)

La cabecera de la base de datos es la primera

struct

HistoryHeader
{
int version; // versión de la base de datos
char copyright[64]; // información sobre el copyright
char symbol[12]; // nombre del símbolo
int period; // marco temporal del símbolo
int digits; // la cantidad de dígitos después del punto decimal en el símbolo
time_t timesign; // timeign de la creación de la base de datos
xml-ph-0027@d

luego va el array de barras (justificación de un solo byte)

#pragma pack(push,1)
//---- representación estándar de la cotización en la base de datos
struct RateInfo
{
time_t ctm; // tiempo actual en segundos
double open;
double low;
double high;
double close;
double vol;
};
#pragma pack(pop)