//+------------------------------------------------------------------+ //| 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.
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.
Es una función de arrastre de migración para fines de formación.
Se trata de una función migratoria de arrastre con fines de formación.
Insuficiente para migrar. Sólo en el contexto del código en cuestión.
Migratorio - cuando el 90% del código es prestado.
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Usted acepta la política del sitio web y las condiciones de uso
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