Deseos para MT5 - página 55

 
-Alexey-:

Si hablamos de versatilidad, es deseable poder cambiar el volumen de una posición no sólo en incrementos, sino también en lotes. Es decir, aproximadamente así:

1) Abrir una posición con un lote determinado: PositionOpen(...,lote,....); /esta función es inequívoca y no cambia, se queda como está ahora/

2) Cambiar el volumen de la posición, por ejemplo, aumentar:

a) PositionIncrease(..., 2, mode_lot_change,....) - aumento del volumen de la posición en 2 lotes; /para el caso en que sea conveniente cambiarlo en lotes.

b) PositionIncrease(..., 2, mode_multiply_change,....) - aumenta el volumen de la posición en 2 veces; /para el caso en que sea conveniente cambiarla en múltiplos/


CTrade dispone de un conjunto de métodos, según la ayuda:"Operaciones con posiciones". Ahí están: apertura de posiciones, cierre de posiciones, cambio de SL o TP de una posición. Le sugerimos que lo complete. Invertir una posición significa ejecutar una operación opuesta con un volumen mayor que el actual, de modo que se invierte la dirección de la posición abierta. Reducir una posición es reducir el volumen de la posición abierta. Aumentar es lo contrario.

Я за то чтобы в библиотеку включались универсальные вещи, которые устраивают всех (чтобы потом не пришлось переопределять функционал стандартных классов).

Sí, este es un punto muy importante.
El PositionOpen() es un método universal de la clase CTrade, que permite no sólo abrir una posición, sino también aumentar (disminuir) el volumen de la existente o invertirla. Sólo hay que llamarlo con el tipo de orden apropiado en la dirección de la posición a añadir, en la dirección opuesta para recortar la posición con el volumen requerido, o duplicar el volumen en la dirección opuesta para voltearlo.
 
Valmars:
PositionOpen() es un método universal de la clase CTrade que permite no sólo abrir una posición, sino también aumentar (disminuir) su volumen o invertirla. Sólo hay que llamarlo con el tipo de orden apropiado en la dirección de la posición a añadir, en la dirección opuesta para cortar la posición con el volumen requerido o duplicar el volumen en la dirección opuesta para voltearlo.

Me refiero a lo mismo. Tal vez debería haber una funcionalidad especializada para recortar o voltear, pero obviamente no en CTrade (si estamos hablando de una biblioteca estándar).

Si la pregunta fuera sobre cualquiera de las clases de "expertos", personalmente no me importaría.

 

1. Por favor, devuélvanme el apalancamiento de 1:500 (preferiblemente 1:200). Llevo un par de semanas esperando un regalo así de su parte.

2. Tengo otra pregunta: si mi cuenta es de 1:500 y el apalancamiento máximo disponible en el probador es de 1:100, ¿qué parámetros considerará el probador?

¡REALMENTE LO QUIERO!

 
Valmars:
PositionOpen() es un método universal de la clase CTrade que permite no sólo abrir una posición, sino también aumentar (disminuir) el tamaño de la existente o invertirla. Sólo hay que llamarlo con el tipo de orden apropiado en la dirección de la posición a añadir, en la dirección opuesta para recortar el volumen requerido, o duplicar el volumen en la dirección opuesta para voltear.

Veamos qué hay que hacer para invertir una posición, por ejemplo para que su volumen se duplique.

1) Determine si hay un puesto vacante.

2) Determine la dirección de la posición de apertura.

3) Determinar el volumen de la posición abierta.

4) Determine cuánto dinero se necesita para abrir la posición contraria con un volumen 3 veces mayor (o cierre primero la misma posición y luego abra una posición doble).

5) Determinar si se dispone de los fondos necesarios.

6) Determinar el múltiplo mínimo de un lote.

7) Determina el volumen más cercano en múltiplo al necesario.

8) Compruebe de nuevo si hay fondos suficientes.

9) Eliminar SL y TP de la posición existente utilizando PositionModify.

10) Ajustar el deslizamiento permitido.

11) Abra la posición opuesta.

12) Determine el precio de apertura resultante de la inversión.

13) Establezca los nuevos SL y TP usando PositionModify.


Mientras escribía esto, cometí algunos errores.


Se trata de una pieza de código que decenas de miles de personas tienen que volver a escribir con errores. ¿Por qué, cuando puedes hacerlo una vez en una biblioteca?

Este es un código que no todo el mundo sería capaz de oritizar correctamente como un nuevo método de una clase derivada. ¿Por qué, si los desarrolladores pueden hacerlo correctamente?

Es un inconveniente. ¿Por qué escribir un montón de código cuando se puede utilizar una función preparada PositionReverse y una cadena?

Me refiero a lo mismo. Es posible que tenga que escribir una funcionalidad especializada de recorte o volteo, pero obviamente no en CTrade (si hablamos de la biblioteca estándar).

¿Y dónde, que debería estar disponible para un usuario medio y estar presente en la ayuda? ¿Por qué no en CTrade (suponiendo que estos métodos no den problemas)?

Al fin y al cabo, se puede abrir una operación sin PositionOpen. ¿Por qué han introducido este método en Ctrade? Creo que esta envoltura se introdujo por comodidad, porque tiene en cuenta muchas cosas que no son obvias para un usuario principiante.

 
-Alexey-:

Veamos qué hay que hacer para invertir una posición, por ejemplo para que su volumen se duplique.

1) Determine si hay una posición abierta.


3) Determinar el volumen de la posición abierta.

4) Determine cuánto dinero se necesita para abrir la posición contraria con un volumen 3 veces mayor (o cierre primero la misma posición y luego abra una posición doble).

5) Determinar si se dispone de los fondos necesarios.

6) Determinar el múltiplo mínimo de un lote.

7) Determina el volumen más cercano en múltiplo al necesario.

8) Compruebe de nuevo si hay fondos suficientes.

9) Eliminar SL y TP de la posición existente utilizando PositionModify.

10) Ajustar el deslizamiento permitido.

11) Abra la posición opuesta.

12) Determine el precio de apertura resultante de la inversión.

13) Establezca los nuevos SL y TP usando PositionModify.


Al escribir esto, he cometido algunos errores.


Se trata de una pieza de código que decenas de miles de personas tienen que volver a escribir con errores. ¿Por qué, cuando puedes hacerlo una vez en una biblioteca?

Este es un código que no todo el mundo puede oritizar correctamente en forma de un nuevo método de una clase derivada. ¿Por qué, si los desarrolladores pueden hacerlo correctamente?

Es un inconveniente. ¿Por qué escribir un montón de código cuando se puede utilizar una función PositionReverse ya hecha y una sola línea?

¿Y dónde, para que esté disponible para un usuario común y esté presente en la ayuda? ¿Por qué no en STrade (suponiendo que estos métodos no causen problemas)?

Al fin y al cabo, se puede abrir una operación sin PositionOpen. ¿Por qué han introducido este método en Ctrade? Creo que esta envoltura se introdujo por comodidad, porque tiene en cuenta muchas cosas que no son obvias para un usuario principiante.

Tienes razón en muchas cosas, para abrir una posición con PositionOpen(...), debes especificar también el volumen, el precio de apertura, el SL y el TP y comprobar que todos estos parámetros son válidos, si no quieres obtener un error al abrir la posición.
Lo mismo ocurre con el vuelco. Pues bien, se especifica "Invertir una posición para tal o cual símbolo" y ya está, y lo tienes invertido en 100 puntos de 4 dígitos
mayor o menor. Puede que esto no le haga gracia.
Pero examinemos sus argumentos uno por uno.
1) Determine si hay un puesto vacante.

Creo que todavía habrá que hacerlo antes de decidir si se invierte una posición.

2) Determinar la dirección de una posición abierta.

Creo que esto también es obligatorio si decides dar la vuelta. En cualquier caso, es elemental, una vez elegido el puesto.

3) Determinar el volumen de la posición abierta.

Similar al punto 2.

4) Determina cuánto dinero necesitas para abrir la posición contraria con 3 veces el volumen (o cerrar primero la misma y luego abrir una doble).

Compruebe la suficiencia de fondos antes de enviar una solicitud.

5) Determinar si se dispone de los fondos necesarios.

Se debe combinar con el punto 4.

6) Determinar el múltiplo mínimo del lote

Por supuesto.

7) Determina el volumen que más se acerca a la multiplicidad necesaria.

Están abriendo posiciones, ¿no es así? Por lo tanto, ya tiene esta funcionalidad. Todo lo que tienes que hacer es llamar a la función.

8) Compruebe de nuevo si hay fondos suficientes.

El método estándar.

9) Eliminar SL y TP de la posición existente utilizando PositionModify.

No lo necesitas.

10) Establezca un deslizamiento admisible.

Claro que sí. La entrada más pequeña es más precisa, pero con más requotes.

11) Abra una posición opuesta.

Aquí es donde aplicamos PositionOpen.

12) Determine el precio de apertura resultante de la inversión.

También es bastante elemental. Sólo hay que volver a seleccionar la posición.

13) Establezca los nuevos SL y TP usando PositionModify.

Si no lo has calculado y fijado inmediatamente, puedes hacerlo ahora.

Si se ha equivocado en alguna parte o se ha olvidado de algo, los desarrolladores se han encargado de ello, primero se comprueba la validez de los parámetros de la solicitud mediante la función OrderCheck(m_request,m_check_result) y, en caso de error, la solicitud no se enviará al servidor con el correspondiente mensaje en el diario.

¿Pero cómo quieres que el método estándar decida todo por ti: la desviación, el precio, el volumen y los stops?

 
¿Cómo quieres que el método estándar lo maneje todo: la desviación, el precio de reversión, el volumen y los stops? <br / translate="no">.
El método estándar con desviación hace exactamente lo mismo (decide para mí) - se especifica dentro de la clase por defecto. Es decir, es un parámetro opcional, y no está presente en PositionOpen. Si es necesario, se cambia utilizando un método especial, STrade.deviation...., pero - cuando sea necesario, en lugar de especificar siempre. Esto es conveniente. Lo mismo ocurre con algunos otros parámetros establecidos por defecto en CTrade.

El precio de la tirada, por supuesto, lo fija la estrategia o el usuario. Sin embargo, una vez que se ha modificado el precio, hay que comprobarlo porque hay deslizamientos y diferenciales. Por eso, el stop o el beneficio calculado de antemano (y especificado en la función) puede resultar diferente. Mencioné el precio sólo por eso, es decir, si se especifican nuevos valores de stop y profit en la función de rollover (si - entonces la comprobación y el ajuste no son necesarios). El algoritmo es sencillo, se resuelve automáticamente con la función de prórroga, sin que yo intervenga. Esto es conveniente.

Si existe una posición abierta, como es el caso de la propuesta, surgen acciones que pueden llevarse a cabo sin controles. Por ejemplo:

- No es necesario especificar la compra o la venta al llamar a la función en cuestión, porque el programa puede detectar automáticamente la dirección de la operación para la inversión, para el corto y para el aumento. No hay nada que compruebe los errores. Aquí tenemos: menos un parámetro en la llamada a la función (sin compra/venta). ¿Es conveniente? Sí, el método estándar me lo ha solucionado.

- el volumen de la posición es conocido, lo que significa que, de acuerdo con la solicitud del usuario, la función Pivot o Reducir/Ampliar puede calcular el volumen necesario de la transacción para el modo especificado (en lotes, o en incrementos) en relación con el volumen ya conocido, utilizando el múltiplo más cercano del lote mínimo. Son acciones típicas y se pueden programar una vez. Se trata principalmente de lo que estoy hablando.

En cuanto a la comprobación de la corrección, tiene razón, parece que debe hacerlo usted mismo.

Bueno, has especificado "invertir la posición de tal o cual carácter" y ya está, y se invierte en 100 puntos de 4 dígitos

Así es como se hace en PositionOpen. Pero, es posible especificar parámetros opcionales, si se desea, para que esto no ocurra. Esto es cuando se llama: stop y take (parámetros opcionales de la función), por separado antes de llamar al método de desviación. Es decir, la protección contra tal situación en CTrade 1) está presente y 2) está convenientemente diseñada. El usuario no tiene que pensar en cómo crear toda esta estructura. De eso se trata. Lo único es que no hay comprobación de propagación.
 

No sé si se mencionó o no, pero me gustaría que el MetaEditor pudiera colapsar algunas partes del código... Por ejemplo si de paréntesis a paréntesis, para, funciones, etc.

Es decir, tal y como se implementa en los entornos de programación, como Visual Studio. Porque a veces uno se cansa de recorrer toda la pantalla en busca de algo...

De esta manera, puedes dejar abiertos sólo los fragmentos de código con los que estás trabajando, y el resto del código queda colapsado...

Gracias... :-)

 
St0nE:

No sé si se ha mencionado o no, pero me gustaría que el MetaEditor pudiera colapsar algunas secciones de código...

se dijo. puedes darle un signo más aquí https://www.mql5.com/ru/forum/2931
 
Gracias... Se registró... :-)
 

Miré el tema deMetaQuotes Software firmó un acuerdo de asociación a largo plazo con International Business Times y recordé lo que he querido sugerir durante mucho tiempo:

1. Añadir un elemento "Marcar como leído" al menú de contenido de la pestaña "Noticias", con la posibilidad de aplicarlo a varias noticias seleccionadas a la vez (ahora hay que abrir cada noticia por separado). Esto permitirá omitir las noticias "no interesantes" y estar al tanto de las nuevas.

2 Mostrar el número de noticias nuevas no leídas en una pestaña como se hace en MetaEditor:Marcadores

Puede que no sea la tarea principal, pero añadirá comodidad a su trabajo...