Discusión sobre el artículo "Biblioteca para el desarrollo rápido y sencillo de programas para MetaTrader (Parte XXIV): Clase comercial principal - corrección automática de parámetros erróneos" - página 2

 

Hola, estas dos subrutinas se ejecutan de manera diferente, donde "Statistical Time Period Buy Loss" puede obtener el resultado deseado, mientras que "Statistical Time Period Sell Loss" resulta en 0, ¿por qué es esto?

//Statistical período de tiempo de la historia de la pérdida de un solo (se ha cerrado solo) número, lasttime para el inicio de tiempo

doble estadísticas período de tiempo comprar pérdida(int 魔号,cadena buyOrSell, cadena as_8,datetime lasttime)

{

double Volumen=0; double compraVenta=0; double compraVenta=0; double compraVenta=0

double buyOrSell=0; int totalOrSell=0; int buyOrSell=0

int TotalOrders=0; int buyOrSell=0; datetime lasttime

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic Number )// sólo cuenta los pares de divisas correspondientes actuales

{

if (buyOrSell == "buy")

{

if (OrderType() == OP_BUY )

{

if (OrderCloseTime()>lasttime)

{

if (OrderProfit()<0)

{

TotalOrdenes=TotalOrdenes+1;

Pérdida=Pérdida+OrderProfit();

Volumen=Volumen+LotesOrden();

}

}

}

}


}

}}

if (as_8 == "número total de órdenes") return (número total de órdenes);

if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida)

if (as_8 == "Volumen") return (Volumen); return (0.0); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Volumen") return (Volumen)


return (0.0);

}

double Estadística Sesión Venta Pérdida(int 魔号,cadena buyOrSell, cadena as_8,datetime lasttime)

{

double Volumen=0;

double Sell Loss = 0; int Total Orders = 0; datetime lasttime

int TotalOrders=0; int buyOrSell=0; datetime lasttime

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic Number )// sólo cuenta los pares de divisas correspondientes actuales

{

if (buyOrSell == "sell")

{

if (OrderType() == OP_SELL )

{

if (OrderCloseTime()>lasttime)

{

if (OrderProfit()<0)

{

TotalOrdenes=TotalOrdenes+1;

Pérdida=Pérdida+OrderProfit();

Volumen=Volumen+LotesOrden();

}

}

}

}

}

}}

if (as_8 == "número total de órdenes") return (número total de órdenes);

if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida)

if (as_8 == "Volumen") return (Volumen); return (0.0); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Volumen") return (Volumen)


return (0.0);

}

 

Hola, estas dos subrutinas se ejecutan de manera diferente, donde "Statistical Time Period Buy Loss" puede obtener el resultado deseado, mientras que "Statistical Time Period Sell Loss" resulta en 0, ¿por qué es esto?

//Statistical período de tiempo de la historia de la pérdida de un solo (se ha cerrado solo) número, lasttime para el inicio de tiempo

doble estadísticas período de tiempo comprar pérdida(int 魔号,cadena buyOrSell, cadena as_8,datetime lasttime)

{

double Volumen=0; double compraVenta=0; double compraVenta=0; double compraVenta=0

double buyOrSell=0; int totalOrSell=0; int buyOrSell=0

int TotalOrders=0; int buyOrSell=0; datetime lasttime

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic Number )// sólo cuenta los pares de divisas correspondientes actuales

{

if (buyOrSell == "buy")

{

if (OrderType() == OP_BUY )

{

if (OrderCloseTime()>lasttime)

{

if (OrderProfit()<0)

{

TotalOrdenes=TotalOrdenes+1;

Pérdida=Pérdida+OrderProfit();

Volumen=Volumen+LotesOrden();

}

}

}

}


}

}}

if (as_8 == "número total de órdenes") return (número total de órdenes);

if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida)

if (as_8 == "Volumen") return (Volumen); return (0.0); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Volumen") return (Volumen)


return (0.0);

}

double Estadística Sesión Venta Pérdida(int 魔号,cadena buyOrSell, cadena as_8,datetime lasttime)

{

double Volumen=0;

double Sell Loss = 0; int Total Orders = 0; datetime lasttime

int TotalOrders=0; int buyOrSell=0; datetime lasttime

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic Number )// sólo cuenta los pares de divisas correspondientes actuales

{

if (buyOrSell == "sell")

{

if (OrderType() == OP_SELL )

{

if (OrderCloseTime()>lasttime)

{

if (OrderProfit()<0)

{

TotalOrdenes=TotalOrdenes+1;

Pérdida=Pérdida+OrderProfit();

Volumen=Volumen+LotesOrden();

}

}

}

}

}

}}

if (as_8 == "número total de órdenes") return (número total de órdenes);

if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida)

if (as_8 == "Volumen") return (Volumen); return (0.0); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Volumen") return (Volumen)


return (0.0);

}

 
Artyom Trishkin:
OK

Hola, estas dos subrutinas se ejecutan de manera diferente, donde "Statistical Time Period Buy Loss" puede obtener el resultado deseado, mientras que "Statistical Time Period Sell Loss" resulta en 0, ¿por qué es esto?

//Período de tiempo estadístico historia de la pérdida de único (se ha cerrado único) número, lasttime para el inicio de tiempo

doble estadísticas período de tiempo comprar pérdida(int 魔号,cadena buyOrSell, cadena as_8,datetime lasttime)

{

double Volumen=0; double compraVenta=0; double compraVenta=0; double compraVenta=0

double buyOrSell=0; int totalOrSell=0; int buyOrSell=0

int TotalOrders=0; int buyOrSell=0; datetime lasttime

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic Number )// sólo cuenta los pares de divisas correspondientes actuales

{

if (buyOrSell == "buy")

{

if (OrderType() == OP_BUY )

{

if (OrderCloseTime()>lasttime)

{

if (OrderProfit()<0)

{

TotalOrdenes=TotalOrdenes+1;

Pérdida=Pérdida+OrderProfit();

Volumen=Volumen+LotesOrden();

}

}

}

}


}

}}

if (as_8 == "número total de órdenes") return (número total de órdenes);

if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida)

if (as_8 == "Volumen") return (Volumen); return (0.0); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Volumen") return (Volumen)


return (0.0);

}

double Estadística Sesión Venta Pérdida(int 魔号,cadena buyOrSell, cadena as_8,datetime lasttime)

{

double Volumen=0;

double Sell Loss = 0; int Total Orders = 0; datetime lasttime

int TotalOrders=0; int buyOrSell=0; datetime lasttime

for (int i=OrdersHistoryTotal()-1; i>=0; i--)

{

if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)==true)

{

if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic Number )// sólo cuenta los pares de divisas correspondientes actuales

{

if (buyOrSell == "sell")

{

if (OrderType() == OP_SELL )

{

if (OrderCloseTime()>lasttime)

{

if (OrderProfit()<0)

{

TotalOrdenes=TotalOrdenes+1;

Pérdida=Pérdida+OrderProfit();

Volumen=Volumen+LotesOrden();

}

}

}

}

}

}}

if (as_8 == "número total de órdenes") return (número total de órdenes);

if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Pérdida") return (Pérdida)

if (as_8 == "Volumen") return (Volumen); return (0.0); if (as_8 == "Pérdida") return (Pérdida); if (as_8 == "Volumen") return (Volumen)


return (0.0);

}

 

Este es un hilo de discusión para el artículo, y no para resolver problemas no relacionados con la biblioteca descrita en el artículo.

Para insertar el código en el mensaje, es necesario utilizar la combinación Alt + S o este botón.


 
Hola, ¿es posible que este programa no admita la búsqueda de órdenes de venta negociadas históricas?
 
hsyhsy863 :
Hola, ¿el programa no admite la búsqueda de órdenes de venta históricas?

E incluso mucho más.

 
Hola, me he dado cuenta de que al cargar un indicador personalizado y luego borrarlo los botones no funcionan y no consigo que funcione. ¿A qué se debe? ¿Cómo puedo solucionarlo?
 
hsyhsy863 :
Hola, me he dado cuenta de que al cargar un indicador personalizado y luego borrarlo los botones no funcionan y no consigo que funcione. ¿A qué se debe? ¿Cómo puedo solucionarlo?

Durante el uso - ¿qué?

¿Qué teclas no funcionan?
 
Me gustaría enviarte un indicador personalizado, lo cargas y lo borras, pruébalo y verás.
Archivos adjuntos:
jh720-03-3.ex4  214 kb
 
hsyhsy863:
Me gustaría enviarte un indicador personalizado, lo cargas y lo borras, pruébalo y lo entenderás.
Hola, ¿has encontrado el problema que he mencionado?