Añadir hora en código mql4

guayabero  

Distinguidos señores:

He creado un robot con ayuda de una página web, pero necesito implementarle un par de órdenes en el código generado.

Básicamente lo que necesito es que el robot empiece a operar desde las 03:30 hasta las 11:30  y que cierre todas las operaciones abiertas a las 14:00

Actualmente estoy haciendo manualmente esta parte. Pero quiero automatizarla.

Yo soy programador en otro lenguaje, por lo que entiendo un poco la lógica de la programación en mql4, pero no soy experto.

Les agradezco de antemano la ayuda que puedan brindarme.

Saludos desde Bolivia

Denis Nikolaev  
guayabero:

Distinguidos señores:

He creado un robot con ayuda de una página web, pero necesito implementarle un par de órdenes en el código generado.

Básicamente lo que necesito es que el robot empiece a operar desde las 03:30 hasta las 11:30  y que cierre todas las operaciones abiertas a las 14:00

Actualmente estoy haciendo manualmente esta parte. Pero quiero automatizarla.

Yo soy programador en otro lenguaje, por lo que entiendo un poco la lógica de la programación en mql4, pero no soy experto.

Les agradezco de antemano la ayuda que puedan brindarme.

Saludos desde Bolivia

int OnInit(){
   return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason){
}

input int hour_for_start=3;
input int minute_for_start=30;
input int hour_for_end=11;
input int minute_for_end=30;
input int hour_close=14;
input int minute_close=00;
void OnTick(){
string date="";
StringConcatenate(date,IntegerToString(YearReturn()),
".",IntegerToString(MonthReturn()),".",IntegerToString(DayReturn()),
" ",IntegerToString(hour_for_start),":",IntegerToString(minute_for_start),":00");
datetime time_start=StringToTime(date);
StringConcatenate(date,IntegerToString(YearReturn()),
".",IntegerToString(MonthReturn()),".",IntegerToString(DayReturn()),
" ",IntegerToString(hour_for_end),":",IntegerToString(minute_for_end),":00");
datetime time_end=StringToTime(date);
datetime time_tek=TimeCurrent();
if(time_tek>=time_start&&time_tek<=time_end){
   //code for open trade
}
if(HourReturn()>=hour_close&&MinuteReturn()>=minute_close){
   //code for close trade
}
}
int MonthReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.mon);
 }

int YearReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.year);
 }

int DayReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.day);
 }
int HourReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.hour);
 }
int MinuteReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.min);
 }
 int SecondsReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.sec);
 }

this for mql4

int OnInit(){
   return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason){
}

input int hour_for_start=3;
input int minute_for_start=30;
input int hour_for_end=11;
input int minute_for_end=30;
input int hour_close=14;
input int minute_close=00;
void OnTick(){
string date="";
date=StringConcatenate(IntegerToString(YearReturn()),
".",IntegerToString(MonthReturn()),".",IntegerToString(DayReturn()),
" ",IntegerToString(hour_for_start),":",IntegerToString(minute_for_start),":00");
datetime time_start=StringToTime(date);
date=StringConcatenate(IntegerToString(YearReturn()),
".",IntegerToString(MonthReturn()),".",IntegerToString(DayReturn()),
" ",IntegerToString(hour_for_end),":",IntegerToString(minute_for_end),":00");
datetime time_end=StringToTime(date);
datetime time_tek=TimeCurrent();
if(time_tek>=time_start&&time_tek<=time_end){
   //code for open trade
}
if(HourReturn()>=hour_close&&MinuteReturn()>=minute_close){
   //code for close trade
}
}
int MonthReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.mon);
 }

int YearReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.year);
 }

int DayReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.day);
 }
int HourReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.hour);
 }
int MinuteReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.min);
 }
 int SecondsReturn()
 {
 MqlDateTime tm;
 TimeCurrent(tm);
 return(tm.sec);
 }
Razón de la queja: