Asesores Expertos: TrailingTakeProfit

 

TrailingTakeProfit:

Este Asesor Experto (EA) sin trading está diseñado para un trailing simple de las órdenes take profit de las posiciones abiertas.


Autor: Scriptor

 
//+------------------------------------------------------------------+
//| Modifica la posición seleccionada en el ticket ||
//+------------------------------------------------------------------+
bool PositionModifyByTicket(const string symbol_name,const ulong magic_number,const ulong ticket,const double sl,const double tp)
  {
//--- comprobación detenida
   if(IsStopped())
      return(false);
//--- limpio
   ZeroMemory(g_request);
   ZeroMemory(g_result);
//--- solicitud de configuración
   g_request.action  =TRADE_ACTION_SLTP;
   g_request.position=ticket;
   g_request.symbol  =symbol_name;
   g_request.magic   =magic_number;
   g_request.sl      =sl;
   g_request.tp      =tp;
//--- acción y devuelve el resultado
   return(OrderSend(g_request,g_result));
  }

Superfluo.

 
//+------------------------------------------------------------------+
//|| Función final|
//+------------------------------------------------------------------+
void Trailing(void)
  {
   int   total=PositionsTotal();
   for(int i=total; i>=0; i--)
     {
      ulong ticket=PositionGetTicket(i);
      if(ticket==0) continue;
      string symbol_name=PositionGetString(POSITION_SYMBOL);
      ulong  magic_number=(ulong)PositionGetInteger(POSITION_MAGIC);
      ENUM_POSITION_TYPE type=(ENUM_POSITION_TYPE)PositionGetInteger(POSITION_TYPE);
      if(InpPositionType>WRONG_VALUE && type!=(ENUM_POSITION_TYPE)InpPositionType) continue;

Es muy costoso (sobre todo en cadena) crear variables dedicadas antes de todas las comprobaciones de continuación.


Imagine una simple optimización para 100.000 pasadas de 10.000.000 ticks. Entonces OnTick será llamado un TRILLÓN de veces. Cualquier acción extra llamada un trillón de veces tomará segundos/minutos/horas extra. Valora tu tiempo y el de los demás.

 
fxsaber:

Es muy costoso (especialmente en cadenas) crear variables dedicadas antes de todas las comprobaciones de continuación.


Imagine una simple optimización para 100.000 pasadas de 10.000.000 ticks. Entonces OnTick será llamado un TRILLÓN de veces. Cualquier acción extra llamada un trillón de veces tomará segundos/minutos/horas extra. Valore su tiempo y el de los demás.

Esto no es un EA de trading. ¿Por qué optimizarlo? Es sólo un arrastre. Y una extraña en eso.
 
Artyom Trishkin:
Esto no es un EA de trading. ¿Por qué optimizarlo? Es sólo un arrastre. Y una extraña en eso.

Es una función de arrastre de migración para fines de formación.

 
fxsaber:

Se trata de una función migratoria de arrastre con fines de formación.

No es suficiente para migrar. Sólo en el contexto de este código.
 
Artyom Trishkin:
Insuficiente para migrar. Sólo en el contexto del código en cuestión.

Migratorio - cuando el 90% del código es prestado.