Saludos a todos, llegué aquí por una nota al pie del tema "Errores típicos y formas de eliminarlos cuando se trabaja con el entorno comercial".
Me gustaría utilizar la biblioteca y el enfoque para calcular "mis" posiciones después de enviar órdenes de mercado enviadas de forma asíncrona.
La mayoría de los ejemplos y discusiones no tienen en cuenta la situación cuando el trading tiene lugar en cuentas donde otros Asesores Expertos trabajan en paralelo, y en consecuencia todos los Eventos y resultados OnTradeTransaction son comunes.
¿Funcionará esta lógica en cuentas HEDGING con otros EAs. En particular, ¿si los expertos operarán en el mismo instrumento, pero con su propio mago?
¿Funcionará esta biblioteca con un Asesor Experto multidivisa que abra operaciones en instrumentos diferentes del establecido?
Recordadme, por favor, creo que ya corregí un error similar, pero me lo he vuelto a encontrar y he perdido un montón de horas. Parece que en Convert.mqh se reduce el tamaño del array destino. Necesitaba meter el array uchar[39] en el recurso, pero en la función ArrayToStruct el receptor de tipo uint[] se empecina en considerar que es de tamaño 9, es decir, faltan los 3 últimos caracteres.
Stanislav Korotky: Recordadme, por favor, creo que ya corregí un error similar, pero me lo he vuelto a encontrar y he perdido un montón de horas. Parece que en Convert.mqh se reduce el tamaño del array destino. Necesitaba poner el array uchar[39] en el recurso, pero la función ArrayToStruct considera persistentemente que el receptor de tipo uint[] es de tamaño 9, es decir, faltan los 3 últimos caracteres.
Según las recomendaciones de MQ, en el fichero ResourceData, en el método GetFullName se debería utilizar la constante TERMINAL_DATA_PATH en lugar de TERMINAL_PATH.
Ambas rutas son las mismas para mí, a pesar de que el terminal se lanza sin modo portable (aparentemente porque UAC está desactivado y tengo permisos de escritura en Archivos de Programa). Pero si te conectas vía RDP, todas las fuentes se toman de Roaming. Muchos usuarios probablemente tienen todas las fuentes en TERMINAL_DATA_PATH (diferente de TERMINAL_PATH) por defecto.
Según las recomendaciones de MQ, en el archivo ResourceData, el método GetFullName debería utilizar la constante TERMINAL_DATA_PATH en lugar de TERMINAL_PATH.
Supongo que sí. Yo uso portable, así que no presté atención. Estos códigos los usan las unidades. Como tú, los usuarios hace tiempo que corrigieron las rutas a las correctas.
Es difícil hacer soporte KB, la lista de trabajo se ha vuelto gruesa.
Hice la alineación (adición) por 4 bytes en mi código de llamada, y no edité Convert.mqh - después de todo, se toma de su carpeta include y puede ser sobrescrito, por lo que es mejor corregirlo en la KB (por cierto, no entendí muy bien cuál es el proyecto principal para los archivos de cabecera Convert.mqh, Resource.mqh y ResourceData.mqh - tal vez estoy escribiendo en el lugar equivocado).
Hice la alineación (adición) por 4 bytes en mi código de llamada, y no edité Convert.mqh - después de todo, se toma de su carpeta de inclusión y puede ser sobrescrito, por lo que es mejor corregirlo en la KB (por cierto, no entendí realmente qué proyecto es el principal para los archivos de cabecera Convert.mqh, Resource.mqh y ResourceData.mqh - tal vez estoy escribiendo en el lugar equivocado).
TradeTransactions no se utiliza.
HistoryTicks - No puedo imaginarme operar en MT4 sin él. Probablemente, debería ser considerado como el principal. Pero no puedo actualizarlo en KB.
No se dio cuenta de que la versión en KB es viejo. Desafortunadamente, no hay manera de actualizar. El autómata de KB da esto
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(110,14) : error 165: 'ArrayResize_Real' - function already defined and has body
MQL4\Include\fxsaber\HistoryTicks\ArrayResize.mqh(172,14) : error 165: 'ArrayResize_Real' - function already defined and has body
En ME todo compila sin errores.
En HistoryTicks la responsabilidad es órdenes de magnitud mayor ya que es real. En la práctica se ha solucionado.
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.
Sí, funcionará.
Recordadme, por favor, creo que ya corregí un error similar, pero me lo he vuelto a encontrar y he perdido un montón de horas. Parece que en Convert.mqh se reduce el tamaño del array destino. Necesitaba poner el array uchar[39] en el recurso, pero la función ArrayToStruct considera persistentemente que el receptor de tipo uint[] es de tamaño 9, es decir, faltan los 3 últimos caracteres.
Sí, se corta. Prueba esto
Según las recomendaciones de MQ, en el fichero ResourceData, en el método GetFullName se debería utilizar la constante TERMINAL_DATA_PATH en lugar de TERMINAL_PATH.
Ambas rutas son las mismas para mí, a pesar de que el terminal se lanza sin modo portable (aparentemente porque UAC está desactivado y tengo permisos de escritura en Archivos de Programa). Pero si te conectas vía RDP, todas las fuentes se toman de Roaming. Muchos usuarios probablemente tienen todas las fuentes en TERMINAL_DATA_PATH (diferente de TERMINAL_PATH) por defecto.
Según las recomendaciones de MQ, en el archivo ResourceData, el método GetFullName debería utilizar la constante TERMINAL_DATA_PATH en lugar de TERMINAL_PATH.
Supongo que sí. Yo uso portable, así que no presté atención. Estos códigos los usan las unidades. Como tú, los usuarios hace tiempo que corrigieron las rutas a las correctas.
Es difícil hacer soporte KB, la lista de trabajo se ha vuelto gruesa.
Sí, está recortado. Prueba esto.
Hice la alineación (adición) por 4 bytes en mi código de llamada, y no edité Convert.mqh - después de todo, se toma de su carpeta include y puede ser sobrescrito, por lo que es mejor corregirlo en la KB (por cierto, no entendí muy bien cuál es el proyecto principal para los archivos de cabecera Convert.mqh, Resource.mqh y ResourceData.mqh - tal vez estoy escribiendo en el lugar equivocado).
Hice la alineación (adición) por 4 bytes en mi código de llamada, y no edité Convert.mqh - después de todo, se toma de su carpeta de inclusión y puede ser sobrescrito, por lo que es mejor corregirlo en la KB (por cierto, no entendí realmente qué proyecto es el principal para los archivos de cabecera Convert.mqh, Resource.mqh y ResourceData.mqh - tal vez estoy escribiendo en el lugar equivocado).
TradeTransactions no se utiliza.
HistoryTicks - No puedo imaginarme operar en MT4 sin él. Probablemente, debería ser considerado como el principal. Pero no puedo actualizarlo en KB.
Foro sobre trading, sistemas automatizados de trading y testeo de estrategias de trading
Bibliotecas: HistoryTicks
fxsaber, 2020.01.09 14:43
No se dio cuenta de que la versión en KB es viejo. Desafortunadamente, no hay manera de actualizar. El autómata de KB da esto En ME todo compila sin errores.En HistoryTicks la responsabilidad es órdenes de magnitud mayor ya que es real. En la práctica se ha solucionado.
解决该错误,用 随附的 替换 Include \ fxsaber \ TradeTransactions \ Convert.mqh 。
const RESOURCEDATA<double>ResourceDouble("::Double_"+__FILE__);
const RESOURCEDATA<datetime>ResourceTime("::Time_"+__FILE__);
const RESOURCEDATA<string>ResourceString("::String_"+__FILE__);
'Data' - struct undefined Convert.mqh 85 49
¿No funciona en MT4 build 1320?
¿No funciona en MT4 build 1320?
Pruebe esto.