Discusión sobre el artículo "Implementación de Take Profit en forma de órdenes limitadas sin cambiar el código fuente del EA" - página 5

 
Esto es todo lo que siempre quise, MUCHAS gracias. Os quiero.
 

Hola querido

Trato de encontrar la manera de definir el Take Profit especial para mi experto que empecé a escribirlo. su texto fue útil para mí, pero yo no podía corregir la mía, así que, si es posible que usted, por favor me guíe. mi plano TP es: cuando se establece el ejemplo de compra en el gráfico y se va en el camino correcto y el beneficio, el valor de TP se mueven hasta el punto de beneficio máximo, así que cuando la tendencia a su vez cambiar la recta a la baja manera, el valor de TP colocado en el 70 por ciento del beneficio máximo. por debajo de cod es el código que escribo. por favor, hágamelo saber m errores y me ayude a corregirlos.

double BuyPipsProfit,SellPipsProfit,BuyProfitLevel,SellProfitLevel;
double TP_Buy=0;
double TP_Sell=0;

for(int i=OrdersTotal()-1;i>=0;i--)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
{
BuyPipsProfit= Ask-(double)OrderOpenPrice() ;
SellPipsProfit= (double)OrderOpenPrice()-Bid;
BuyProfitLevel= BuyPipsProfit*.7;
SellProfitLevel= SellPipsProfit*.7;
TP_Buy = (50*Punto)+ ((OrderOpenPrice()+ BuyProfitLevel)*Punto);
TP_Sell= (50*Punto)+ ((OrderOpenPrice()+ SellProfitLevel)*Punto);
}
}

 

Hola,

No funciona.

LimitTakeProfit.mqh error:

unresolved static variable 'CLimitTakeProfit::i_Magic' LimitTakeProfit.mqh 29 43
unresolved static variable 'CLimitTakeProfit::b_OnlyOneSymbol' LimitTakeProfit.mqh 32 52
unresolved static variable 'CLimitTakeProfit::i_TakeProfit' LimitTakeProfit.mqh 507 14
unresolved static variable 'CLimitTakeProfit::d_TakeProfit' LimitTakeProfit.mqh 512 17
unresolved static variable 'CLimitTakeProfit::c_Symbol' LimitTakeProfit.mqh 160 9

Gracias.

Archivos adjuntos:
 

@MetaQuotes, ¡gracias por este código!

He encontrado un error en esta función y dar mi humilde solución:

bool CLimitTakeProfit::SetTakeProfits(ulong position_ticket, double new_tp=0)


Si tenemos 2 TP y el primero ha sido cerrado, el segundo será CERRADO ERRÓNEAMENTE aquí:

if(CheckLimitOrder(tp_request))
  {
   if(tp_request.volume>=0)
     {
      closed+=tp_request.volume;
      closed_perc=closed/position_volume*100;
     }
   else
     {
      fix_closed_per-=tp_request.volume/(position_volume-tp_request.volume)*100;
     }
   continue;
  }


¿Por qué? Porque al buscar el primer TP en esta función:

CheckOrderInHistory(PositionGetInteger(POSITION_IDENTIFIER),request.comment, request.type, request.volume);

Cambiamos la posición seleccionada, por lo que, en el bucle:

   for(int i=0;i<total;i++)
     {

      tp_request.comment="TP"+IntegerToString(i)+"_"+IntegerToString(position_ticket);
      
      if(i_TakeProfit.At(i)<tp_int && d_TakeProfit.At(i)>0)

Usamos la posición incorrecta para evaluar el segundo TP aquí:

switch((ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE))


¡Causando que el segundo TP se cierre! Mi solución es:

for(int i=0;i<total;i++)
   {
      /****** NUEVA LÍNEA **************/
      PositionSelectByTicket(position_ticket);
      /****** NUEVA LÍNEA **************/

      tp_request.comment="TP"+IntegerToString(i)+"_"+IntegerToString(position_ticket);
      
      if(i_TakeProfit.At(i)<tp_int && d_TakeProfit.At(i)>0)


¡Gracias de nuevo!

 
Roco Deodato Giaculi #: Hola, No funciona. LimitTakeProfit.mqh error: Gracias.

¿Utilizó el código original o añadió el código a su asesor?

 

Nunca he conseguido que funcione.

 

Buenas tardes @Dmitriy Gizlyk, ¿Podrías ayudarme con este problema? He probado muchas cosas pero no consigo salir de este error. Si me puedes ayudar, gracias.


 
¿Pueden ayudarme? No sé programar, etc. Sólo quería que mi beneficio se trazara como un orden limitado (si pudiera describir cómo utilizar su archivo le estaría muy agradecido).
 
FalconGhost2 : ¿Pueden ayudarme? No sé cómo programar, etc. Sólo quería que mi beneficio se trazara como una orden limitada (si pudiera describirme cómo utilizar su archivo se lo agradecería mucho).

Hola, no puede utilizar este archivo si utiliza el comercio manual. Es para uso en EA.

Saludos, Dmitry.

 
Dmitriy Gizlyk #: Hola, No puede utilizar este archivo si utiliza el comercio manual. Es para uso de EA. Saludos cordiales, Dmitry.

¡Gracias por responder Dmitriy! ¿Sabes si hay otra manera de hacer trading manual?