Problema para hacer que las variables globales funcionen
Problema para hacer que las variables globales funcionen

 

Publi

Página 1 de 352 12 ??ltimo??ltimo
Resultados 1 al 10 de 13

Tema: Problema para hacer que las variables globales funcionen

  1. #1

    Cita Iniciado por ;
    ¿Tal vez estás ejecutando una versión antigua de mt4? Esto desde 2006 tiene el mismo problema.
    http://www.metatrader4.com/forum/2500No quiero arriesgarme a perder todos los globales que uso con mis propias cosas, así que no voy a probar si funciona correctamente o no en la última compilación de mt4. de cualquier manera, es bastante fácil recorrer los globales (recordando pasar del último al primero) usando globalvariablestotal y globalvariablename, haga un stringfind y verifique el valor devuelto para decidir si un global debe eliminarse o no. esto es lo que...
    Estaba bien desenterrado. Estoy ejecutando la compilación 402. Parece que no lo arreglaron.

  2.                         
    Publicidad
  3. #2
    ¿Tal vez estás ejecutando una versión antigua de mt4? Esto desde 2006 tiene el mismo problema.
    http://www.metatrader4.com/forum/2500No quiero arriesgarme a perder todos los globales que uso con mis propias cosas, así que no voy a probar si funciona correctamente o no en la última compilación de mt4. de cualquier manera, es bastante fácil recorrer los globales (recordando pasar del último al primero) usando globalvariablestotal y globalvariablename, haga un stringfind y verifique el valor devuelto para decidir si un global debe eliminarse o no. Esto es lo que la función deleteall debería estar haciendo cuando se especifica una cadena, por lo que está rota (mt4 típico) o algo raro está pasando y necesita hacer las 4 o más líneas adicionales de código usted mismo y saber que simplemente funcionará como lo quieres

  4. #3

    Cita Iniciado por ;
    incluso si UniqueID está en blanco, el símbolo debería devolver un valor, por lo que debería resolverse en ALGO al menos y no pasar un valor en blanco a la eliminación global.
    Es lo que pensaba.
    Cita Iniciado por ;
    solo para descubrir de qué se trata, podría valer la pena descargar uniqueid symbol () en una variable de cadena separada y luego imprimir esta variable en el diario o pantalla para ver a qué se está resolviendo. podría revelar alguna rareza inesperada de mt4 ... algo así como, quizás el símbolo () aún no tiene un valor cuando está dentro de la función init, aunque debería.
    Ahora lo he intentado: comentar el prefijo en la pantalla, que funciona bien como cadena conenada y como variable que usa esa variable como parámetro para GlobalVariableDeleteAll. Esto es muy extraño. De todos modos, en este momento no estoy usando la función Indior que usa GV, así que he comentado el código. Gracias a todos los que ayudaron. Me pregunto si puedo cobrar mi día perdido a metaquotes.

  5. #4

    Cita Iniciado por ;
    Eso tendría sentido. Esta es la línea ofensiva en el indicador que está en 26 gráficos GlobalVariablesDeleteAll (UniqueID Symbol ()); Es parte de init (). UniqueID es un externo En mi EA, estoy usando un prefijo completamente diferente
    incluso si UniqueID está en blanco, el símbolo debería devolver un valor, por lo que debería resolverse en ALGO al menos y no pasar un valor en blanco a la eliminación global. solo para descubrir de qué se trata, podría valer la pena descargar uniqueid symbol () en una variable de cadena separada y luego imprimir esta variable en el diario o pantalla para ver a qué se está resolviendo. podría revelar alguna rareza inesperada de mt4 ... algo así como, quizás el símbolo () aún no tiene un valor cuando está dentro de la función init, aunque debería.

  6. #5

    Cita Iniciado por ;
    suena como que se pasa una variable de cadena vacía, por lo tanto, elimina todos los globales.
    Eso tendría sentido. Esta es la línea ofensiva en el indicador que está en 26 gráficos GlobalVariablesDeleteAll (UniqueID Symbol ()); Es parte de init (). UniqueID es un externo En mi EA, estoy usando un prefijo completamente diferente

  7. #6
    suena como que se pasa una variable de cadena vacía, por lo tanto, elimina todos los globales.

  8. #7

    Cita Iniciado por ;
    La otra cosa sería buscar una eliminación global en algún lugar, esto puede estar dentro de un gráfico inferior.
    Muchas gracias. Encontré el problema. Hubo un indior utilizando GlobalVariablesDeleteAll (). Lo extraño fue que estaba usando un parámetro de parefix que debería haber restringido lo que estaba eliminando: int GlobalVariablesDeleteAll (string prefix_name = NULL) Elimina variables globales. Si no se especifica el prefijo del nombre, se eliminarán todas las variables globales. De lo contrario, solo se eliminarán esas variables, cuyos nombres comienzan con el prefijo especificado. La función devuelve el recuento de variables eliminadas.

  9. #8
    este es un ejemplo de cómo lo hago ...... podría haber mejores métodos ... es de un ea que nunca me ha fallado ... ya sea que el gráfico esté cerrado, el terminal apagado o la computadora desactivado accidentalmente o de otro modo ...... los indicadores globales permanecen intactos ...... h/---/--- Código insertado si (SymProfit (símbolo) gt; maxprofit # 91; i # 93; ) {maxprofit # 91; i # 93; = SymProfit (símbolo);} else {maxprofit # 91; i # 93; = maxprofit # 91; i # 93 ;;} if (SymProfit (symbol) lt; maxloss # 91; i # 93 {maxloss # 91; i # 93; = SymProfit (símbolo);} else {maxloss # 91; i # 93; = maxloss # 91; i # 93 ;;} Pantalla (maxprofitlabel symbol i, horizontal 900, vertical-30); ObjectSetText (maxprofitlabel symbol i, Max Profit, 12, Verdana, Blue); Pantalla (symmaxprofit symbol i, horizontal 900, vertical (i * 26)); ObjectSetText (symmaxprofit symbol i, DoubleToStr (GlobalVariableGet (symbol maxprofit), 2), 12, Verdana, Blue); Pantalla (maxlosslabel symbol i, horizontal 1000, vertical-30); ObjectSetText (maxlosslabel symbol i, Max Loss, 12, Verdana, Blue); Pantalla (symmaxloss symbol i, horizontal 1000, vertical (i * 26)); ObjectSetText (symmaxloss symbol i, DoubleToStr (GlobalVariableGet (symbol maxloss), 2), 12, Verdana, Blue); if (maxprofit # 91; i # 93; gt; GlobalVariableGet (símbolo maxprofit)) {GlobalVariableSet (symbol maxprofit, maxprofit # 91; i # 93;} if (maxloss # 91; i # 93; lt; GlobalVariableGet (symbol maxloss)) {GlobalVariableSet (symbol maxloss, maxloss # 91; i # 93;}} if (AccountMargin () gt; GlobalVariableGet (maxmargin)) {GlobalVariableSet (maxmargin, AccountMargin ());} if ( AccountMargin () lt; GlobalVariableGet (minmargin)) {GlobalVariableSet (minmargin, AccountMargin ());} if (AccountFreeMargin () gt; GlobalVariableGet (es una comparación)) (GlobalfariamarSet). ; GlobalVariableGet (minfreemargin)) {GlobalVariableSet (minfreemargin, AccountFreeMargin ());} if (AccountProfit () gt; GlobalVariableGet (este es un comentario). )) {GlobalVariableSet (minaccprofit, AccountProfit ());} si (AccountEquity () gt; GlobalVariableGet (maxaccequity)) {GlobalVariableSet (maxaccequity, AccountEquity ());} Display (maxmarginlabel, horizontal 1100, vertical-30); ObjectSetText (maxmarginlabel, Max Margin, 12, Verdana, Blue); Pantalla (maxmarginamount, horizontal 1100, vertical 20); ObjectSetText (maxmarginamount, DoubleToStr (GlobalVariableGet (maxmargin), 2), 12, Verdana, Blue);

  10. #9
    DC, fuera de la idea de la pared, me gustaría ver dos cosas. Primero están las variables en el lugar apropiado dentro del código. Tienen que ser inicializados si no, entonces serán borrados. La otra cosa sería buscar una eliminación global en algún lugar, esto puede estar dentro de un gráfico inferior. También puede cambiar el nombre del archivo y ver si funciona. buena suerte

  11. #10

    Cita Iniciado por ;
    o al menos el mío sí ... estoy usando la versión de ibfx, no disponible, no creo que importaría
    Me sale el mismo comportamiento en alpari.

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.