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

 
Igor Makanu:

todo necesita ser arreglado.

Su código busca el primer pedido del historial de pedidos con el símbolo y el mago dados

a continuación, cuente el número de pedidos no rentables encontrados y multiplique a la potencia de 2 este número de pedidos

busca en el foro"funciones útiles de MMC" y haz algo así

- encontrar el billete de la última orden para nuestro símbolo y nuestro magik

- obtener OrderProfit() y OrderLots() de la entrada encontrada y multiplicar por su coeficiente de martingala, si es necesario

ZS: puede haber una solución lista

El problema es un poco diferente, tengo un lote flotante en cada apertura y necesito multiplicarlo por el coeficiente.
El lote de la primera rodilla por ejemplo 0,07, y el segundo puede ser 0,04, después de una pérdida el lote de la tercera rodilla 0,05 y aquí es este lote y necesita ser multiplicado por el coeficiente 4.
Mi función calcula un lote flotante, necesita ser multiplicado por LotSize() * 2,4,8,16 etc.
 
Denis Pershin:
La tarea es un poco diferente, tengo un lote flotante en cada apertura y necesito multiplicarlo por un coeficiente.
El lote de la primera rodilla por ejemplo 0,07, y el de la segunda puede ser 0,04, después de una pérdida el lote de la tercera rodilla es 0,05 y este lote debe ser multiplicado por el coeficiente 4.
Mi función calcula un lote flotante, necesita ser multiplicado por LotSize() * 2,4,8,16 etc.

tal

Si conoces el lote inicial, puedes utilizar la última orden perdedora para comprobar su lote y calcular el número de rodilla, y si la orden está en beneficio, vuelves a empezar con el lote inicial

aprende a encontrar la última orden cerrada con tu mago

Si el sistema de cálculo de lotes es muy complejo - la opción de un mago + el número de rodilla para los nuevos pedidos, también puede utilizar los comentarios, pero no es muy fiable, mejor utilizar varios magos


Su código sólo pasa por los pedidos - no ve nada, por eso le presté atención

 
Igor Makanu:

así

Si se conoce el lote inicial, se puede utilizar la última orden perdedora para comprobar su lote y calcular el número de rodilla, y si la orden está en beneficio, se empieza de nuevo con el lote inicial

aprende a encontrar la última orden cerrada con tu mago

Si el sistema de cálculo de lotes es bastante complejo - la opción de un mago + el número de una rodilla para los nuevos pedidos, también puede utilizar los comentarios, pero no de forma fiable, mejor utilizar varios magos


Su código sólo pasa por los pedidos - no ve nada, por eso me fijé en él

Esa es la dificultad: el lote inicial es desconocido y se calcula en base a un n% de los fondos propios.
No me gustaría utilizar el comentario.
Ahora el número de pérdidas sucesivas se calcula en el código y se considera correctamente pero no puedo decidir cómo mejorarlo con el coeficiente de multiplicación de 2,4,8,16.
 
Denis Pershin:
El código ahora cuenta el número de pérdidas consecutivas y cuenta correctamente, pero cómo hacerlo con un factor de multiplicación de 2,4,8,16 no lo puedo averiguar.

no es correcto

Pero si te conviene, entonces trata de arreglar tu código de esa manera.

int c=1;
....
c*=2; // 1,2,4,8....
 
Igor Makanu:

equivocado

pero si le conviene, intente corregir su código así

Llegará a la tercera multiplicación: 3*2=6, y ya necesita 8, y la cuarta multiplicación será 8, y necesita 16.

 

k = {1,2,4,8,16,......}

cn = k[c]

 
Vitaly Muzichenko:

Obtendrá en la tercera multiplicación: 3*2=6, y ya necesita 8, y en la cuarta multiplicación obtendrá 8, y necesita 16.


void OnStart()
{
   int c = 1;
   for(int i = 1; i <= 5; i++)
   {
      c *= 2;
      printf("i = %i, c = %i",i,c);
   }
}

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 1, c = 2

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 2, c = 4

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 3, c = 8

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 4, c = 16

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 5, c = 32

¿Dónde está el 6?

¿o qué es?

 
Igor Makanu:


2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 1, c = 2

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 2, c = 4

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 3, c = 8

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 4, c = 16

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 5, c = 32

¿Dónde está el 6?

¿o qué es?

Sí, lo entendí mal.

 
¿Piensa MQ añadir indicadores personalizados a la plataforma móvil?
 
Igor Makanu:


2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 1, c = 2

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 2, c = 4

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 3, c = 8

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 4, c = 16

2020.11.08 11:28:09.527 tst (EURUSD,H1) i = 5, c = 32

¿Dónde está el 6?

¿o qué se necesita?

Gracias, muy útil)

Razón de la queja: