Aprender y escribir juntos en MQL5 - página 36

 

Gracias por estas respuestas tan completas y pido disculpas por mi precipitación y falta de atención al estudiar la documentación; las respuestas estaban efectivamente contenidas en la descripción de la función OnCalculate.

Aparentemente me apresuré a forzar el proceso de aprendizaje y me perdí de estudiar las descripciones de OnInit y OnCalculate.

Yedelkin:

¿Responden estas líneas a su pregunta?

MetaDriver:

En este caso, estos valores no pueden ser calculados correctamente (no hay suficiente historia para calcularlos), por lo que se les asigna estúpidamente valores cero.

// Hubiera preferido asignarles los datos de entrada correspondientes, pero no hay mucha diferencia.

Poner incorrectamente la pregunta (es obvio, escribí lo mismo en el comentario a la línea, y entendí que la asignación de valor nulo está presente). Parafraseando

Profi_R:

Pongo la impresión y veo que los valores distintos de 0 en el ExtLineBuffer se asignan desde el índice límite-1hasta el índice tasas_total-1, pero en el gráfico el indicador se dibuja en todo el espacio, hmm, entonces ¿dónde está la asignación de valores(distintosde cero) al buffer del indicador en el espacio de 0 a límite-1?

Que no se pueden calcular y no tienen sentido está claro desde el principio. He mirado, en la barra 0 el valor de una media simple (indicador) es igual al valor máximo del precio (no siempre), al principio pensé que se trataba del número de barras mostradas en el gráfico y almacenadas en el historial, he cambiado esta opción de configuración a unlimit, el resultado no ha cambiado, el indicador en las primeras barras (izquierda) de límite se dibuja, y su valor es diferente de 0.
 
Profi_R:

Gracias por estas respuestas tan completas y pido disculpas por mi precipitación y falta de atención al estudiar la documentación; las respuestas estaban efectivamente contenidas en la descripción de la función OnCalculate.

Aparentemente me apresuré a forzar el proceso de aprendizaje y me perdí de estudiar las descripciones de OnInit y OnCalculate.

Bien.

Paráfrasis

El hecho de que no se puedan calcular y no tengan sentido está claro desde el principio. He mirado, en la barra 0 el valor de una media simple (indicador), igualado al valor máximo del precio (no siempre), al principio pensé que se trataba del número de barras mostradas en el gráfico y almacenadas en el historial, cambié esta configuración a "ilimitada", el resultado no ha cambiado, el indicador en la primera barra (izquierda) dibujada, y su valor es diferente de 0.

Lo he comprobado y parece lo mismo. El historial en los ajustes es de 100000 barras, no quiero comprobar si hay algún límite, me lo creo).

No tengo respuesta a "cómo es posible", es mejor preguntar a los desarrolladores (por ejemplo, en la rama "bugs, bugs, questions", que es visitada por los desarrolladores muy regularmente).

Estoy seguro de que aquí no aparecerán milagros, lo más probable es que el terminal no muestre todo el historial solicitado y que las barras más a la izquierda disponibles (programáticamente) simplemente se queden fuera. :)

 
Profi_R:
El hecho de que no se puedan calcular y no tengan sentido está claro desde el principio. He mirado, en la barra 0, el valor de una media simple (el indicador), igualado al valor máximo del precio (no siempre), al principio pensé que se trataba del número de barras mostradas en el gráfico y almacenadas en el historial, cambié esta opción a una ilimitada, el resultado no ha cambiado, el indicador en las primeras barras (izquierda) se dibuja, y su valor es diferente de 0.
Lo hice científicamente: en la línea for(i=0;i<limit-1;i++) ExtLineBuffer[i]=0.0; sustituye el cero por el uno y mira dónde aparece. Comparar con los resultados obtenidos anteriormente.
 
MetaDriver:

Estoy seguro de que aquí no aparecerán milagros, lo más probable es que el terminal no muestre del todo el historial solicitado y que las barras más a la izquierda disponibles (programáticamente) simplemente queden fuera de la imagen. :)

Sí, resultó que se calculó toda la profundidad del historial (sin vincularlo a un gráfico), sólo que no es suficiente para habilitar la profundidad, mostrada en el gráfico, hay que reiniciar el terminal o abrir el gráfico de nuevo y sólo entonces esta opción será efectiva. Este trozo de código está ahora completamente claro.
Документация по MQL5: Операции с графиками / ChartOpen
Документация по MQL5: Операции с графиками / ChartOpen
  • www.mql5.com
Операции с графиками / ChartOpen - Документация по MQL5
 

En general, debería comenzar con los artículos Cómo escribir un indicador en MQL5 y Indicador por indicador en MQL5.

Además, existe un hilo especial en la sección correspondiente del foro, destinado a responder a este tipo de preguntas - Lo que hay que saber sobre los indicadores

 
Rosh:

En general, debería empezar con los artículos Cómo escribir un indicador en MQL5 y Indicador por indicador en MQL5.

Además, existe un hilo especial en la sección correspondiente del foro, destinado a responder a este tipo de preguntas - Lo que hay que saber sobre los indicadores

))))) se alegra de verle con buena salud, que perdone mis flames. Gracias, lo tendré en cuenta )
 
Me alegro de verte en el 5 también :)
 
Buenas noches, estoy investigando la estructuradel resultado de la solicitud de comercio (MqlTradeResult). Escribimos así las impresiones para esta estructura respectivamente entre Print(99999999999999999999);
 OrderSend(request,result);

      int Error=GetLastError(); ResetLastError();
        printf("Error %i ",Error);
      
        Print(i);
        
       Print(999999999999999999); 
        uint re= result.retcode;
         Print( "Код результата операции");
        Print( re);  
      // int re=
       ulong  ru= result.   deal;
        Print( "Тикет сделки, если она совершена");
       Print( ru); 
       
         ru= result.  order;
        Print( "Тикет ордера, если он выставлен");
        Print( ru);
        
         double    rd= result. volume;
         Print( "Объем сделки, подтверждённый брокером"); 
         Print( rd); 
       
          rd= result.  price;  
        Print( "Цена в сделке, подтверждённая брокером");  
       Print( rd);
      
           rd= result. bid;     
       Print( "Текущая рыночная цена предложения (цены реквота)"); 
         Print( rd); 
      
            rd= result. ask;   
        Print( "Текущая рыночная цена спроса (цены реквота)"); 
         Print( rd); 
      
          string    rs= result. comment;  
           Print( "Комментарий брокера к операции (по умолчанию заполняется расшифровкой)"); 
         Print( re);
      
         //    re= result.  request_id;   
       //    Print( "Идентификатор запроса, устанавливается терминалом при отправке "); 
       //  Print( re);
         
          
                   
      Print(999999999999999999); 
Para muchos valores la impresión se escribe cero, ¡qué es eso!
 
Dimka-novitsek:
Buenas noches, estoy investigando la estructuradel resultado de la solicitud de comercio (MqlTradeResult). He escrito Print(999999999999999999) para esta estructura respectivamente; Para muchos valores Print ha escrito cero, ¡qué es eso!

¿Por qué escribimos estas líneas? ¿Por qué no analizamos el resultado?

uint re= result.retcode;
         Print( "Код результата операции");
         Print( re);  

En cuanto a los ceros: ¿Qué tipo de ceros causan perturbaciones?

 
Gracias. El precio actual de oferta y demanda es cero. Billete de oferta . Pedido de entradas. Bien, aquí está el papá.
Документация по MQL5: Торговые функции / OrderGetTicket
Документация по MQL5: Торговые функции / OrderGetTicket
  • www.mql5.com
Торговые функции / OrderGetTicket - Документация по MQL5
Razón de la queja: