object_text ayuda a un principiante

 

Publi

Página 1 de 402 12 ÚltimoÚltimo
Resultados 1 al 10 de 12

Tema: object_text ayuda a un principiante

  1. #1
    ¿Alguien realmente amablemente arrojaría algo de luz sobre esto?
    Lo siguiente coloca el texto Opn: en la pantalla en la barra actual en MT4

    Sin embargo, lo que necesito es que el texto sea sobre las 9 am Bar Daily.

    No puedo descubrir qué hacer en lugar de CurrentTime para llegar a él.
    O tal vez hay un mejor método.
    Gracias de antemano por cualquier ayuda.

    datetime CurrentTime;

    ObjectCreate (AtOpen, OBJ_TEXT, 0,0,0);
    ObjectMove (AtOpen, 0, CurrentTime, High [1]);
    ObjectSetText (AtOpen, Opn:, 10, Calibri, clrWhite);

  2. #2

    Cita Iniciado por ;
    ¿Alguien realmente amablemente arrojaría algo de luz sobre esto? El siguiente coloca el texto Opn: en la pantalla en la barra actual en MT4. Pero lo que necesito es que el texto sea sobre la barra de las 9 am diariamente. No puedo encontrar qué hacer en lugar de CurrentTime para llegar a él. O tal vez hay un mejor método. Gracias de antemano por cualquier ayuda. Datetime CurrentTime; ObjectCreate (AtOpen, OBJ_TEXT, 0,0,0); ObjectMove (AtOpen, 0, CurrentTime, High [1]); ObjectSetText (AtOpen, Opn:, 10, Calibri, clrWhite);
    Cada objeto de gráfico debe tener un nombre excepcional. Aquí hay un script de ejemplo que puede ejecutar en el depurador para ver qué está pasando. Nota: estoy usando el curso de biblioteca estándar
    https://www.mql5.com/en/docs/standar...hartobjecttextpara hacerlo más simple. . Inserted Code #property rigingent #include lt; ChartObjects \ ChartObjectsTxtControls.mqhgt; void OnStart () int object_count = 0; for (int I = Bars-1; igt; = 0; I--) if (TimeHour (Time # 91; I # 93; -RRB - == 9 TimeMinute (Período # 91; I # 93; -RRB- = = 0) series object_name = __objectname __ series ( object_count); CChartObjectText text; if (text.Create (0, object_name, 0, Time # 91; I # 93;, High # 91; I # 93; 10 * _Point)) text.Anchor (ANCHOR_LEFT); text.Angle (90); text.Description (lt; ----- OPEN ----- lt; lt; -RRB-; text.Color (clrDarkOrange); texto .Font (Consolas); text.FontSize (9); text.Detach ();

  3. #3
    Muchas gracias Nicholishen. Como sugieres, trabajaré en el guión. Su asistencia es muy apreciada de hecho.

  4. #4

    Cita Iniciado por ;
    Muchas gracias Nicholishen. Trabajaré en el guión como me indicas. Su ayuda es muy apreciada.
    Hola teabreak, ¿has progresado? Aprender a codificar vale la pena el intento. Nicholishen, muchas gracias por las ilustraciones de OOP aquí y en todas partes (¡sigan viniendo!). He estado buceando un poco y estudiando un par de cosas útiles. Preguntas para el teabreak a tener en cuenta: P: ¿Desea solo 1 marca en la tabla, para la barra de coincidencia más reciente? O marcadores múltiples, como lo hace Nicholishen? (El ejemplo de Nicholishen lo hace más tarde, su esfuerzo es el anterior, porque usó solo 1 nombre de objeto, AtOpen_Text). P: ¿Qué marco de tiempo de gráficos? Lt; = H1, o, ¿le gustaría tener una barra H4 para mostrar la flecha? (El que comprende el período de 9AM). (Es ideal para calcular el tiempo de inicio de la barra que comprende el MarkAtTime. Posteriormente funciona en todos los gráficos TF de M1 a H4 para esta marca diaria). P: ¿CUÁNDO querrías exhibirlo? ¿Constantemente a las 9 a.m. todos los días? ¿O en la hora de inicio de la barra que comprende el período de 9AM? (Supongo que lo primero es lo mejor). P: Una vez que ocurre la última barra de las 9AM, inicialmente la exhibe en el precio de la barra anterior High [1]. ¿No es mejor ajustarlo si la corriente alta [0] excede la alta [1]? (De lo contrario, estará en la parte superior de la barra de las 9 AM). Y, una propuesta: sea lo que sea lo que decida, el código ideal debe hacer lo que haga solo UNA VEZ, y no repetir lo mismo una y otra vez. (Este requisito hace que el código sea más complicado de escribir, pero lo vale). El ejemplo rápido de Nicholishen ejecuta cada tic y cada barra, por lo que es ineficiente (pero ciertamente entiende eso, ¡así que no estoy bromeando!). En su código, el punto de inicio Bars-1 para el bucle for podría ser una limitación que es: extern int MaxBars = 0;/0 = límite int ilimitado = MathMin (Bars, Bars-prev_calculated);/Donde prev_calculated está en el más nuevo estilo de programación con OnCalculate () ... return (prev_calculated); if (limit == Bars) limit--;/Evita la matriz fuera de rango si (MaxBarsgt; 0) restringe = MathMin (limitación, MaxBars);/for (int I = limitante; igt; = 0; I--) ... Primera restricción de tiempo = Bars-1 (o, es MaxBars). Después de eso, generalmente es 0 hasta que sale una nueva barra, luego es 1 por solo 1 tick. Tenga en cuenta que puede ser complicado tratar solo con I == 1 o I == 0. Ocasionalmente escribo un bloque excepcional de código solo para == 0, simplemente para tratar el contexto de una barra nueva y repetir la misma barra actual una y otra vez. (En cuanto a la limitación, acabo de encontrar un error en algunas de mis aplicaciones intensivas de CPU donde pensé que había estado usando la limitación (principalmente 0 o 1) pero había estado restableciéndolo accidentalmente a Bars-1 cada tic, y era increíblemente lento por eso, y sobrecargué mi CPU con un montón de cálculos desperdiciados. ¡Lo solucioné!). PANTALLA DE TEXTO ROTADA ERROR MT4: Independientemente de OOP o del código regular de estilo C, Fyi, 1 problema que podría haber encontrado es que un objeto OBJ_TEXT a 90 grados tiene un problema debido a un error con MetaTrader4 (b1090). Observé esto cuando el precio subía más, por lo que el texto marcará en la parte superior de la tabla. El 90 grados rotótexto desaparece por completo si alguna parte del texto está fuera de la pantalla arriba o abajo! En cambio, cámbialo a 270 grados y en su mayoría funciona bien. Este texto vertical puede desaparecer al superponer los bordes izquierdoderecho del gráfico, pero es de esperar que sea raro hacerlo, siempre que utilices Desplazamiento de gráfico (Esto crea un espacio vacío a la derecha de la barra más reciente, prefiero de todos modos) . El error es trivial de replicar: dibuje manualmente cualquier texto con una descripción razonablemente larga. Desde la pestaña Parámetros hasta las propiedades del objeto, cambie Ángulo en grados a 90.0. Simplemente arrastre el texto hacia arriba o hacia abajo hasta que una parte toque los límites superior e inferior, y el texto desaparecerá por completo. Asegúrese de que sea 270 y funciona mucho mejor para arribaabajo. ¡Asegúrate de que sea 115 y desaparezca por varios cuatro bordes! Asegúrese de que sea 315 y funcione para los cuatro bordes. Informé el error a MetaQuotes. Veremos cuánto tardan en repararlo. Debido a esto, es una idea Fantástica hacer (también) una Flecha junto con el Texto en 270. Las flechas solo por encima del precio siempre deberían estar visibles, incluso cuando el precio sube. De esta forma, si el texto desaparece debido a una superposición con un borde, aún tendrá una marca en el gráfico.

  5. #5
    Hola, pips4life Antes que nada, muchas gracias por tomarte el tiempo para reaccionar. Es muy generoso de su parte capacitar a un principiante. En lugar de aprender todo el código, mi enfoque hasta aquí ha sido comprenderlo lo suficiente solo para llevar mis ideas comerciales. Esas ideas para mí están restringidas, así que en teoría, aprender un par de procesos básicos específicos debería ser suficiente. En resumen, generalmente he considerado que el código no es la cosa en sí misma, sino la cosa que hace que uno sea el mismo, como dice la expresión. Finalmente, espero encontrar MQL más extensamente por esa ruta. Por esa razón, encontré que su artículo fue extremadamente útil y también las Q que usted planteó son más aplicables, y en curso para hacer coincidir el código en mi trading, en lugar de encontrar código para realizar cualquier clase de negociación, si ve lo que quiero decir ... . R: Realmente quiero hacer coincidir solo un marcador de texto en el gráfico a las 9 y a las 1700. R: En un marco de tiempo único. R: Al cierre de este 9 y 1700 Bares. A: ¡Un muy buen punto! Gracias. Realmente necesito que el texto esté en los Highs de los 9 y 1700 pubs cuando cierren. Estoy completamente de acuerdo, quiero que estos dos eventos de texto sucedan solo una vez. Por el momento estoy haciendo todo bajo el vacío de OnTick () trabajo así que mi respuesta instintiva a eso sería usar un factor para controlar la sesión de horas para que todas las ocasiones puedan ejecutarse entre 9 a 1700, y otro factor para ordenar las ocasiones de texto , de modo que cada factor se incrementa de 0 a 1 cuando suceden los eventos respectivos, restableciéndose a 0 a 1700, listo para el siguiente momento. Además de eso, ahora estoy trabajando a través de su ejemplo de bucle for que indica una solución mucho más completa. Afortunadamente, no quiero rotar parte de su texto, pero muchas gracias por el aviso. Realmente no ubico a MQL como el compiladorIDE más fácil de operar, así que no hay nada más desalentador. Estoy muy de acuerdo con usted, estudiar el código vale la pena. La ayuda que usted y Nicholishen brindan es invaluable para las personas que comienzan como yo y supongo que puede ayudar al control que se experimenten algunos principios precisamente en el mismo momento. El botón F1 está bien, pero no lleva mucho tiempo lograr que un novato se empantane con la charla sobre tecnología que está allí. De nuevo, gracias a los dos por la ayuda.

  6. #6
    1 Adjunto (s)
    Cita Iniciado por ;
    Cita, muchas gracias por los ejemplos de OOP aquí y en otros lugares (Keep them coming!)
    Bueno, ya que me preguntaste aquí hay una prueba para obtener un proyecto en el que estoy trabajando para crear perfiles de gráficos de objetosestudios de gráficos que guardencarguen todos los estados en documentos en lugar de piratear las plantillas. Este caso presenta algunos patrones de diseño innovadores y es un buen caso de herencia, polimorfismo y dependencias circulares. La forma ideal de sumergirse es colocar un punto de quiebre en OnInit y medirlo a través de él ...
    https://www.forexycfds.com/attachmen...5583912874.rar

  7. #7
    1 Adjunto (s)
    Cita Iniciado por ;
    Hola, pips4life Antes que nada, muchas gracias por tomarte el tiempo para reaccionar. Es muy generoso de su parte capacitar a un principiante. En lugar de aprender el código durante, mi eegia hasta ahora ha sido comprenderlo lo suficiente solo para llevar a cabo mis ideas comerciales. Esas ideas para mí están restringidas, por lo que aprender los procedimientos que son básicos y específicos debe ser suficiente. En resumen, generalmente he creído que el código no es el objetivo, pero es lo que dice uno. Finalmente esperando descubrir MQL más a fondo por esa ruta ....
    Esto debería funcionar.
    https://www.forexycfds.com/attachmen...6180098658.mq4

  8. #8
    Wow gracias por tu código Nicholishen. Este tipo de asistencia fantástica. Supongo que necesito ser capaz de descubrir por quécómo funcionan los procedimientos y funciones, pero no puedo encontrar la descripción de la función que el lt; y el gt; jugar en línea #include lt; ChartObjects \ ChartObjectsTxtControls.mqhgt; Por favor lo describirías

  9. #9

    Cita Iniciado por ;
    wow gracias por tu propio código. Este tipo de ayuda fantástica. Supongo que debería ser capaz de descubrir por quécómo funcionan los procedimientos y funciones, pero no puedo encontrar la descripción del rol que desempeña el lt; junto con el gt; drama en línea #include lt; ChartObjects \ ChartObjectsTxtControls.mqhgt; Por favor lo explicarías
    Piense en estos incluyen la directiva como un mecanismo de copiar y pegar. Literalmente le dice al compilador que vaya a atrapar este documento y pegue sus contenidos en este lugar. Si el contenido contiene corchetes angulares, entonces está accediendo a los archivos a través de una ruta absoluta (incluir directorio) y con MQL que siempre será la carpeta MQL \ Include. Por lo tanto, si desea ver el código, vaya a la carpeta de inclusión y luego inicie la subcarpeta y el documento para ver las definiciones. Podría tener archivos usando comillas que le indiquen al compilador que ubique el documento en la ruta que es relativa.
    http://en.cppreference.com/w/cpp/preprocessor/include

  10. #10
    Olvidé incluir que la forma más fácil de descubrir el código de otras personas es usar el depurador incorporado.
    Https://www.metatrader5.com/en/metae...elopment/debugLo que quiere hacer es establecer un punto de inflexión en OnInit, como una instancia, y usar el botón de paso a paso y atenerse a la aplicación todo el tiempo. Si la aplicación utiliza cualquier archivo de biblioteca, el depurador abrirá automáticamente esos archivos y le solicitará la línea de código que se está ejecutando. Video insertado

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •  
Cookies
Utilizamos cookies propias y de terceros para mejorar nuestros servicios y mostrarle publicidad relacionada con sus preferencias mediante el análisis de sus hábitos de navegación. Si continua navegando, consideramos que acepta su uso. Puede cambiar la configuración u obtener más información y política de cookies aquí.