- Características del lenguaje mql5, sutilezas y técnicas
- ¡¡¡1200 suscriptores!!!
- Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos
Para cerrar una orden, no es necesario definir el tipo de orden y el precio correspondiente a ese tipo. Es suficiente con escribir OrderClosePrice()
void OnStart()
{
int i, total = OrdersTotal()-1;
for(i = total; i >= 0; i--)
{
if(OrderType() < OP_SELLSTOP)
{
if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100))
printf("***********");
}
}
}/********************************************************************/
Hay muchas más inexactitudes en la ayuda. Por ejemplo,SetIndexBuffer(). ¿Qué es lo que falla en la ayuda?
"Parámetros
índice
[in] Número de la memoria intermedia del indicador. La numeración empieza por 0. El número debe ser menor que el valor declarado en la #propiedad indicator_buffers". (esta afirmación no es cierta)
La #propiedad indicator_buffers especifica el número de buffers a mostrar. Quizás lo que la ayuda quiere decir, aunque no lo he comprobado, es que, los buffers utilizados para el cálculo no necesitan que se les dé un número con SetIndexBuffer(). Pero lo que he comprobado es que si al buffer utilizado para el cálculo se le da un número con SetIndexBuffer(), su valor puede ser recuperado mediante iCustom().
Ya que los desarrolladores están visitando el hilo - hay una pregunta sobre "sutilezas y trucos":
Ejemplo de impresión con formato: PrintFormat("Oferta=%.5f", Oferta)
Pregunta: ¿hay alguna manera, en lugar de una precisión fija (aquí5), de especificar una condición en la descripción del formato para que la precisión dependa de _Digits? Para prescindir de un "preprocesamiento" como PrintFormat("Oferta=%s", DoubleToString(Oferta, _Digits))
Pregunta: en lugar de una precisión fija (aquí5), ¿es posible especificar una condición en la descripción del formato para que la precisión dependa de _Digits?
- www.mql5.com
Описание проблемы
Estoy escribiendo un indicador en MQL4. Me enfrenté a una característica no documentada del estilo DRAW_HISTOGRAM.
Para mostrar los valores en el gráfico, necesito dos buffers: para el valor superior del histograma y para el inferior. Al mapear los buffers de la matriz de indicadores, si los buffers del estilo tendrán los valores 0 y 1, 2 y 3, 4 y 5, etc. todo se muestra normalmente. Sin embargo, si a los buffers de estilo se les asignan valores que empiezan por OTROS, es decir, 1 y 2, 3 y 4, 5 y 6, las líneas del histograma no se mostrarán correctamente en el gráfico, aunque los valores en la ventana de datos serán correctos.
Por favor, añada una mención a esta peculiaridad en la documentación, o corríjala, ya que no siempre se da el caso de que la descripción del estilo DRAW_HISTOGRAM comience con un buffer par.
Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading
-Aleks-, 2017.02.07 18:21
Puede usted aconsejarme por favor, si en MT4 Expert Advisor, si el indicador de usuario con más de un búfer gráfico se llama constantemente, entonces el recálculo ocurre en cada llamada o todos los búferes se calculan a la vez y se puede hacer referencia al indicador en el código muchas veces y no esperar que haya un desperdicio de recursos. También me interesa saber qué pasará si el código no se completa (se ejecuta más de un tick), pero el valor del indicador cambia.
Foro sobre comercio, sistemas de comercio automatizados y pruebas de estrategias
Slawa, 2017.02.08 08:20
Todos los topes se calculan a la vez. Interrogar tranquilamente los valores del indicador - no habrá recálculoEn MT4 el indicador llamado desde el Asesor Experto trabaja en el flujo de este EA y sobre una copia de sus datos históricos. Puede hacer un bucle con el Asesor Experto, pero al mismo tiempo recibirá los datos del indicador calculados en el momento de la llamada OnTick. Hasta que llame a RefreshRates. RefreshRates actualiza los datos históricos del Asesor Experto, después todos sus datos serán recalculados en la primera llamada del indicador
Para cerrar una orden, no es necesario especificar el tipo de orden y el precio correspondiente a este tipo. Basta con escribir cerrar al precio OrderClosePrice()
El OrderClosePrice sólo puede utilizarse inmediatamente después del OrderSelect correspondiente. Porque OrderSelect copia los datos de las funciones Order(const)-una vez, y el mismo RefreshRates no es capaz de actualizarlos.
Es decir, si, por ejemplo, OrderClosePrice falla en el cierre, entonces el OrderSelect debe hacerse de nuevo antes del siguiente intento (RefreshRates no es necesario).
ZS ¡Este hilo es de 2005! Aquí están los argumentos detallados de los desarrolladores.
Es una pena...
---
Para que el puesto no sea inútil:
en lugar de StringGetCharacter("a", 0) se puede escribir sólo 'a'- a menudo se necesita cuando se analizan las cadenas en partes con StringSplit
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso