¿Cómo preservar la variable en el indicador al cambiar los marcos de tiempo?
¿Cómo preservar la variable en el indicador al cambiar los marcos de tiempo?

 

Publi

Página 1 de 356 123 ... ??ltimo??ltimo
Resultados 1 al 10 de 60

Tema: ¿Cómo preservar la variable en el indicador al cambiar los marcos de tiempo?

  1. #1
    1. Acabo de recibir un PM, haciéndome la siguiente pregunta:

    Programando un indicador personalizado, ¿cómo puedo preservar el valor de una variable al cambiar el marco de tiempo? Probé varias variaciones usando GlobalVariableSet/Get y deinit(). Ninguno de ellos funcionó. ¿Tienes una idea?

    No sé la respuesta. ¿Alguien puede ayudar?


    2. Además, ¿alguien sabe cómo recuperar el nombre de la fuente que se usa en un objeto?

    Por ejemplo, es posible recuperar el tamaño de fuente usando ObjectGet(object_name,OBJPROP_FONTSIZE)

    Pero no parece haber ninguna forma de recuperar el nombre de la fuente (Arial, Verdana, etc.).

    De nuevo, ¿alguien puede ayudar?

    Muchas gracias,
    David

  2.                         
    Publicidad
  3. #2

    Cita Iniciado por ;
    Sí, entiendo tu intención (aunque todavía tengo que entender tu sugerencia). Solo una pregunta: ¿Qué sucedería si tuviéramos 3 gráficos, el EA adjunto a cada uno, todos del mismo par? Mt4 se bloquea y se reinicia. Ahora los 3 EA intentan encontrar su pedido (un EA controla solo 1 pedido que se identifica con un MagicNumber único). Con su solución, ¿encontrarían los 3 EA su pedido? ¿O el primer EA tomaría el primer pedido y lo administraría con los valores almacenados (en GlobalVariables o en un archivo) y luego ese pedido sería bloqueado para...
    aquí está la cosa.... si está abriendo un nuevo gráfico, entonces ese gráfico realmente NO TIENE un orden que 'pertenezca' a él, ni el orden que estaba previamente 'vinculado a un gráfico' ya no está vinculado a ningún gráfico. no importa si el gráfico se configuró previamente con 500 indicadores y con una egía específica en mente para el orden que se estaba manejando en él porque una vez que se cierra ese gráfico, todo desaparece. ¡Abrir un nuevo gráfico comienza de nuevo! por lo tanto, cualquier pedido que no se administre es técnicamente un juego gratuito para que cualquier EA nuevo comience a administrar. mi 'solución' solo sería para cuando un objeto no está en el gráfico que ya proporciona el número mágico/de pedido. si no hay ningún objeto, es probable que el gráfico sea nuevo. en cuanto a qué gráfico adquiere qué orden, según lo anterior, no importará qué orden toman. todos ellos son un juego justo en ese punto. como dije en mi última publicación, estaba pensando en las líneas del EA volviendo exactamente a cómo se configuraron las órdenes 'sigilosas' antes de que se cerrara el gráfico anterior, en lugar de que el usuario tuviera que ingresar números mágicos y mover stoptp líneas alrededor y vuelva a colocar todo en su lugar. editar: lo único de lo que no estoy seguro es qué tan seguro es todo esto. si mt4 salta por el lugar antes de terminar una llamada para comenzar en un EA, entonces todo esto es en vano.

  4. #3

    Cita Iniciado por ;
    Mi entendimiento fue que su administrador 'sigiloso' EA solo realiza órdenes de mercado y no envía paradas ni tomas de ganancias al servidor. si el gráfico se cerró por error, el usuario tendría que restablecer estos valores manualmente a su manera después de abrir el gráfico y reiniciar el EA. a mi manera no lo harían. simplemente se levantaría de donde estaba y seguiría adelante. ahí es donde iba con eso.
    Sí, entiendo tu intención (aunque todavía tengo que entender tu sugerencia). Solo una pregunta: ¿Qué sucedería si tuviéramos 3 gráficos, el EA adjunto a cada uno, todos del mismo par? Mt4 se bloquea y se reinicia. Ahora los 3 EA intentan encontrar su pedido (un EA controla solo 1 pedido que se identifica con un MagicNumber único). Con su solución, ¿encontrarían los 3 EA su pedido? ¿O el primer EA tomaría el primer pedido y lo administraría con los valores almacenados (en GlobalVariables o en un archivo) y luego ese pedido sería bloqueado para los otros 2 EA y el segundo EA encuentra uno de los pedidos activos restantes y luego el ¿El tercer EA en el tercer gráfico no tendría acceso a las 2 órdenes bloqueadas y tomaría la última y todo estaría bien? Si ese es el caso, tienes una solución que otros no hemos encontrado.

  5. #4

    Cita Iniciado por ;
    Lo siento, . Cuando se cierra un gráfico, mi EA está limpiando todas las variables globales porque no tiene sentido administrar algo en un gráfico cerrado = no hay orden para administrar, de lo contrario, el gráfico no se cerraría. No se cierra solo, el usuario tiene una razón para cerrarlo. Si hubiera una orden activa que había sido iniciada y controlada en ese gráfico que ahora está cerrado, la orden aún existe y puede identificarse por su MagicNumber. Entonces, si el usuario siente la necesidad de adjuntar el EA a un nuevo gráfico de ese par, para obtener el...
    bueno, en ese caso, a la mierda. dejar caer un objeto. los globales... solo estaba diciendo tener globales como una bandera que se puede probar. es solo alguien que levanta la mano constantemente para decir que todavía está vivo, y si empujas su mano hacia abajo y permanece abajo, entonces sabes que no está vivo y debes asumir ese trabajo. de lo que estaba hablando era realmente de hacer un seguimiento de qué órdenes deben administrarse en caso de que algo salga mal, como que el gráfico se cierre por error. en esa situación, podría volver a adquirir automáticamente el pedido que se pretende administrar y seguir transportando. Mi entendimiento fue que su administrador 'sigiloso' EA solo realiza órdenes de mercado y no envía paradas ni tomas de ganancias al servidor. si el gráfico se cerró por error, el usuario tendría que restablecer estos valores manualmente a su manera después de abrir el gráfico y reiniciar el EA. a mi manera no lo harían. simplemente se levantaría de donde estaba y seguiría adelante. ahí es donde iba con eso.

  6. #5

    Cita Iniciado por ;
    te estás olvidando de la parte sobre 'qué pasa si el gráfico está cerrado'. los EA necesitan individualmente volver a adquirir un comercio no manejado apropiadamente e ir desde allí, lo que sospecho que resuelve mi última publicación.
    Lo siento, . Cuando se cierra un gráfico, mi EA está limpiando todas las variables globales porque no tiene sentido administrar algo en un gráfico cerrado = no hay orden para administrar, de lo contrario, el gráfico no se cerraría. No se cierra solo, el usuario tiene una razón para cerrarlo. Si hubiera una orden activa que había sido iniciada y controlada en ese gráfico que ahora está cerrado, la orden aún existe y puede identificarse por su MagicNumber. Entonces, si el usuario siente la necesidad de adjuntar el EA a un nuevo gráfico de ese par, para que el EA administre el pedido nuevamente, inserta el MagicNumber en el parámetro y establece el bool Use automatic MagicNumber = false. Luego, el EA toma el control con el MagicNumber adecuado, vuelve a etiquetar el gráfico y vuelve a dibujar las líneas de orden de acuerdo con la configuración del EA.

  7. #6

    Cita Iniciado por ;
    La única solución conocida actualmente es etiquetar el gráfico con el número de ticket o el número mágico a través de Objetos de gráfico. Cualquiera que escriba un administrador comercial genérico y flexible probablemente se encontrará con este problema. .
    Gracias, Xaphod. Estoy de acuerdo. @, no sé si tu sugerencia funcionaría. Me parece muy cumplido y prefiero usar el objeto de gráfico para vincular el EA al gráfico. Es simple y un codificador aficionado como yo puede manejarlo.

  8. #7

    Cita Iniciado por ;
    Sobre el problema fxtr51 ha tomado:
    te estás olvidando de la parte sobre 'qué pasa si el gráfico está cerrado'. los EA necesitan individualmente volver a adquirir un comercio no manejado apropiadamente e ir desde allí, lo que sospecho que resuelve mi última publicación.

  9. #8
    Sobre el problema que fxtr51 ha abordado: supongamos que tiene 3 operaciones abiertas en 3 gráficos, todas en el mismo par/período de tiempo, pero diferentes sistemas de negociación, cada uno administrado por su propia instancia de EA (el mismo EA en cada gráfico). Cuando se reinicia MT4, no hay forma de que el EA sepa qué comercio pertenece a qué gráfico. Al iniciar, el EA puede obtener la información guardada para las operaciones (archivo/vars globales/registro/lo que sea), pero aún no sabe a cuál de los 3 gráficos pertenecía la operación, ya que todos tienen el mismo TF/Par/EA. MT4 puede/inicializará los gráficos en cualquier orden que considere adecuado. La única solución conocida actualmente es etiquetar el gráfico con el número de ticket o el número mágico a través de Objetos de gráfico. Cualquiera que escriba un administrador comercial genérico y flexible probablemente se encontrará con este problema. Antes de reiniciar: Chart1: EU, M15, RSI system, TicketNr 10 Chart2: EU, M15, CCI system, TicketNr 20 Chart3: EU, M15, Pivot system, TicketNr 30 Después de reiniciar: Chart?: EU, M15, ? sistema, TicketNr 30 ¿Gráfico?: UE, M15, ? sistema, TicketNr 10 Gráfico?: UE, M15, ? sistema, TicketNr 20 Solución: etiquete cada gráfico con un objeto de gráfico que contenga TicketNr/MagicNr.

  10. #9
    todos codificamos de manera diferente... personalmente, como se mencionó muchas veces antes, uso un solo gráfico para intercambiar cada par en cada marco de tiempo... el gráfico o marco de tiempo real no importa y se puede cambiar sin ningún aspecto negativo. .... o la plataforma se puede reiniciar sin problemas...... el único requisito es que el gráfico obviamente debe estar algo activo...... por supuesto que estamos limitados en cuanto a saber qué está haciendo svengrallais ...... traté de pensar en una razón por la que los globales tenían que usarse absolutamente... lo único que me viene a la mente sería leer una etiqueta o dirección de flecha colocada en el gráfico por un indicador que solo si el ex no tuviera el mq4... este es un dilema común... aquí no podemos usar icustom o incluir las matemáticas desconocidas en nuestro ea... tendríamos que aplicar el versión ex del indicador para que pudiera crear el objeto que luego podríamos leer y almacenar de forma segura en una variable global... una sola línea solitaria debería hacerlo... pero de nuevo, estamos limitados en cuanto a saber qué es svengralla haciendo........h/--- Código insertado GlobalVariableSet(hidden Symbol() Period(),ObjectGet(suggest, OBJPROP_ARROWCODE));

  11. #10
    Cita Iniciado por ;
    Ya veo (olvidaste nuestra discusión en mi hilo, pero no hay problema, también estoy olvidando cosas).
    Sí. la fábrica no se compromete con la memoria a largo plazo.
    Cita Iniciado por ;
    Mi EA asigna un nuevo MagicNumber automáticamente cuando se adjunta a un gráfico. Es conveniente. Necesito MagicNumbers únicos para controlar el orden y las líneas de pedido en el gráfico y tener el MagicNumber asignado automáticamente me permite verificar todos los MagicNumbers de operaciones existentes. Ahora imagina que cambio de marco temporal. MagicNumber en ese gráfico es 2 . Después del cambio, el EA se ha asignado a sí mismo MagicNumber = 3 porque es único. Simplemente perdió el control sobre su propia orden que tiene MagicNumber = 2. A eso me refiero con que EA está ligado al gráfico. El EA debe preservar el MagicNumber del orden que controla de alguna manera, de lo contrario, asignará un nuevo MagicNumber único cada vez que se inicie la inicialización. Verificar las órdenes activas del par, al que se adjunta el EA, no ayuda si hay más de 1 órdenes para ese par. ¿Cómo debe saber el EA qué orden debe controlar? No encuentra el MagicNumber que controlaba antes del reinicio y, por lo tanto, nunca sabrá cuál de los 2 o 4 pedidos de ese par debe administrar. Si...
    por lo tanto, el problema no es almacenar en un archivo... su problema es decidir quién puede controlar qué cuando abre un gráfico. mastique esto y vea lo que sale del otro extremo: si actualiza una de sus líneas o lo que sea que haga con su EA (solo tengo un concepto vago de lo que debe hacer) actualiza el archivo, o incluso mejor, podría hacer que solo envíe la información actualizada al archivo un minuto o lo que sea después de realizar un cambio por primera vez desde la última vez que actualizó el archivo. de esa manera, definitivamente está actualizando el archivo en algún momento, pero no de inmediato, por lo que se está dando tiempo para hacer ajustes y cualquier otra cosa en lugar de revisar el archivo una y otra vez cada vez que hace algo. si tiene un gráfico que se ocupa de un pedido en particular, ingrese una var global al número de pedido y establezca el valor en algo así como 10.0 en todos y cada uno de los ticks. cuando inicia un nuevo EA, todo lo que necesita hacer es encontrar todas las órdenes y establecer la var global clave en cero... espere dos tics (en caso de que esta nueva instancia de EA de alguna manera logre ejecutarse antes que cualquiera de los otros EA, y para que tengan la oportunidad de actualizar los valores globales antes de que haga el siguiente bit) y luego revisar todos los pedidos y encontrar cuáles tienen un conjunto de var global con un valor inferior a 5. cualquier cosa con un valor establecido inferior a 5 significa que no otro EA actualizó la var global a un valor de 10 en el tick anterior... es decir, encontró un número de pedido que a nadie parece importarle. si encuentra un número de pedido que a nadie le importa, entonces revisa el archivo para encontrar ese número de pedido y, si está allí, extrae todos los demás datos relevantes, además ahora sabe qué número mágico debe usar este EA. si no hay órdenes para que las recoja, haga lo que haga para asignar automáticamente un número mágico para cualquier orden que inicie en ese gráfico. todo esto podría ser una total mierda, o podría ser correcto. no se.

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.