dejame decirte porque quiero usar LastOpenPrice(OP_BUY) y LastOpenPrice(OP_SELL) porque quiero usarlos en algunas condiciones como
if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // por esa razón necesito mantener la última orden abierta para la compra y la última orden abierta para la venta, así que necesito una última orden separada una para la compra y la otra para la venta.
// Used to keep global variablesexternint MagicNumberLong = 6658641; //Identifies long positionsexternint MagicNumberShort = 4167090; //Identifies short positionsdouble LastOpenPrice(int ordertype)
{
double OpenPrice;
datetime lastOpen;
for ( int pos = OrdersTotal()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS) // Only my orders w/
&& OrderMagicNumber() == MagicNumberLong || MagicNumberShort // my magic number // <------- what Magic Number do you use when you place a trade ? it must match ! !
&& OrderSymbol() == Symbol() // and my pair. // magic.number should be a Globally defined variable that has your Magic Numer
&& OrderType() == ordertype
&& OrderOpenTime() > lastOpen )
{
OpenPrice = OrderOpenPrice();
break;
}
return (OpenPrice); // <------- this returns the Order Open Price NOT the ticket
}
if ( ((iOpen("EURUSD",PERIOD_H1,0)-0.0030)>=MarketInfo("EURUSD",MODE_BID)) )
{ BUY("EURUSD",B_EURUSD_LS_0,B_EURUSD_TP_0,B_EURUSD_SL_0,B_EURUSD_TS_0,"if ( ( ((iOpen(EURUSD,PERIOD_H1,0)-0.00...") ;}
if ( ( (LastOpenPrice(OP_BUY)-0.0030)>MarketInfo("EURUSD",MODE_BID) ) )
{ SELL("EURUSD",S_EURUSD_LS_1,S_EURUSD_TP_1,S_EURUSD_SL_1,S_EURUSD_TS_1,"if ( ( (LastOpenPrice(OP_BUY)-0.0030)>=MarketInfo(" EURUSD",MODE_BID) ) )") ;}
if ( ( ((iOpen("EURUSD",PERIOD_H1,0)+0.0030)<=MarketInfo("EURUSD",MODE_BID)) ) )
{ SELL("EURUSD",S_EURUSD_LS_0,S_EURUSD_TP_0,S_EURUSD_SL_0,S_EURUSD_TS_0,"if ( ((iOpen(EURUSD,PERIOD_H1,0)+0.00...") ;}
if ( ( (LastOpenPrice(OP_SELL)+0.0030)<MarketInfo("EURUSD",MODE_BID) ) )
{ BUY("EURUSD",B_EURUSD_LS_1,B_EURUSD_TP_1,B_EURUSD_SL_1,B_EURUSD_TS_1,"if ( ( (LastOpenPrice(OP_SELL)+0.0030)<MarketInfo(" EURUSD",MODE_BID) )") ;}
Como se puede ver en las imágenes
Empecé a probar el EA desde el 01/03/2011 hasta el 11/04/2011
en la primera hora del 01/03/2011
la posición se abrió , pero nadie de las condiciones anteriores availble . que me dejó realmente loco
// quiero obtenerla orden cerrada antes de la última orden cerrada de comprao venta.
4. función para obtener y mantener el precio de cierre anterior a la última orden cerrada de compra o venta.
Precio de cierre ? precio de cierre de la barra anterior a la barra donde se cerró la última orden ? o el precio de cierre de la orden de compra o venta que se cerró antes de la última que se cerró ?
el precio de cierre de la orden de compra o venta que cerró antes de la última que cerró?
Pruebe esto...
Para obtener el último precio de cierre de la última orden que fue una Compra o una Venta y que coincidió con el Símbolo y el número mágico haga esto LastClosePrice(1)
Para obtener el anterior haga esto. . . LastClosePrice ( 2)
double LastClosePrice(int Order)
{
double ClosePrice;
for ( int pos = OrdersHistoryTotal()- 1 ; pos >= 0 ; pos--)
if ( OrderSelect (pos, SELECT_BY_POS, MODE_HISTORY) // Only my CLOSED orders
&& OrderMagicNumber() == magic.number // my magic number // <------- what Magic Number do you use when you place a trade ? it must match ! !
&& OrderSymbol() == Symbol() // and my pair. // magic.number should be a Globally defined variable that has your Magic Numer
&& OrderType() < OP_BUYLIMIT )
{
Order--;
if (Order == 0) // determines if we have found the Order we are interested in
{
ClosePrice = OrderCloseprice();
break;
}
}
return (ClosePrice); // <------- this returns the Order Open Price NOT the ticket
}
NOTA: este código NO FUNCIONARÁ con sus números mágicos como se muestra en su código anterior. . .
chicos,
Muchas gracias,
dejame decirte porque quiero usar LastOpenPrice(OP_BUY) y LastOpenPrice(OP_SELL) porque quiero usarlos en algunas condiciones como
if ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0.0090 // por esa razón necesito mantener la última orden abierta para la compra y la última orden abierta para la venta, así que necesito una última orden separada una para la compra y la otra para la venta.
¿está clara la explicación de la función n.4?
función número 4:
// quiero obtener la orden cerrada antes de la última orden cerrada de compra o venta.
4. función para obtener y mantener el precio de cierre anterior a la última orden cerrada de compra o venta.
chicos,
Realmente no funciona
Como se puede ver en las imágenes
Empecé a probar el EA desde el 01/03/2011 hasta el 11/04/2011
en la primera hora del 01/03/2011
la posición se abrió , pero nadie de las condiciones anteriores availble . que me dejó realmente loco
¿está clara la explicación de la función n.4?
función número 4:
// quiero obtener la orden cerrada antes de la última orden cerrada de compra o venta.
4. función para obtener y mantener el precio de cierre anterior a la última orden cerrada de compra o venta.
la segunda opción:
el precio de cierre de la orden de compra o venta que cerró antes de la última que cerró...
la segunda opción:
el precio de cierre de la orden de compra o venta que cerró antes de la última que cerró?
Pruebe esto...
Para obtener el último precio de cierre de la última orden que fue una Compra o una Venta y que coincidió con el Símbolo y el número mágico haga esto LastClosePrice(1)
Para obtener el anterior haga esto. . . LastClosePrice ( 2)
NOTA: este código NO FUNCIONARÁ con sus números mágicos como se muestra en su código anterior. . .
Chicos.
¿Hay alguien puede utilizar el programa teamviewer entonces vamos a acceder togethor y la comprobación de lo que es el verdadero problema.
chicos,
Realmente no funciona
Como se puede ver en las imágenes
Empecé a probar el EA desde el 01/03/2011 hasta el 11/04/2011
en la primera hora del 01/03/2011
la posición se abrió , pero nadie de las condiciones anteriores availble . que me dejó realmente loco
No es una locura. Es "razonable" que se abra una orden porque:
Si la función anterior devuelve CERO, entonces puede ocurrir cualquier escenario como el siguiente
Te sugiero que coloques una lógica "maestra", por encima de esto. Si la función LastOpenPrice(...) devuelve cero....¿cuál es su plan de juego?