Preguntas de los principiantes MQL5 MT5 MetaTrader 5 - página 818

 
Vladimir Karputov:

Espero que cree las manijas del indicador UNA vez en OnInit()?

La profundidad del cálculo depende del indicador. Los indicadores raros limitan la profundidad a la fuerza - por regla general, todos ellos calculan la historia completa. Por lo tanto, la siguiente variante puede ser útil: introducir la variable responsable de la profundidad en el indicador y luego pasar este parámetro a través de iCustom en el Asesor Experto.

1. Sí, entiendo que de buena manera debe hacerse una vez en el init. Pero el problema es que los parámetros de entrada de los indicadores pueden variar. Por ejemplo, en el análisis del espectro se calculan las frecuencias de resonancia y el resultado del cálculo es el periodo del MA utilizado. Y si se solicitan datos de MA para una nueva dimensión, se trata de un nuevo mango. Prácticamente las frecuencias no cambian en cada barra, por lo que se utiliza la misma manija de MA durante el tiempo suficiente (~ minutos). Pero aun así, llega un momento en que la manija cambia. Y entonces tengo que usar un montón de asas, o usar una sola asa, pero recalcularla periódicamente. Ahí es donde entra la economía.

2. iCustom lo tengo dominado. Pero, ¿cómo limitar la profundidad de cálculo en el indicador? No puedo hacerlo en la técnica. Al parecer, tendré que crear un montón de clones personalizados de indicadores técnicos. Por supuesto, es molesto pero debe ser efectivo. Gracias por el consejo. Es una buena idea. Gracias.

 
User_mt5:

1. Sí, tengo entendido que esto se hace normalmente una vez en el inite. Pero la cuestión es que los parámetros de entrada de los indicadores pueden cambiar.

Los desarrolladores pueden escribir SB donde los indicadores pueden ser manejados al estilo MQL4 sin perder su eficiencia. Es decir, todos los cachés y asideros están ocultos en SB.

 
User_mt5:

1. Sí, tengo entendido que esto se hace normalmente una vez en el inite. Pero el problema es que los parámetros de entrada de los indicadores pueden variar. Por ejemplo, en el análisis espectral se calculan las frecuencias de resonancia y el resultado del cálculo es el periodo de la MA utilizada. Y si se solicitan datos de MA para una nueva dimensión, se trata de un nuevo mango. Prácticamente las frecuencias no cambian en cada barra, por lo que se utiliza la misma manija de MA durante el tiempo suficiente (~ minutos). Pero aun así, llega un momento en que la manija cambia. Y entonces tengo que usar un montón de asas, o usar una sola asa, pero recalcularla periódicamente. Ahí es donde entra la economía.

2. iCustom lo tengo dominado. Pero, ¿cómo limitar la profundidad de cálculo en el indicador? No puedo hacerlo en la técnica. Al parecer, tendré que crear un montón de clones personalizados de indicadores técnicos. Por supuesto, es molesto pero debe ser efectivo. Gracias por el consejo. Es una buena idea. Gracias.


1. En ese caso probablemente sea mejor matar un handle que no se use y crear uno nuevo (lo principal es controlar, para no meter un millón de handles en OnTick() :) ).

2. Cree una copia del indicador incorporado, pero con un nombre diferente (por ejemplo, añada "profundidad de la historia" a su nombre) e introduzca un nuevo parámetro: InpDepthHistory. Es decir, hay que escribir nuevos indicadores personalizados.

 
User_mt5:

1. Sí, tengo entendido que esto se hace normalmente una vez en el inite. Pero el problema es que los parámetros de entrada de los indicadores pueden variar. Por ejemplo, en el análisis espectral se calculan las frecuencias de resonancia y el resultado del cálculo es el periodo de la MA utilizada. Y si se solicitan datos de MA para una nueva dimensión, se trata de un nuevo mango. Prácticamente las frecuencias no cambian en cada barra, por lo que se utiliza la misma manija de MA durante el tiempo suficiente (~ minutos). Pero aún así, llega un momento en que la manija cambia. Y entonces tengo que usar un montón de asas, o usar una sola asa, pero recalcularla periódicamente. Ahí es donde entra la economía.

2. iCustom lo tengo dominado. Pero, ¿cómo limitar la profundidad de cálculo en el indicador? No puedo hacerlo en la técnica. Al parecer, tendré que crear un montón de clones personalizados de indicadores técnicos. Por supuesto, es molesto pero debe ser efectivo. Gracias por el consejo. Es una buena idea. Gracias.

Por lo que entiendo quieres obtener sólo 1 valor usando iCustom() como en mql4, pero no consideras que mql4 también recalcula el indicador para toda la profundidad del historial en el primer uso. Del mismo modo, se recalcula al cambiar al menos un parámetro.

Por lo tanto, concluimos: no debe molestarse. Si el indicador "antiguo" no es necesario, puede simplemente borrarlo y obtener un mango del indicador con otros parámetros.

 
fxsaber:

Los desarrolladores pueden escribir una SB en la que los indicadores puedan ser manejados al estilo MQL4 sin perder eficiencia. Es decir, todos los cachés y asideros están ocultos en la SB.

Lo siento, no lo entiendo. ¿Es la palabra Desarrolladores aquí los que crearon MT o soy una aplicación pecaminosa? ¿Y SB es...?

 
Vladimir Karputov:

1. En ese caso, probablemente sea mejor matar un handle no utilizado y crear uno nuevo (lo principal es asegurarse de no meter un millón de handles en OnTick() :)) ).

2. Cree una copia del indicador incorporado, pero con un nombre diferente (por ejemplo, añada "profundidad de la historia" a su nombre) e introduzca un nuevo parámetro: InpDepthHistory. Es decir, debe escribir nuevos indicadores personalizados.

1. Sí. Hasta ahora tengo una matriz tridimensional de sólo asas. Pero ahora, aparentemente, lo reorganizaré todo.

2. Sí, hay casi todos los códigos de indicadores técnicos. Y puedes escribir el tuyo propio.

Gracias.

 
User_mt5:

Lo siento, no lo entiendo. ¿Son los desarrolladores de la palabra aquí los que crearon la MT o soy un pecador aplicador? ¿Y SB es...?

MetaQuotes puede crear dicha Biblioteca Estándar si así lo desea. La gran pregunta es: ¿es necesario?

 
Alexey Viktorov:

Según veo, quieres obtener sólo 1 valor usando iCustom() como en mql4, pero no tienes en cuenta que mql4 también recalcula el indicador para toda la profundidad del historial en el primer uso. Del mismo modo, se recalcula cuando se modifica al menos un parámetro.

De ahí la conclusión: no hay que molestarse. Si un indicador "obsoleto" ya no es necesario, puede simplemente borrarlo y obtener un indicador manipulado con parámetros diferentes.

Tal vez, sí quiero hacerlo. Pero ahora no quiero. Tienes razón. Si no necesitas un indicador obsoleto, deberías aplastarlos como a las cucarachas :)

Una buena solución es limitar la profundidad de los clones técnicos. Ahorrará recursos y tiempo. Así que eso es lo que voy a hacer ahora.

Gracias.

 
fxsaber:

MetaQuotes puede crear dicha Biblioteca Estándar si así lo desea. La gran pregunta es: ¿es necesario?

Esto es para las generaciones futuras. He mirado algunos ejemplos de la biblioteca. Miles de líneas de código sin comentar. No sé nadie, pero yo no puedo hacer eso. Así que gracias por la idea, pero no es aceptable en mi caso.
 
User_mt5:
Esto es para las generaciones futuras. He mirado algunos ejemplos de la biblioteca. Miles de líneas de código sin comentar. No sé nadie, pero yo no sé cómo hacerlo. Así que gracias por la idea, pero no es aceptable en mi caso.

Esto ya funciona en MT5

Foro sobre trading, sistemas de trading automatizados y pruebas de estrategias de trading

Características del lenguaje mql5, sutilezas y trucos

fxsaber, 2018.01.09 10:20

Para los adeptos a MQL4 hay una forma antigua de manejar los TFs en MQL5

Quizás alguien encuentre útil el enfoque de MQL4 para trabajar también con el historial de ticks

if (Tick[0].bid > Tick[100].bid) // сравниваем текущий и исторический тики
  Print("Hello World!");

if (High[0] > Close[100]) // https://www.mql5.com/ru/forum/42122/page24#comment_2904023
  Print("Hello World!");

Técnicamente, nada impide hacer lo mismo UNA vez con indicadores (sin pérdida de eficacia) y poner la solución en SB.

Razón de la queja: