[¡AVISO CERRADO!] Cualquier pregunta de novato, para no saturar el foro. Profesionales, no pasen. No puedo ir a ningún sitio sin ti. - página 360

 
Vitya >> :

Si te refieres al bloqueo, no entiendes ---- No insisto en ello, no sé cómo usarlo.

¿Cerrar una parte de las posiciones no rentables? ------ Creo que sí, pero aún no lo he probado.

Yo mismo no sé cómo utilizarlo.

https://www.mql5.com/ru/code/9185

 
costy_ >> :

Manualmente probador la respuesta sólo se puede encontrar allí (o en la demo) aquí es el enlace al simulador

https://www.mql5.com/ru/code/9185

Creo que la respuesta sólo puede encontrarse en las matemáticas o en la experiencia comercial real. Es una pena que no tenga ninguna de las dos cosas. Gracias por el enlace.

 
Vitya >> :

Creo que la respuesta sólo puede encontrarse en las matemáticas o en la experiencia comercial real. Creo que es una pena que no tenga ninguno de ellos. Gracias por el enlace.

Si no sabes nada de matemáticas pero no sabes comerciar, tienes que aprender y al final lo conseguirás.

Aconsejo empezar a operar manualmente con CCI(55) y MA(55) en M5 GBPJPY con el número de Fibonacci y dentro de ese número encontrar su periodo (hoy el mío es 67), ¡suerte!

Sí, casi se me olvida, la hora de negociación también es muy importante, concretamente la apertura de la sesión de negociación de la región cuya moneda es principal (y de América...).

 
¿Puede alguien comprobar si todo es correcto en este módulo?
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
// MOVE SL TO BE

if( Mode_Close_Part_Set_BE_1==true   &&   OrdersTotal()>0) {

      for(int cnt_BE=0; cnt_BE<OrdersTotal(); cnt_BE++) {
         OrderSelect( cnt_BE, SELECT_BY_POS);         // the next line will check for ONLY market trades, not entry orders
         Ticket = OrderTicket();

// BUY -----------------------------------------------------------------------------------------
         if(OrderType()==OP_BUY   &&   OrderSymbol()==Symbol()   &&   OrderStopLoss()<OrderOpenPrice()   &&   Ask>=(OrderOpenPrice()+ MathAbs(OrderOpenPrice()-OrderStopLoss())) ) {
                  double SL_Original_Buy   = OrderStopLoss();

                  bool AnsHalfModifySL_Buy = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Green);
                  Sleep( Slippage*3000);

                  if( AnsHalfModifySL_Buy==true) {
                     BreakEvenStatus_Buy   = true;
                     Alert ("SL Buy which was ", SL_Original_Buy, " set to BreakEven at ", OrderStopLoss(), " for ", Symbol());
                  }

                  if( Fun_Error(GetLastError())==1) {       // Обработка ошибок
                     continue;                             // Повторная попытка
                  }

                  return;                                // Выход из start()
         } // if(OrderType() == OP_BUY  &&  OrderSymbol()==Symbol() )
// EO BUY -----------------------------------------------------------------------------------------


// SELL -----------------------------------------------------------------------------------------
         if(OrderType()==OP_SELL  &&  OrderSymbol()==Symbol()   &&   OrderStopLoss()>OrderOpenPrice()   &&   Bid<=(OrderOpenPrice()-MathAbs(OrderStopLoss()-OrderOpenPrice())) ) {
                  double SL_Original_Sell   = OrderStopLoss();

                  bool AnsHalfModifySL_Sell = OrderModify(OrderTicket(),OrderOpenPrice(),OrderOpenPrice(),OrderTakeProfit(),0,Blue);
                  Sleep( Slippage*3000);

                  if( AnsHalfModifySL_Sell==true) {
                     BreakEvenStatus_Sell   = true;
                     Alert ("SL Sell which was ", SL_Original_Sell, " set to BreakEven at ", OrderStopLoss(), " for ", Symbol());
                  }

                  if( Fun_Error(GetLastError())==1) {       // Обработка ошибок
                     continue;                             // Повторная попытка
                  }

                  return;                                // Выход из start()
         } // if(OrderType() == OP_SELL  &&  OrderSymbol()==Symbol() )
// EO SELL -----------------------------------------------------------------------------------------

      } // for(cnt_BE=0; cnt_BE<OrdersTotal(); cnt_BE++)
}
// +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Lo pregunto porque después de cada llamada aparece el mensaje "Se ha producido un error 0", aunque todo parece funcionar correctamente (llegando al punto de equilibrio).





 
chief2000 писал(а) >>
¿Puede alguien comprobar si todo es correcto en este módulo?

Lo pregunto porque después de cada llamada aparece el siguiente mensaje: "Se ha producido un error 0", aunque todo parece funcionar correctamente (va al punto de equilibrio).

Lo más probable es que sea un intento de modificar un pedido a precios antiguos. Deberíamos comparar los parámetros del nuevo y del antiguo orden. Y debe modificarse sólo si es necesario.

 

El error 0 se produce cuando OrderModify no modifica realmente nada - cambia el precio al antiguo.

 

He aquí un ejemplo:




Se abrió una orden con SL=1,1596. Luego el SL cambió a 1,1570, y finalmente este error.

No puede pasar a la segunda ronda porque hay una condición:

... OrderStopLoss()>OrderOpenPrice() ...


- ¿Qué puede ser?





 
chief2000 писал(а) >>

He aquí un ejemplo:

Se abrió una orden con SL=1,1596. Luego el SL cambió a 1,1570, y finalmente este error.

No puede pasar a la segunda ronda porque hay una condición:

- ¿Qué puede ser?

Podría. Vuelve a comprobar las condiciones lógicas, pero sólo por la mañana.

Lo que está en la lógica es lo que permite hacer.

 
Vinin >> :

Tal vez. Vuelve a comprobar las condiciones lógicas, pero sólo por la mañana.

Lo que está incorporado en la lógica te permite hacerlo.

Lo comprobaré. >> Gracias.

 

Ayuda

int start()  {
//----
Alert(Minute(),Hour());
int Minuto( )
Devuelve el minuto actual (0,1,2,...59) de la última hora conocida del servidor al inicio del programa (este valor no cambia durante la ejecución del programa).

Nota: en las pruebas, se simula la última hora conocida del servidor.

Pero en el indicador, al hacer la prueba, no se simula la última hora conocida del servidor.

Razón de la queja: