Cerrar sólo las operaciones rentables, en el objetivo de beneficio - página 4

 
af1:

Ok Raptor, voy a tratar de hacer ese bucle, pero antes de hacer eso, ¿qué pasa si sólo cambio

De esto:
A esto:


¿Podría esto hacer el trabajo?

No, debes contar hacia abajo cuando cierres/borres órdenes.
 
RaptorUK:
No, debes hacer una cuenta regresiva al cerrar/borrar órdenes.


¡Hola Raptor!

He estado revisando el código y para ser sincero no veo mucha diferencia entre la línea de código sugerida en tu post:

for(PositionIndex = TotalNumberOfOrders - 1; PositionIndex >= 0 ; PositionIndex --)

y la línea de código del ea que estoy probando:

for(i=OrdersTotal()-1;i>=0;i--)

La única diferencia que he visto es que añades MODE_TRADES, y no has añadido sleep. ¿Es esto relevante?

¿Podría dar alguna guía de lo que debería cambiar en el código?

 
af1:


¡Hola Raptor!

He estado revisando el código y para ser sincero no veo mucha diferencia entre la línea de código sugerida en tu post:

y la línea de código del ea que estoy probando:

La única diferencia que he visto es que añades MODE_TRADES, y no has añadido sleep. ¿Es esto relevante?

¿Podría dar alguna guía de lo que debería cambiar en el código?

Lo siento, he visto esto. . .

for(int i=0;i<OrdersTotal();i++)
      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
         if(OrderType()==OP_SELL)  
         {
            OrdersSELL++;
            SellLots += OrderLots();
            double ThisTradeProfit=OrderProfit() + OrderCommission() + OrderSwap();
            if(ThisTradeProfit>0)
            BuyProfit += ThisTradeProfit;
         }

. . y tu post y asumí que era tu código de OrderClose() . . .

 
af1:


No he añadido los 2 bool externos, sólo he cambiado esto para cerrar "sólo órdenes de compra"

y cambiar esto para cerrar "sólo órdenes de venta"

Así que ahora tengo dos EA's. Uno para cerrar las compras, y otro para cerrar las ventas. Eso está bien para mí.


He probado en ambas cuentas, demo y real. En demo funciona bien, pero en la cuenta real, una vez que se alcanza el objetivo de ganancias, comenzará a cerrar posiciones, pero luego dejará de cerrar posiciones cuando las órdenes restantes caigan por debajo del objetivo de ganancias. Esto sucede si el precio está cambiando en el momento del cierre. Así que tiende a dejar abiertas las órdenes rentables, en lugar de cerrarlas todas (órdenes rentables).

He leído este post de RaptorUK https://www.mql5.com/en/forum/139654. Es algo así, pero no sé realmente cuál puede ser la mejor solución para este tema.



Acabo de notar esto - no sé si hará mucha diferencia, pero no está bien

for(int i=0;i<OrdersTotal();i++)

      {
         if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) continue;
         if(OrderType()==OP_SELL)  
         {
            OrdersSELL++;
            SellLots += OrderLots();
            double ThisTradeProfit=OrderProfit() + OrderCommission() + OrderSwap();
            if(ThisTradeProfit>0)
            BuyProfit += ThisTradeProfit;
         }
 
af1:


No añadí el bool 2 externo, sólo cambio esto para cerrar "sólo órdenes de compra"

y cambiar esto para cerrar "sólo órdenes de venta"

Así que ahora tengo dos EA's. Uno para las compras cercanas, y otro para las ventas cercanas. Eso está bien para mí.


He probado en ambas cuentas, demo y real. En demo funciona bien, pero en la cuenta real, una vez que se alcanza el objetivo de beneficios, comenzará a cerrar posiciones, pero luego dejará de cerrar posiciones cuando las órdenes restantes caigan por debajo del objetivo de beneficios. Esto sucede si el precio está cambiando en el momento del cierre. Así que tiende a dejar abiertas las órdenes rentables, en lugar de cerrarlas todas (órdenes rentables).

He leído este post de RaptorUK https://www.mql5.com/en/forum/139654. Es algo así, pero no sé realmente cuál puede ser la mejor solución para este tema.



Eso sugiere que hay errores al cerrar las operaciones, ¿qué dice en el registro?

¿Quizás tu deslizamiento a sólo 5 puntos es demasiado pequeño?

 
RaptorUK:

Lo siento, he visto esto. . .

. . y tu post y asumí que era tu código OrderClose() . . .

No hay problema.

GumRai:


Acabo de notar esto - no sé si hará mucha diferencia, pero no está bien

for(int i=0;i<OrdersTotal();i++)

En la demo no he visto ninguna diferencia, pero en la cuenta real el problema aparece cuando se cerraban las órdenes de venta "curiosamente", así que quizás esto podría solucionar el problema..

Déjame probar de nuevo con este cambio y te informo de los resultados.

GumRai:


Eso sugiere que hay errores al cerrar las operaciones, ¿qué dice en el registro?

¿Quizás tu deslizamiento a sólo 5 puntos es demasiado pequeño?

No hay errores en el registro.

Tal vez un mayor deslizamiento podría ayudar. Lo probaré.

 

Hola Amigos

¿Alguien tiene un EA para MT5 para cerrar todas las operaciones en el beneficio alcanzado.

 
BobyGill:

Hola Amigos

¿Alguien tiene un EA para MT5 que cierre todas las operaciones cuando se alcanzan los beneficios?

¿Por qué has traído un tema de 6 años de edad en la sección MT4 para preguntar sobre MT5?

 
Chicos...
Solo me preguntaba...
¿Es posible utilizar una misma lógica, pero el que hacen que es diferente es sólo Cuando la transacción total es golpeado digamos 200 transacción entonces se activará el beneficio de cierre.
Razón de la queja: