Programando en mt5
Programando en mt5
Sabeis como se utiliza el iClose en mt5? me da error un código que intentaba pasar a este lenguaje.
en mt4 lo tengo asi:
if(iClose(0,0,0)- iOpen(0,0,0)>0)
No se si tengo que utilizar el CopyClose en mt5.
A ver si alguien me hecha un cable, saludos.
en mt4 lo tengo asi:
if(iClose(0,0,0)- iOpen(0,0,0)>0)
No se si tengo que utilizar el CopyClose en mt5.
A ver si alguien me hecha un cable, saludos.
Última edición por Gamelu el 28 Feb 2017 10:32, editado 1 vez en total.
Re: iclose en mt5
Código: Seleccionar todo
double CurrentClose, PreviousClose1, PreviousClose2;
double myClose;
CopyClose(_Symbol, _Period, 0, 10, myClose);
ArraySetAsSeries(myClose,true);
CurrentClose = myClose[0]; // current bar close.
PreviousClose1 = myClose[1]; // equals bar close 1 bar back from current bar.
PreviousClose2 = myClose[2]; // equals bar close 2 bars back from current bar.
Código: Seleccionar todo
MqlRates rates[];
ArraySetAsSeries(rates,true);
int copied=CopyRates(Symbol(),Period(),0,Bars(Symbol(),Period()),rates); // Copied all datas
double pr0_close= rates[0].close;
double pr1_close= rates[1].close; // rates[1].high,rates[1].open for high
datetime t1 = rates[1].time;
Re: iclose en mt5
Ya veo, pues sí que lo han complicado con respecto a MQL4 ¿no?
Saludos,
X-Trader
Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: iclose en mt5
Pues si, aun no lo he probado pero hay que pasarle todo el array de precios, con lo fácil que era antes, no se por que habran cambiado tanto la forma de hacerlo.
Hasta para hacer un Hour() me las estoy viendo.
Saludos.
Hasta para hacer un Hour() me las estoy viendo.
Saludos.
Re: iclose en mt5
Una curiosidad es que los arrays de precios se copian a la inversa por defecto:
Close[5]=",myClose[0],
Close[4]=",myClose[1],
Close[3]=",myClose[2],
Close[2]=",myClose[3],
Close[1]=",myClose[4],
Close[0]=",myClose[5]
Para corregir esto se utiliza la función:
ArraySetAsSeries(myClose,true);
//quedaría asi:
Close[5]=",myClose[5],
Close[4]=",myClose[4],
Close[3]=",myClose[3],
Close[2]=",myClose[2],
Close[1]=",myClose[1],
Close[0]=",myClose[0]
Close[5]=",myClose[0],
Close[4]=",myClose[1],
Close[3]=",myClose[2],
Close[2]=",myClose[3],
Close[1]=",myClose[4],
Close[0]=",myClose[5]
Para corregir esto se utiliza la función:
ArraySetAsSeries(myClose,true);
//quedaría asi:
Close[5]=",myClose[5],
Close[4]=",myClose[4],
Close[3]=",myClose[3],
Close[2]=",myClose[2],
Close[1]=",myClose[1],
Close[0]=",myClose[0]
- Adjuntos
-
- Sin ArraySetAsSeries.mq5
- (1.91 KiB) Descargado 298 veces
-
- ArraySetAsSeries.mq5
- (1.91 KiB) Descargado 280 veces
Re: Programando en mt5
Manejo del tiempo, horas, mes,año etc
Información adquirida de https://www.mql5.com/es/articles/599
Información adquirida de https://www.mql5.com/es/articles/599
Código: Seleccionar todo
datetime tm=TimeCurrent();
MqlDateTime stm;
TimeToStruct(tm,stm);
//--- mostrar componentes de la fecha
Alert("Año: " +(string)stm.year);
Alert("Mes: " +(string)stm.mon);
Alert("Día: " +(string)stm.day);
Alert("Hora: " +(string)stm.hour);
Alert("Minuto: " +(string)stm.min);
Alert("Segundo: " +(string)stm.sec);
Alert("Día de la semana: "+(string)stm.day_of_week);
Alert("Día del año: " +(string)stm.day_of_year);
- Adjuntos
-
- Componentes de fecha y hora.mq5
- (3.6 KiB) Descargado 266 veces
Re: Programando en mt5
Para hacer una bars, lo mas simple que se me ha ocurrido:

Código: Seleccionar todo
MqlRates rates[];
ArraySetAsSeries(rates,true);
CopyRates(Symbol(),Period(),0,Bars(Symbol(),Period()),rates); // Copied all datas
int bars;
bars= ArraySize(rates);
Comment("Barras:",bars);

Re: Programando en mt5
Joder, pues me parece que le van a dar por saco al Metatrader 5!
Saludos,
X-Trader

Saludos,
X-Trader
"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."
Re: Programando en mt5
Es como si hubieran hecho un downgrade de mql4 a mql5 acojonante.
Re: iclose en mt5
Gamelu escribió:Una curiosidad es que los arrays de precios se copian a la inversa por defecto:
Close[5]=",myClose[0],
Close[4]=",myClose[1],
Close[3]=",myClose[2],
Close[2]=",myClose[3],
Close[1]=",myClose[4],
Close[0]=",myClose[5]
Para corregir esto se utiliza la función:
ArraySetAsSeries(myClose,true);
//quedaría asi:
Close[5]=",myClose[5],
Close[4]=",myClose[4],
Close[3]=",myClose[3],
Close[2]=",myClose[2],
Close[1]=",myClose[1],
Close[0]=",myClose[0]
¿Pero no se había de utilizar el CopyClose ???
Re: Programando en mt5
Si hay que utilizar el CopyClose , pero los datos de este se pasan a un Array, en este caso pasamos 10 barras.
double myClose[];
CopyClose(_Symbol, _Period, 0, 10, myClose);
Una vez los tienes en el array, en este caso le hemos llamado myClose, los puedes consultar por ejemplo, myClose[1] .
double myClose[];
CopyClose(_Symbol, _Period, 0, 10, myClose);
Una vez los tienes en el array, en este caso le hemos llamado myClose, los puedes consultar por ejemplo, myClose[1] .
Si te ha gustado este hilo del Foro, ¡compártelo en redes!