![MQL5 - Lenguaje de estrategias comerciales para el terminal de cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Está perdiendo oportunidades comerciales:
- Aplicaciones de trading gratuitas
- 8 000+ señales para copiar
- Noticias económicas para analizar los mercados financieros
Registro
Entrada
Usted acepta la política del sitio web y las condiciones de uso
Si no tiene cuenta de usuario, regístrese
Si tienes un terminal lleno de cientos de variables glob sin usar, por ejemplo, entonces sí - el mamparo terminará tristemente, si no, funciona bastante rápido, si se escribe correctamente
Si, por ejemplo, tu terminal está llena de cientos de variables glob sin usar, entonces sí - el bulkheading será triste, si no, funciona bastante rápido si lo escribes correctamente
No me importa, pero es mejor encontrar formas más fáciles si es posible. ¿O es que no buscamos caminos fáciles?
No me importa, pero es mejor encontrar formas más fáciles si es posible. ¿O es que no buscamos un camino fácil?
Todavía no hemos resuelto el problema, aunque es una función necesaria y mucha gente la utiliza y no sabe que el beneficio de las órdenes cerradas no se considera correctamente.
Por eso una solución simple: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); no funcionará y todo el mundo sigue jodiendo con las órdenes del historial en sus códigos.
No hay una solución competente ni siquiera en toda la red - dice "google". Entonces, ¿resulta que todo el mundo utiliza la solución estándar incorrecta, o la correcta pero sólo el último orden?
Todavía no hemos resuelto el problema, aunque es una función necesaria y mucha gente la utiliza y no sabe que el beneficio de las órdenes cerradas no se considera correctamente.
Por eso una solución simple: LastProfit+=OrderProfit()+OrderCommission()+OrderSwap(); no funcionará y todo el mundo sigue jodiendo con las órdenes del historial en sus códigos.
No hay una solución competente ni siquiera en toda la red - dice "google". Entonces, ¿resulta que todo el mundo utiliza la solución estándar incorrecta, o la correcta pero sólo el último orden?
Te aconsejamos, no entendiste....
Bien, entonces desglosémoslo: hay una hora de cierre de los pedidos, hay un ticket o número de pedidos que coincide con la hora de cierre. ¿Cómo combinamos y calculamos el beneficio de estos pedidos?
Parece sencillo, pero seguimos sin entenderlo.
Cuenta correctamente, pero sólo si se cierran de 1 a 3 órdenes, si son más de 3, entonces se obtiene el beneficio con un valor poco claro.
¿Qué más podemos añadir aquí?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
Cuenta correctamente, pero sólo si se cierran de 1 a 3 órdenes, si son más de 3, entonces se obtiene el beneficio con un valor poco claro.
¿Qué más podemos añadir aquí?
// Возвращает суммарный профит в валюте депозита серии закрытых ордеров |
//+----------------------------------------------------------------------------+
double LastProfitCL(int op=-1){ //"op" позиция (-1 любая позиция)
double LastProfit=0;
datetime t=0;
for(i=OrdersHistoryTotal()-1;i>=0;i--)
if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY) && (OrderType()==OP_BUY || OrderType()==OP_SELL) && OrderSymbol()==Symbol() && OrderMagicNumber()==magic) {
if (OrderSymbol()!=Symbol()||OrderMagicNumber()!=magic) continue;
if (t<OrderCloseTime()) {t=OrderCloseTime();}
if ((op<0||OrderType()==op) && t==OrderCloseTime()) {LastProfit+=OrderProfit()+OrderCommission()+OrderSwap();}
}
return(LastProfit);
}
¿Alguna vez has intentado preguntarte "por qué y qué está escrito en mi código"?
Ya te he dicho tres veces más arriba qué hacer y cómo hacerlo.
No podrás moverte del punto muerto, de lo contrario no podrás hacerlo.
Bien, entonces desglosémoslo: hay una hora de cierre de los pedidos, hay un ticket o número de pedidos que coincide con la hora de cierre. ¿Cómo combinamos y calculamos el beneficio de estos pedidos?
Parece que es fácil, pero sigo sin entenderlo.