Cualquier pregunta de los recién llegados sobre MQL4 y MQL5, ayuda y discusión sobre algoritmos y códigos - página 892

 
Seric29:
Chicos que pueden ayudar con esta pregunta. Quiero declarar una variable global de tipo indefinido o de tipo arbitrario. Entonces esta variable se utilizará en las funciones en las que se apliquen las plantillas. En otras palabras, llamo a la función y tomo un array de cualquier tipo, entonces se harán los cálculos y el resultado será devuelto por la función y será asignado a esta variable. Quiero almacenar el resultado del cálculo de estos parámetros en una variable, para no tener que llamar a la función por segunda vez. ¿Cómo puedo encontrar una solución universal con el menor número de comprobaciones, puedo convertir el tipo de variable, o declararla como variable con una macro, qué puedo hacer?

Si entiendo bien, entonces

https://www.mql5.com/ru/docs/basis/oop/templates

Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
Документация по MQL5: Основы языка / Объектно-ориентированное программирование / Шаблоны функций
  • www.mql5.com
Перегруженные функции обычно используются для выполнения похожих операций над различными типами данных. Простой пример такой функции в MQL5 - ArraySize(), которая возвращает размер массива любого типа. На самом деле эта системная функция является перегруженной, и вся реализация такой перегрузки спрятана от разработчика программ на MQL5: То есть...
 
leonerd:

No entiendo muy bien este comentario. Puede abrir una posición de bloqueo (opuesta a la posición abierta) con un margen libre inferior al margen de la orden recién abierta (no en el bloqueo). Entonces, ¿dónde está el 100%?

Ejemplo:

Moneda USDJPY, apalancamiento 1:100. Lote 0,1, el margen es del 100

Según la especificación, el margen cubierto es de 50000, lo que significa que el 50%

Para abrir una posición de bloqueo, debe haber 100 fondos más en la cuenta. De lo contrario, se producirá un error ... no recuerdo el número, en general, no hay fondos suficientes.

Y sólo después de abrir una posición se corregirá el margen real según los valores indicados en la especificación.

Pero, si sólo hay 50 fondos disponibles en la cuenta, entonces puede abrir dos veces por 0,05

 
Alekseu Fedotov:

Si he entendido bien, entonces

https://www.mql5.com/ru/docs/basis/oop/templates

Ya conozco el uso de la tecnología de plantillas. Este método permite devolver el tipo de una variable, pero no convierte el tipo de una variable en otra. Puede que no sea posible.

 
Alexey Viktorov:

Ejemplo:

Moneda USDJPY, apalancamiento 1:100. Lote 0,1, el margen es del 100

Según el pliego de condiciones, el margen cubierto es de 50.000, es decir, el 50%.

Para abrir una posición de bloqueo, debe haber 100 fondos más en la cuenta. De lo contrario, habrá un error ... no recuerdo el número, en general, no hay fondos suficientes.

Y sólo después de abrir una posición, el margen real se corregirá según los valores de la especificación.

Pero, si sólo hay 50 fondos libres en la cuenta, entonces puede abrir dos veces por 0,05

Vale, puede ser el caso. Deberíamos comprobarlo.

Debemos comprobar el precio de un pedido. Entonces, ¿qué pasa con la función MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin?

El precio de apertura de la orden está en el parámetro. ¿Cómo funciona para los cruces? ¿Cómo funciona el sistema de tarifas cruzadas? ¿Sabe MT5 cómo predecir los precios?

Документация по MQL5: Торговые функции / OrderCalcMargin
Документация по MQL5: Торговые функции / OrderCalcMargin
  • www.mql5.com
Вычисляет размер маржи, необходимой для указанного типа ордера на текущем счете и при текущем рыночном окружении без учета текущих отложенных ордеров и открытых позиций. Позволяет оценить размер маржи для планируемой торговой операции. Значение возвращается в валюте счета. [out]  Переменная, в которую...
 
He descargado el indicador freeNumFractals para mt5, pero los fractales no se actualizan en el gráfico.

FreeNumFractals

 
Pavel5554:
Ya he reinstalado mt5 y este indicador, pero no tiene ningún efecto.

FreeNumFractals

¿Cuál es el indicador? No tengo ningún efecto. ¿Dónde está el enlace?

 
leonerd:

Muy bien, tal vez sea eso. Tendremos que comprobarlo.

En el precio del pedido. ¿Qué pasa con la función MQL5https://www.mql5.com/ru/docs/trading/ordercalcmargin?

El precio de apertura de la orden está en el parámetro. ¿Cómo funciona para los cruces? ¿Cómo funciona el sistema de tarifas cruzadas? ¿Puede MT5 predecir los precios?

Hay que leer todo con atención. Cita de la documentación:

El cálculo se realiza como si no hubiera órdenes pendientes ni posiciones abiertas en la cuenta corriente. El valor del margen depende de muchos factores y puede cambiar cuando cambia el entorno del mercado.

El cálculo se realiza... es decir, el valor obtenido será sin tener en cuenta la posición abierta, y sólo entonces se corregirá según la especificación si se abre la posición contraria. A esto me refería.

Valor del margen... para las órdenes pendientes se calcula "desde el fondo" y puede no corresponder al valor real.

 
Sergey Voytsekhovsky:

¡¡¡Grandes consejos y una gran ciencia para el futuro!!! Fue incluso un poco más allá de eso. A continuación se muestra el resultado.

Así fue:

Así se hizo, ¡¡¡la eficacia del enfoque es evidente!!! Gracias.

Gracias a Sergei y Alexey por el indicador estocástico de colores. Eres muy bueno. ¡Respeto!

 
¿Cómo puedo hacer que mi indicador aparezca en la ventana principal en lugar del gráfico principal (mi indicador está construido en forma de barras).

Para que los datos de mi indicador sustituyan a los del gráfico.

Y que todos los indicadores estándar del terminal del cliente pueden ser lanzados en este nuevo gráfico. Y para que estos indicadores funcionen sobre los datos de mi indicador, no sobre las barras de precios.
 

Hay una pregunta así. Por lo tanto, hay un bucle

     for(...........)              
     {if(.........){ что-то делаем}else
      if(.........){ break}else{ break;}} 

La primeraruptura no se encuentra en los primeros paréntesis del bucle, sino en los paréntesis anidados dentro de ellos. La segundaruptura está aún más profunda anidada en los paréntesis interiores. Según entendí en este casoromper simplemente no funciona, a decir verdad no entendí si funcionaba o no pero el programa se colgaba y hacía iteraciones innecesarias. Para salir de un bucle con muchas condiciones he añadido una bandera de salida al bucle. Tal vez me pareció que no funciona, ¿quién piensa en esta cuestión?

Razón de la queja: