Deixe-me dizer por que quero usar o LastOpenPrice(OP_BUY) e o LastOpenPrice(OP_SELL) porque quero usá-los em algumas condições como
se ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0,0090 // por essa razão eu preciso manter o último pedido aberto para compra e o último pedido aberto para venda, então eu preciso separar o último pedido um para compra e o outro para venda.
Você pode fazer isso... funcionará... experimente.
// 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 você pode ver nas imagens
Comecei a testar a EA de 01/03/2011 a 11/04/2011
na primeira hora para 01/03/2011
a posição foi aberta , mas ninguém das condições acima disponíveis . que me deixou realmente louco
// eu quero que o pedido seja fechado antes do último pedido fechado o que comprar ou vender.
4- função para obter e manter o preço de fechamento anterior antes do último fechamento do pedido whatover compra ou venda. obrigado
Preço de fechamento? preço de fechamento do bar antes do bar onde o último pedido fechou ? ou o preço de fechamento do pedido da Compra ou Venda que fechou antes do último que fechou ?
o preço de fechamento do pedido da Compra ou Venda que fechou antes do último que fechou ?
Experimente esta . . .
Para obter o último preço de fechamento do último pedido que foi uma Compra ou uma Venda e corresponder ao Símbolo e número mágico.faça este último preço de fechamento(1)
Para conseguir o anterior a isso, . . . 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 NÃO TRABALHARÁ com seus números mágicos como mostrado em seu código acima . . .
caras,
muito obrigado,
Deixe-me dizer por que quero usar o LastOpenPrice(OP_BUY) e o LastOpenPrice(OP_SELL) porque quero usá-los em algumas condições como
se ( LastOpenPrice(OP_BUY) -LastOpenPrice(OP_SELL)) > 0,0090 // por essa razão eu preciso manter o último pedido aberto para compra e o último pedido aberto para venda, então eu preciso separar o último pedido um para compra e o outro para venda.
a explicação da função n.4 é clara?
a função número 4:
// eu quero que o pedido seja fechado antes do último pedido fechado o que comprar ou vender.
4- função para obter e manter o preço de fechamento anterior antes do último fechamento da ordem o que comprar ou vender. obrigado
caras,
Realmente não funciona
Como você pode ver nas imagens
Comecei a testar a EA de 01/03/2011 a 11/04/2011
na primeira hora para 01/03/2011
a posição foi aberta , mas ninguém das condições acima disponíveis . que me deixou realmente louco
a explicação da função n.4 é clara?
a função número 4:
// eu quero que o pedido seja fechado antes do último pedido fechado o que comprar ou vender.
4- função para obter e manter o preço de fechamento anterior antes do último fechamento do pedido whatover compra ou venda. obrigado
a segunda opção:
o preço de fechamento do pedido da Compra ou Venda que fechou antes do último que fechou ?
a segunda opção:
o preço de fechamento do pedido da Compra ou Venda que fechou antes do último que fechou ?
Experimente esta . . .
Para obter o último preço de fechamento do último pedido que foi uma Compra ou uma Venda e corresponder ao Símbolo e número mágico.faça este último preço de fechamento(1)
Para conseguir o anterior a isso, . . . LastClosePrice(2 )
NOTA: este código NÃO TRABALHARÁ com seus números mágicos como mostrado em seu código acima . . .
Gente.
Há alguém que possa usar o programa Teamviewer, então acessaremos o togethor e verificaremos qual é o verdadeiro problema.
caras,
Realmente não funciona
Como você pode ver nas imagens
Comecei a testar a EA de 01/03/2011 a 11/04/2011
na primeira hora para 01/03/2011
a posição foi aberta , mas ninguém das condições acima disponíveis . que me deixou realmente louco
Não é uma loucura. É "razoável" que uma ordem seja aberta porque:
Se a função acima retorna ZERO, então qualquer cenário como o abaixo pode ocorrer
Sugiro que você coloque uma lógica "mestre", acima e acima disto. Se a função LastOpenPrice(...) retorna zero.... qual é o seu plano de jogo?