Asesores Expertos: Programación en MQL5 para tráders: códigos fuente del libro: Parte 6. - página 2
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
De todos modos, las órdenes, las operaciones y las posiciones no están relacionadas con los plazos. O ha entendido algo mal o su redacción es incorrecta.
Lo siento, creo que mi elección de palabras es confusa, por"marco de tiempo" me refiero a "intervalo de fechas". Digamos que quiero seleccionar transacciones/pedidos realizados dentro de un intervalo de fechas determinado, por ejemplo, transacciones desde 2025-10-01 00:00:00 hasta 2025-10-22 23:59:59.
Si se quiere analizar un subrango de un histórico de operaciones, cuando es más eficiente solicitar sólo esta parte del histórico antes del filtrado, sin afectar al propio código de filtrado:
Si, por alguna razón, desea seleccionar un subrango (más estrecho) dentro del rango global que aplicó con HistorySelect, entonces todavía puede hacerlo en el código de filtrado así:
{ // algunos de ellos van aquí // HistorySelect(0, LONG_MAX); // HistorySelectByPosition(PositionID); ... DealTuple deals[]; if(SubrangeFrom != SubrangeTo && SubrangeFrom < SubrangeTo) { filter.let(DEAL_TIME, SubrangeFrom - 1, IS::GREATER).let(DEAL_TIME, SubrangeTo + 1, IS::LESS); } filter.let(DEAL_POSITION_ID, PositionID).select(deals, true); ... }La línea resaltada en amarillo establece 2 condiciones para el rango datetime [SubrangoDesde, SubrangoHasta] utilizando calificadores adicionales IS::MAYOR y IS::MENOR (por defecto, no se especifican en otras llamadas a let(), y entonces IS::IGUAL se utiliza normalmente para campos de valor único).
Sólo conozco una razón para aplicar el subfiltro por intervalo de fechas - es para el tiempo de preparación de las órdenes (ORDER_TIME_SETUP), porque HistorySelect se aplica a otra propiedad datetime de las órdenes - a saber, el tiempo de ejecución de la orden (ORDER_TIME_DONE). También puede ser interesante filtrar un subrango de órdenes activas (no en el histórico), si hay muchas.
Puede mirar el ejemplo de script MQL5/Scripts/MQL5Book/p6/TradeHistoryPrint.mq5, como punto de partida.Si desea analizar un subrango de un historial de operaciones, cuando sea más eficiente solicitar sólo esta parte del historial antes del filtrado, sin afectar al propio código de filtrado:
Si, por alguna razón, desea seleccionar un subrango (más estrecho) dentro del rango global que aplicó con HistorySelect, entonces todavía puede hacerlo en el código de filtrado así:
La línea resaltada en amarillo establece 2 condiciones para el rango datetime [SubrangoDesde, SubrangoHasta] utilizando calificadores adicionales IS::MAYOR y IS::MENOR (por defecto, no se especifican en otras llamadas a let(), y entonces IS::IGUAL se utiliza normalmente para campos de valor único).
Sólo conozco una razón para aplicar el subfiltro por intervalo de fechas - es para el tiempo de preparación de las órdenes (ORDER_TIME_SETUP), porque HistorySelect se aplica a otra propiedad datetime de las órdenes - a saber, el tiempo de ejecución de la orden (ORDER_TIME_DONE). También puede ser interesante filtrar un subrango de órdenes activas (no en el histórico), si hay muchas.
Puedes mirar el script de ejemplo MQL5/Scripts/MQL5Book/p6/TradeHistoryPrint.mq5, como punto de partida.Corrección de errores MQL5/Include/MQL5Book/TradeUtils.mqh.
Un moderador ha formateado el código pegado incorrectamente. Normalmente, dicho código se elimina.
@StanislavKorotky Por favor, ¿puede ayudar a mirar en este error, creo que comenzó después de las actualizaciones MT5 porque sabía que el código funciona en los meses anteriores sin ninguna modificación.
parámetro tipo de conversión 'long[][2]' a 'string[][] &' no está permitido SymbolFilter.mqh 199 20
Sospecho que el siguiente código ayudará a reproducir el problema:
Hola @Paul Dick
Prueba este https://www.mql5.com/es/code/57233 para ordenar matrices
Adjunto una versión actualizada del archivo de cálculo del criterio deoptimización personalizado basado en R2 - RSquared.mqh, en la que se ha corregido el cálculo para el caso de lotes variables.
Se ha mejorado notablemente la calidad de la estimación - a juzgar por la tabla de resultados de la optimización, se ha obtenido la combinación del factor de recuperación y los parámetros de Sharpe.
Ejemplo de utilización.