Hola a todos, tengo el inconveniente que necesito calcular la distancia entre las dos ultimas operaciones abiertas, y logro hacerlo para las operaciones en corto, sin embargo para las operaciones en largo no me lo hace. Le he dado vueltas al cálculo y no encuentro el error, me pueden ayudar por favor?
Este es el código:
En específico lo que necesito calcular es el "ndb" que es la distancia entre las últimas operaciones abiertas. Sé que algo estoy haciendo mal, por eso pido su ayuda.
Espero puedan ayudarme por favor.
Saludos.
Quizas esto te ayude:
void OnTick() { //--- Print( DIFERENCIA(0)); //para Compras Print( DIFERENCIA(1)); //para ventas } //+------------------------------------------------------------------+ double DIFERENCIA(int typoOrden) { double resuladoDiferencia=0; int ticketUltima=0; int ticketPenultima=0; double precioUltima=0; double precioPenultima=0; datetime timeUltimaEntrada=0; datetime timePenultimaEntrada=0; //Ciclo para encontar la ultima for(int i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue; if(OrderType()==typoOrden && OrderSymbol()==Symbol() && OrderMagicNumber()== ElNumeroMagicodelaEstrategia) { if(OrderOpenTime()>timeUltimaEntrada) { timeUltimaEntrada=OrderOpenTime(); ticketUltima=OrderTicket(); precioUltima=OrderOpenPrice(); } } } //Ciclo para encontar la penultima for(int i=0; i<OrdersTotal(); i++) { if(!OrderSelect(i,SELECT_BY_POS,MODE_TRADES))continue; if(OrderType()==typoOrden && OrderSymbol()==Symbol() && OrderMagicNumber()== ElNumeroMagicodelaEstrategia && OrderTicket()!=ticketUltima) { if(OrderOpenTime()>timePenultimaEntrada) { timePenultimaEntrada=OrderOpenTime(); ticketPenultima=OrderTicket(); precioPenultima=OrderOpenPrice(); } } } if(precioUltima!=0 && precioPenultima!=0) { resuladoDiferencia=MathMax(precioUltima,precioPenultima)-MathMin(precioUltima,precioPenultima); // resultado en precio, } else resuladoDiferencia=0; // cero es igual a que solo hay una orden activa, o que no hay ninguna return resuladoDiferencia; } //+------------------------------------------------------------------+
Espero que te de alguna idea y ayude a encontrar la solucion.
Saludos!!!
Quizas esto te ayude:
Espero que te de alguna idea y ayude a encontrar la solucion.
Saludos!!!
Muchas gracias!
Lo voy a revisar.
Saludos
Listo!
Me ayudaste mucho, me dio nuevas ideas y encontré dónde tenía el error, muchísimas gracias!!!
- 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
Hola a todos, tengo el inconveniente que necesito calcular la distancia entre las dos ultimas operaciones abiertas, y logro hacerlo para las operaciones en corto, sin embargo para las operaciones en largo no me lo hace. Le he dado vueltas al cálculo y no encuentro el error, me pueden ayudar por favor?
Este es el código:
En específico lo que necesito calcular es el "ndb" que es la distancia entre las últimas operaciones abiertas. Sé que algo estoy haciendo mal, por eso pido su ayuda.
Espero puedan ayudarme por favor.
Saludos.