Empecé a dudar mucho de la funcionalidad de este diseño. Por más que intentaba entender la lógica del bloque, no podía (y lo intenté con todas mis fuerzas).....
¿Cuál es la duda? Cuenta correctamente.
//+------------------------------------------------------------------+//|prueba.mq5//+------------------------------------------------------------------+#include <InitMQL4.mqh>double close[];
int total,count;
datetime time[];
//+------------------------------------------------------------------+//||//+------------------------------------------------------------------+voidOnStart()
{
count=Bars(_Symbol,_Period);
total=CopyClose(_Symbol,_Period,0,count,close);
total=CopyTime(_Symbol,_Period,0,count,time);
ArraySetAsSeries(time,true);
ArraySetAsSeries(close,true);
int N=7;
int shift=iBarShiftMQL4(_Symbol,_Period,time[N]);
Print("TIME",time[N],"BAR=",shift," CLOSE=",close[shift]);
}
//+------------------------------------------------------------------+int iBarShiftMQL4(string symbol,
int tf,
datetime time,
bool exact=false)
{
if(time<0) return(-1);
ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
datetime Arr[],time1;
CopyTime(symbol,timeframe,0,1,Arr);
time1=Arr[0];
if(CopyTime(symbol,timeframe,time,time1,Arr)>0)
return(ArraySize(Arr)-1);
elsereturn(-1);
}
//+------------------------------------------------------------------+
De nuevo, ¿has leído sobre la función que estás escribiendo???
en mcl4 está escrito exactamente
double iClose(
string symbol, int timeframe, int shift)
Devuelve el valor del precio de cierre de la barra del gráfico correspondiente(símbolo, timeframe) especificado por el parámetro shift. En caso de error, la función devuelve 0. Para obtener más información sobre el error, llame a la función GetLastError(). Para el gráfico actual, la información sobre los precios de cierre se encuentra en la matriz predefinida Close[].
Porque si lo abres, surge la pregunta, y el significado de lo anterior escrito????.
y también por lo menos recoger las funciones para las que se resuelven todas las preguntas y proceder a estudiar los errores en el resto.
Hay un montón de soluciones sobre este tema en las bibliotecas privadas durante mucho tiempo.
Yo, por ejemplo, he estado usando IsTesting() y cosas similares desde el principio, también todo se ha resuelto con fecha y hora durante mucho tiempo (por supuesto, hay otras soluciones)....
Otra cosa es la presencia de esas "Soluciones desfasadas" en la propia MT5....
Para iniciar sesión y usar el sitio web MQL5.com es necesario permitir el uso de Сookies.
Por favor, active este ajuste en su navegador, de lo contrario, no podrá iniciar sesión.
Ha iniciado sesión. La autenticación de dos factores se ha desactivado. Vuelva a configurarla y escanee un nuevo código QR, o continúe con la autenticación de dos factores desactivada.
Empecé a dudar mucho de la funcionalidad de este diseño. Por más que intentaba entender la lógica del bloque, no podía (y lo intenté con todas mis fuerzas).....
¿Cuál es la duda? Cuenta correctamente.
¿Cuál es el problema? Está contando correctamente.
Y ahora el abracadabra
1. En MT4 escribimos esta línea y ejecutamos el código en H4
Luego hacemos lo mismo con MT5 y la cadena.
como resultado obtenemos 8.
2. Después hacemos exactamente la misma operación, pero con D1.
Como resultado MT4 devuelve - 1 y MT5 devuelve 0.
Ahora quien me puede decir hasta que punto esta implementación de iBarShiftMQL4 corresponde a lo necesario...
Prueba este:
De nuevo, ¿has leído sobre la función que estás escribiendo???
en mcl4 está escrito exactamente
Para el gráfico actual, la información sobre los precios de cierre se encuentra en la matriz predefinida Close[].
y tienes....
qué están mirando los moderadores...
Gracias, CoreWinTT.
Corregidas las funciones: iClose, iLow, iHigh, iOpen, iTime, iVolume. Devuelven 0 en lugar de -1 en caso de error.
y cuando estarán en la biblioteca???
para que estuvieran al menos
Porque si lo abres, surge la pregunta, y el significado de lo anterior escrito????.
y también por lo menos recoger las funciones para las que se resuelven todas las preguntas y proceder a estudiar los errores en el resto.
el otro día, alguien sugirió una forma inteligente de crear un entorno μl4
utilizando matrices de
pero será difícil utilizarlos porque tienen estado const.
No se pueden crear buffers globales
porque deben declararse con la ayuda de
SetIndexBuffer
Asocia el buffer indicador especificado con un array dinámico unidimensional de tipo double declarado globalmente.
pero sólo de tipo double, y los volúmenes y arrays de tipo date-time no pasarán.
Lo único que queda es iniciar estos arrays dentro del módulo mql4.
que es prácticamente igual a reescribir el indicador....
¿y cuándo estarán en la biblioteca?
y cuando estarán en la biblioteca???
para que estuvieran al menos
Porque si lo abres, surge la pregunta, y el significado de lo anterior escrito????.
y también por lo menos recoger las funciones para las que se resuelven todas las preguntas y proceder a estudiar los errores en el resto.
Hay un montón de soluciones sobre este tema en las bibliotecas privadas durante mucho tiempo.
Yo, por ejemplo, he estado usando IsTesting() y cosas similares desde el principio, también todo se ha resuelto con fecha y hora durante mucho tiempo (por supuesto, hay otras soluciones)....
Otra cosa es la presencia de esas "Soluciones desfasadas" en la propia MT5....