Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen de largo. En ninguna parte sin ti - 6. - página 190

 
zfs:
También necesito CharToStr, pero no copia. Gracias.

No lo hagas. Debemos estar hablando de cosas diferentes.
 

Por favor, aconséjenme cómo mejorar la función de cierre de órdenes si el patrimonio supera el saldo en un determinado porcentaje.

Por ejemplo, si en este momento la equidad es igual al 115%, tengo que cerrar algunos lotes (puede haber varias órdenes con diferentes lotes) para que la equidad sea igual al 110% del balance.

 
Skydiver:

Por favor, aconséjenme cómo mejorar la función de cierre de órdenes si el patrimonio supera el saldo en un determinado porcentaje.

Por ejemplo, si en este momento la equidad es igual al 115%, tengo que cerrar algunos lotes (puede haber varias órdenes con diferentes lotes) para que la equidad sea igual al 110% del balance.


Hacer varias funciones con diferentes implementaciones de algoritmos. Compara los tiempos de funcionamiento. De los que funcionen correctamente, se elige el que funcione durante menos tiempo, que es el "mejor". Así que, nada complicado. ;)))))))
 

Es posible establecer niveles en el indicador y personalizar los estilos mediante las funciones SetLevelValue y SetLevelStyle, pero no sé cómo llegar a su descripción. ¿Tal vez alguien se ha encontrado y sabe?

 
Desead:

Es posible establecer niveles en el indicador y personalizar estilos mediante las funciones SetLevelValue y SetLevelStyle, pero no sé cómo llegar a su descripción. ¿Tal vez alguien se ha encontrado y sabe?


Si se trata de documentación, resalte la palabra en el MetEditor y pulse F1. O bien, en línea, por ejemplo
https://docs.mql4.com/ru/customind/SetLevelStyle
 

Buenas tardes. ¿podríais indicar si un pedido ya está en el lugar correcto?

Si no, entonces ponga

 

¡Buenas tardes!

¿Puede decirme algo? Cuando una orden de mercado está abierta, su precio de apertura puede modificarse mediante una función:

bool OrderModify( int ticket, double price, double stoploss, double takeprofit, datetime expiration, color arrow_color=CLR_NONE) 

Pregunta: ¿por qué lo necesitamos? ¿Para que la función OrderProfit() diera resultados diferentes después en comparación con el precio de apertura inicial? ¿O esta posibilidad está pensada para otra cosa?

(Por cierto, ¿OrdenProfit() calcula exactamente a partir del precio de apertura o la información se solicita al servidor donde se calcula de otra manera? La documentación no dice nada al respecto).

 
sannin:

Buenas tardes. ¿podríais indicar si un pedido ya está en el lugar correcto?

Si no, entonces ponga

En el lugar correcto - ¿en qué lugar?
 
yan720:

¡Buenas tardes!

¿Puede decirme algo? Cuando una orden de mercado está abierta, su precio de apertura puede modificarse mediante una función:

Pregunta: ¿por qué lo necesitamos? ¿Para que la función OrderProfit() diera resultados diferentes después en comparación con el precio de apertura inicial? ¿O esta posibilidad está pensada para otra cosa?

(Por cierto, ¿OrdenProfit() calcula exactamente a partir del precio de apertura o la información se solicita al servidor donde se calcula de otra manera? La documentación no dice nada al respecto).

Sólo podemos modificar el precio de una orden pendiente. El precio abierto de la posición de mercado no puede modificarse. Sería extraño comprar pan a 20, llegar a casa y cambiar el precio de compra a 5 rublos, y luego en la cartera ver la llegada de los 15 rublos de diferencia... Fantástico... ;)

Puede modificar el precio de parada de una posición de mercado: Stop Loss y Take Profit.

OrderProfit() devuelve el beneficio/pérdida de la posición en la moneda del depósito. Por supuesto, se calcula a partir del precio de apertura.

 
artmedia70:

Sólo se puede modificar el precio de la orden pendiente. El precio de apertura de una posición de mercado ya no se puede modificar. Sería extraño comprar pan a 20, llegar a casa y cambiar el precio de compra a 5 rublos, y luego ver en la cartera la llegada de 15 rublos de diferencia... Fantástico... ;)

Puede modificar el precio de stop de una posición de mercado: Stop Loss y Take Profit.


Gracias por la respuesta. Yo mismo me sorprendí de que se planteara esta cuestión. Aunque, tal vez, he entendido mal lo que he visto y lo que ha provocado la pregunta.

Ahora estoy mirando el código de otras personas para ver de qué manera (diferente a la mía y quizás más eficiente) se implementan ciertos algoritmos. En este momento estoy viendo el notorio Asesor Experto Ilan 1.6 (adjunto). Puedo ver que fue ensamblado a partir de varias piezas y luego reconstruido. Pero la línea 337 contiene una función de trailing stop definida por el usuario (aunque la bandera de su uso se borra forzosamente al principio). Esta función se llama en la línea 52.

Mi pregunta surge porque el trailing stop mencionado anteriormente modifica las órdenes abiertas (y puede haber varias) por un stop loss manteniendo su TakeProfit inicial pero fijando el mismo valor (AveragePrice, que se calcula en las líneas 173 y 178) a esas órdenes como precio abierto (segundo parámetro de la función OrderModify).

O bien, ¿este parámetro (precio de apertura) es simplemente ignorado por el servidor cuando se modifica una orden abierta y el precio puede establecerse en cualquier valor?

Archivos adjuntos:
ilan1.6.mq4  20 kb