Lista MT4 o Array?
Lista MT4 o Array?

 

Publi

Página 1 de 353 123 ??ltimo??ltimo
Resultados 1 al 10 de 25

Tema: Lista MT4 o Array?

  1. #1
    ¿Qué es mejormás fácil ... lista o matriz?

    Ej: Tengo 4 condiciones de entrada separadas y quiero probar si alguna es mejor que las otras o si una combinación es mejor.

    Comprar si A
    Comprar si B
    Comprar si C
    Comprar si D

    y combinaciones adicionales, por ej.
    Comprar si ABCD
    Comprar si AC
    Comprar si BC
    etc.

    Como hay 4 condiciones bool, hay un total de 16 combinaciones y 15 posibles condiciones de compra desde FFFF a TTTT (16 menos FFFF).

    ¿Cuál es más efectiva una lista o una matriz? ¿Es uno más efectivo que el otro? ¿Es uno más fácil de implementar que el otro? En otra EA, utilicé una lista y obtuve más de 30 afirmaciones por lado para cada posible compra o venta.

    ¿Cuál es el enfoque más lógico para una matriz en este caso?

  2.                         
    Publicidad
  3. #2
    Con respecto a la velocidad ... Recién se dio cuenta a través de la experiencia, una lista más larga de si las declaraciones y la verificación de la condición demoran mucho más en realizar pruebas retrospectivas. Ejecutando un multi-parámetro y multi EA, EA backtest ahora, con 29 condiciones de compra, 29 condiciones de venta, y toma una eternidad ... mi paso de algoritmo genético está en cola durante 364 horas. Debo aprender e implementar la codificación tidy si quiero expandir más mis EA.

  4. #3

    Cita Iniciado por ;
    {cita} Gracias. Eso es PODEROSO. Con el ESTADO ... Entonces, este método es mucho más rápido y, por supuesto, menos redundante y menos propenso a errores y una vez presentado, más fácil de codificar siempre que uno sepa lo que está haciendo. Así que supongo que con 30 declaraciones IF simples, la diferencia en la velocidad de procesamiento del código es insignificante. Sin embargo, según su experiencia, ¿en qué momento hay una diferencia medible en la velocidad del código? En otras palabras, ¿cuánto tiempo de una lista habría para que las comprobaciones de estadocódigo de conmutación sean notablemente más rápidas? Una lista de FI de 100 condiciones ...
    es más fácil y más fácil de codificar, lo que facilita el mantenimiento y el beneficio de la velocidad; es más relevante en función de qué tan cerca del mercado esté operando, cuanto más cerca esté, más rápido deseará procesar. No he medido los tiempos, pero el problema de mantenimiento por sí solo vale la pena usar esta técnica.

  5. #4

    Cita Iniciado por ;
    {quote} lo que alguna vez funcione para ti, supongo ... pero aquí está el principio básico: ...... El cambio es simplemente una forma ordenada de hacer todas las IFs La conversión binaria es una forma simple de no repetir todas las verificaciones de estado La gran ventaja del interruptor es que una vez que ha procesado la declaración del caso correcto, todo el código de puntada ha terminado de procesarse, es decir, no procesará ninguna otra declaración del caso después de encontrar la coincidencia, lo que no es cierto para una larga lista de SI declaraciones
    Gracias. Eso es PODEROSO. Con el ESTADO ... Entonces, este método es mucho más rápido y, por supuesto, menos redundante y menos propenso a errores y una vez presentado, más fácil de codificar siempre que uno sepa lo que está haciendo. Así que supongo que con 30 declaraciones IF simples, la diferencia en la velocidad de procesamiento del código es insignificante. Sin embargo, según su experiencia, ¿en qué momento hay una diferencia medible en la velocidad del código? En otras palabras, ¿cuánto tiempo de una lista habría para que las comprobaciones de estadocódigo de conmutación sean notablemente más rápidas? ¿Una lista de FI de 100 condiciones y verificación, o 500 o más? Mi intuición me dice con una lista de 100 o más, algo si las declaraciones y la verificación se beneficiarían definitivamente del método que proporcionó.

  6. #5

    Cita Iniciado por ;
    {quote} Entiendo que puede ser una forma de programación cavernícola. Pero, un montón de ifs con verificación de condición es lo que sé que puedo comenzar a implementar de inmediato. Sé que es redundante y propenso a errores de repetición y errores de omisión. No es que esté en desacuerdo contigo. Yo escucho lo que estás diciendo. Simplemente no sabría por dónde empezar a menos que viera el código implementado en vivo para trabajar y copiar, pegar, personalizar y probar. No te estoy pidiendo que publiques un código de propiedad o que lo codifiques para mí o para otros aquí. No te pediría que hicieras eso a menos que quisieras ...
    Supongo que cualquier cosa que funcione para usted ... pero aquí está el principio básico: tiene 4 condiciones para verificar, luego llamaremos ABCD y cada una puede ser verdadera o falsa. Cree un entero llamado ESTADO y establezca en 0. Marque A y si VERDADERO agregue 1 a ESTADO Revise B y si VERDADERO agregue 2 a ESTADO Compruebe C y si VERDADERO agregue 4 a ESTADO Compruebe D y si VERDADERO agregue 8 a ESTADO El valor de ESTADO ahora representa el conjunto completo de respuestas de las 4 condiciones. Si STATUS = 12, entonces sabe que AB = false CD = TRUE y así sucesivamente. ahora puede usar un operador de Switch para ejecutar comandos basados ??????en los resultados de la siguiente manera: Código insertado int Estado = 0; si TestA Status = 1; si TestB Status = 2; si TestC Status = 4; si el estado de TestD = 8; interruptor (ESTADO) {caso 1: Imprimir (Disparador = A); descanso; caso 2: Imprimir (Trigger = B); descanso; caso 3: Imprimir (Trigger = AB); descanso; caso 4: Imprimir (Trigger = C); descanso; caso 5: Imprimir (Trigger = AC); descanso; por defecto: Imprimir (Activar = ninguno); descanso; } puede tener tantas declaraciones de caso como sea necesario. puede reemplazar los comandos de Imprimir con cualquier número de líneas de código que desee, puede establecer un booleano en Verdadero para una compra, por ejemplo, y luego, después de la instrucción Switch, diga IF DOBUY = TRUE ..... El interruptor es simplemente una forma ordenada de hacer todos los IFs La conversión binaria es una forma sencilla de no repetir todas las comprobaciones de estado La gran ventaja del interruptor es que una vez que ha procesado la declaración del caso correcto, todo el código de puntada ha terminado de procesarse, es decir, no procesará cualquier otra declaración de caso después de que encuentre la coincidencia que no es verdadera para una larga lista de declaraciones IF

  7. #6

    Cita Iniciado por ;
    {quote} todavía lo está haciendo de la manera más difícil imo pruebe los resultados solo una vez y genere un número único utilizando el binario, luego simplemente use una declaración de caso para los diferentes resultados. de esta manera, solo prueba los escenarios una vez y no tiene que hacer un montón de IF con la verificación de condición. La forma más simple, rápida y eficiente de hacer esto.
    Entiendo que puede ser una forma de programación cavernícola. Pero, un montón de ifs con verificación de condición es lo que sé que puedo comenzar a implementar de inmediato. Sé que es redundante y propenso a errores de repetición y errores de omisión. No es que esté en desacuerdo contigo. Yo escucho lo que estás diciendo. Simplemente no sabría por dónde empezar a menos que viera el código implementado en vivo para trabajar y copiar, pegar, personalizar y probar. No te estoy pidiendo que publiques un código de propiedad o que lo codifiques para mí o para otros aquí. No te pediría que hicieras eso a menos que quisieras, y más importante a menos que pudiera entenderlo de inmediato. Incluso si lo publicaste como lo ha hecho Rockit, probablemente no entendería más de 2 o 3 líneas del código. Entiendo mucho de la sintaxis * básica * de los comandos y la lógica estándar de MT4 y puedo entender las sugerencias en MQL yo puedo consultarlas en línea. Sin embargo, la sintaxis de la codificación más avanzada, como los bucles y arrays anidados o los binarios (como usted sugiere) no está inmediatamente en mi alcance mental. Es como esto. Sé cómo conducir un coche. Pero, ¿podría conducir una F1 a máxima velocidad en un circuito en vivo con otros autos volando a mi alrededor? Probablemente no sea efectivamente. Aprecio las sugerencias de programación tipo F1. Las semillas han sido plantadas. En este momento me he dado cuenta incluso más de que la lógica sólida, la implementación inmediata y las pruebas son más importantes para mí que los métodos de codificación eficientes o avanzados. En caso de que sea necesario que otros métodos de codificación sean absolutamente necesarios para implementar lo que necesito o deseo implementar, entonces es hora de adquirir habilidades de programación más avanzadas o asociarse con alguien que pueda. Ahora mismo está probando las ideas que tengo, lo más rápido posible y luego aprenderé una codificación más efectiva y eficiente. Gracias.

  8. #7

    Cita Iniciado por ;
    De todos modos, creo que conocer todos los posibles escenarios comerciales antes de realizar pruebas es más importante que considerar el uso de una lista, un bucle anidado o una matriz. Sé cómo codificar esta lista sabia. Los otros tipos de codificación los estudiaré para una posible implementación futura. Gracias por contribuir a este hilo. Realmente me abrió los ojos a mis posibles errores de lógica de trading antes de comenzar a codificarlo y probarlo.
    todavía lo está haciendo de la manera más difícil imo pruebe los resultados solo una vez y genere un número único utilizando el binario, luego simplemente use una declaración de caso para los diferentes resultados. de esta manera, solo prueba los escenarios una vez y no tiene que hacer un montón de IF con la verificación de condición. La forma más simple, rápida y eficiente de hacer esto.

  9. #8
    De todos modos, creo que conocer todos los posibles escenarios comerciales antes de realizar pruebas es más importante que considerar el uso de una lista, un bucle anidado o una matriz. Sé cómo codificar esta lista sabia. Los otros tipos de codificación los estudiaré para una posible implementación futura. Gracias por contribuir a este hilo. Realmente me abrió los ojos a mis posibles errores de lógica de trading antes de comenzar a codificarlo y probarlo.

  10. #9
    1 Adjunto (s)
    Cita Iniciado por ;
    {quote} No, no hay. Hay 16 en total (15 es decir). Y todos se pueden abordar en 4 bucles anidados, como lo he dicho anteriormente (al principio me equivoqué de la prueba; uno tiene que usar xor yy no operadores).
    Al principio pensé que había 15 (16 menos F F F F, o O O O O). Desde una perspectiva matemática, eso sería cierto, ya que hay 4 combinaciones binarias ... 2x2x2x2 Sin embargo, hay otras combinaciones negociables ... por ejemplo, para la combinación AB: Se podría decir comprar si ABXX, o comprar si ABCX, o comprar si ABXD son 3 resultados separados de los 15 (16) originales. También podría incluir simplemente comprar si AB, lo que significaría comprar si ABXX || ABCX || ABXD generaría muchas más operaciones que probando una de cada una de las tres posibles, por lo que en realidad hay 4 combinaciones posibles de AB, no solo 3 Si extrapola esto con todas las combinaciones, por ejemplo A: test if ( AXXX) (TFFF) gt; gt; Comprar prueba si (ABXX) gt; gt; Comprar prueba si (AXCX) gt; gt; Comprar prueba si (AXXD) gt; gt; Comprar prueba si (ABCX) gt; gt; Comprar prueba si (ABXD) gt; gt; Comprar prueba si (AXCD) gt; gt; Comprar prueba si (ABCD) gt; gt; Compre para posibles combinaciones A habría 8 arriba más una combinación comercializable que en realidad debería probarse también. Porque comprar si A, podría significar comprar si AXXX (AFFF, si usa TF), o podría significar comprar si hay alguna combinación de A, lo que significaría si (A || AB || AC || AD || ABC || ABD || ACD || ABCD) gt; gt; Comprar esto es un resultado muy negociable, pero no está incluido en el conjunto de 8 calculado originalmente. Entonces, compre si A, no tiene 8, sino 9 situaciones comerciables. Compre si A podría significar cualquiera de los 9 o solo el 9, mientras que comprar si solo AXXX podría significar la primera combinación. Compre si AB podría significar comprar si CUALQUIER AB, o podría significar comprar si SOLAMENTE ABXX. Extrapolar todos los posibles resultados TRADABLE A, B, C, D y los derivados y luego eliminarlos por duplicados me da 29 posibles resultados negociables, cada uno de los cuales genera un conjunto diferente de operaciones a lo largo del tiempo. No estoy familiarizado con los bucles anidados y cómo funciona su código, pero al observar los multiplicadores 8, 2, 1, creo que el código solo permite los resultados OR estáticos y esos sumarían hasta 15. Tal vez su código justifique la novena condición ¿Y simplemente no lo veo? Si no lo tiene en cuenta, estoy bastante seguro de que en las pruebas y operaciones, dará resultados diferentes. condición 1: if (AXXX) (TFFF) gt; gt; Condición de compra 2: if (ABXX) gt; gt; Condición de compra 3: if (AXCX) gt; gt; Condición de compra 4: if (AXXD) gt; gt; Condición de compra 5: if (ABCX) gt; gt; Condición de compra 6: if (ABXD) gt; gt; Condición de compra 7: if (AXCD) gt; gt; Condición de compra 8: if (ABCD) gt; gt; Condición de compra 9: if (AXXX || ABXX || AXCX || AXXD || ABCX || ABXD || AXCD || ABCD) gt; gt; Compre Publiqué un pdf de la hoja de cálculo con TODAS las combinaciones por letra de señal y eliminé los duplicados.
    https://www.forosforex.com/attachmen...1566454549.pdf

  11. #10

    Cita Iniciado por ;
    Como dijiste hay 8 combinaciones posibles por letra matemáticamente. Sin embargo, si los sumas a los posibles escenarios de compra, hay más combinaciones.
    No no hay. Hay 16 en total (15 es decir). Y todos se pueden abordar en 4 bucles anidados, como lo he dicho anteriormente (al principio me equivoqué de la prueba; uno tiene que usar xor yy no operadores).

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Uso de cookies
Utilizamos cookies propias y de terceros para elaborar información estadística y mostrarle publicidad personalizada a través del análisis de su navegación. Si continúa navegando acepta su uso. Más información y política de cookies.
     

Aviso legal: Ni forosforex.com ni ninguna persona involucrada en forosforex.com aceptarán ninguna responsabilidad por cualquier pérdida o daño en el trading como resultado de la confianza en la información contenida en este sitio web, incluidos datos, cotizaciones, gráficos y señales de compra/venta. Por favor, infórmese plenamente de los riesgos y costes asociados a las operaciones en los mercados financieros, una de las formas de inversión que más riesgos entrañan.
forosforex.com le quiere recordar que los datos contenidos en este sitio web no son necesariamente en tiempo real ni exactos. forosforex.com no asume responsabilidad alguna por las pérdidas en que usted podría incurrir como resultado de la utilización de estos datos. Este acuerdo se rige por su versión en inglés, que prevalecerá siempre que haya alguna discrepancia entre la versión en inglés y la versión en español. Los CFD son un producto difícil de entender, varios organismos reguladores consideran que no es adecuado para inversores minoristas debido a su complejidad y riesgo.
Advertencia de riesgo: Los CFDs son un producto difícil de entender, y puede no ser adecuado para inversores minoristas debido a su complejidad y riesgo. Existe la posibilidad de sufrir una pérdida igual o superior a la inversión. Por lo tanto, no debe invertir o arriesgar dinero que no pueda permitirse perder. Debe asegurarse de que comprende todos los riesgos. Antes de abrir una cuenta en un broker por favor sea consciente e infórmese de los riesgos asociados con el trading. El contenido de este sitio web no debe interpretarse como asesoramiento personal. ForosForex recomienda que busque el consejo de un asesor financiero independiente.