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

 
Alexey Viktorov:

No puedes perder una habilidad.

¿Sí? ¿Un centenar, entonces? Con limón...

 
Artyom Trishkin:

En la captura de pantalla, la visualización de la memoria intermedia se desplaza cinco barras hacia la derecha. Entonces - para obtener la quinta barra del buffer de indicadores (con índice 4), y más abajo en la lista a la izquierda, ¿de dónde debemos obtenerlos? De Buffer[4] y más a la izquierda.

En teoría. En la práctica, hace tiempo que no abro el código de los indicadores, hace casi un año que no trabajo con ellos. Pruébalo.

Así es. Pero no necesito esos 5 valores a la derecha, quiero tener el valor necesario en el Buffer[0] de una vez. Si no, tendré que pasar no sólo el buffer sino también el offset a un montón de funciones para calcular fractales por MA y otras cosas. Esto supone una complicación innecesaria del código y una ralentización adicional de los cálculos.

Puedo copiar los valores requeridos en el Buffer (sin 5 valores MA a la derecha) sólo si paso -2*ma_shift en CopyBuffer para start_pos.
Esa es la pregunta original: de dónde viene el doble desplazamiento negativo. Por favor, aclárese. Tal vez sea un error, o tal vez sea una característica de MQL5.

 
RickD:

Esto es correcto. Pero no necesito esos 5 valores a la derecha, quiero tener el valor deseado en el Buffer[0] de una vez. De lo contrario, tendré que pasar no sólo el buffer, sino también el desplazamiento en un montón de funciones para el cálculo de fractales por MA y otras cosas. Esto supone una complicación innecesaria del código y una ralentización adicional de los cálculos.

Puedo copiar los valores requeridos en el Buffer (sin 5 valores de MA a la derecha) sólo si paso -2*ma_shift en CopyBuffer para start_pos.
Esa es la pregunta original: de dónde viene el doble desplazamiento negativo. Por favor, aclárese. Tal vez sea un error, o tal vez sea una característica de MQL5.

Ves que no se te entiende. Si lo hace, suele hacer un dibujo. Todavía no está claro lo que quieres conseguir.


Añadido: La imagen debe mostrar lo que debe ser el resultado completo.

 
RickD:

Esto es correcto. Pero no necesito esos 5 valores a la derecha, quiero tener el valor deseado en el Buffer[0] de una vez. Si no, tendré que pasar no sólo el buffer sino también el offset a un montón de funciones para el cálculo de fractales por MA y otras cosas. Esto supone una complicación innecesaria del código y una ralentización adicional de los cálculos.

Puedo copiar los valores requeridos en el Buffer (sin 5 valores MA a la derecha) sólo si paso -2*ma_shift en CopyBuffer para start_pos.
Esa es la pregunta original: de dónde viene el doble desplazamiento negativo. Por favor, aclárese. Tal vez sea un error, o tal vez sea una característica de MQL5.

El cambio es simplemente un cambio en la visualización de la máscara. El valor más a la derecha estará en el Buffer[0]. Si quieres saber el valor de la barra cero, estará en el Buffer[0 + shift].


Si lo quieres sin + shift, especifica 0 + shift enCopyBuffer(), entonces Buffer[0] contendrá el valor deseado.
 
¿Puedes decirme qué inluder debo conectar para llegar a la funciónMathCorrelationKendall()?
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall
Документация по MQL5: Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall
  • www.mql5.com
Стандартная библиотека / Математика / Статистика / Вспомогательные функции / MathCorrelationKendall - справочник по языку алгоритмического/автоматического трейдинга для MetaTrader 5
 
Сергей Таболин:
¿Puedes decirme qué inluder debo conectar para llegar a la función MathCorrelationKendall()?

Conéctate:

#include <Math\Stat\Math.mqh>
 
Vladimir Karputov:

Conéctate:

Gracias.

 
Si lo quieres sin + shift, especifica 0 + shift en CopyBuffer(), entonces Buffer[0] contendrá el valor requerido.

Todo esto está claro. Pregunta - ¿Qué posición inicial debe especificarse en CopyBuffer() para obtener "sin + desplazamiento" en sus términos?

 
Vladimir Karputov:

Ves que no se te entiende. En este caso, es habitual hacer un dibujo. Todavía no está claro lo que quiere conseguir.


Añadido: El dibujo debe mostrar CUÁL debe ser el resultado.

Ya había un dibujo. Lo repetiré.

Quieres que el Buffer[0] tenga el valor MA correspondiente a la línea vertical roja.
El búfer[1] debe tener el valor MA a la izquierda de la línea roja. Y así sucesivamente.

Y todo está en el indicador.


Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
RickD:

Todo esto es comprensible. Pregunta - ¿qué posición de inicio para especificar en CopyBuffer para obtener en sus términos "sin + shift"?

El valor que se añade para el desplazamiento de MA es 1.

Razón de la queja: