Como codificar? - página 335

 
mladen:
Esta parte

if(newbar==Time[0])return(0);

else newbar=Time[0];

int ticket, total;

if(Bars<100)

{

Impressão ("barras com menos de 100");

retornar(0);

}

if(TakeProfit<10)

{

Imprimir ("TakeProfit menos de 10");

retornar(0); // verificar TakeProfit

}

Está impedindo a ea de fechar pedidos em determinado momento se não for o primeiro tique de uma nova barra e se o lucro não for > 10 pips

Oi mladen, removi essa parte da codificação e ainda minha ea não fecha no momento desejado.

Você tem alguma idéia de qual poderia ser a razão? Obrigado.

Atenciosamente

Ryan

 
tkuan77:
Oi mladen, eu removi essa parte da codificação e ainda minha ea não fecha na hora desejada.

Você tem alguma idéia de qual poderia ser a razão? Obrigado.

Cumprimentos

Ryan

Da maneira como está escrito, só fechará pedidos, e somente se o horário do corretor for exatamente 07:00:00:00

 
mladen:
Da maneira como está escrito, só fechará pedidos, e somente se o horário do corretor for exatamente 07:00:00:00

Oi mladen, há alguma outra forma de contornar isto, pois parece não estar funcionando aqui.

Cumprimentos

Ryan

 
tkuan77:
Oi mladen, há alguma outra forma de contornar isto, pois parece não estar funcionando aqui.

Cumprimentos

Ryan

Tente usar

Se (TimeCurrent()>= StringToTime("07:00:00"))

em vez de

 
mladen:
Tente usar

Se (TimeCurrent()>= StringToTime("07:00:00"))

em vez de

Oi mladen, ainda não está funcionando. Estou me perguntando se poderia ser devido a esta linha aqui... ou o OrderTotal ou o OrderSelect pode estar causando o problema?

para (int i=OrdersTotal()-1; i>=0; i--)

{

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

Cumprimentos

Ryan

 
tkuan77:
Oi mladen, ainda não está funcionando. Estou me perguntando se poderia ser devido a esta linha aqui... ou o OrderTotal ou o OrderSelect pode estar causando o problema?

para (int i=OrdensTotal()-1; i>=0; i--)

{

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

Cumprimentos

Ryan

Não. Essas linhas estão corretas

 
mladen:
Não. Essas linhas estão corretas

Oi mladen, porque eu defini minha ea para ter apenas 1 comércio em qualquer momento e notei que OrdensTotal definiu minha int eu conto para negativo 0 por 1-1, i>=0; i-- fará minha i=-1

por isso estava se perguntando se este poderia ser o erro.

senão se(total > 1) // para fechar ordens com base no tempo... ainda não resolvido.

{

se (Hora()==7 && Minuto()==30)

{

para (int i=OrdensTotal()-1; i>=0; i--)

{

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

if (!UseCurrSymbol || OrderSymbol()==Symbol())

{

se (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

se (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);

}

}

}

}//

}

retorno(0);

}

 
tkuan77:
Oi mladen, porque eu defini minha ea para ter apenas 1 comércio em qualquer momento e notei que OrdensTotal definiu minha int eu conto para negativo 0 por 1-1, i>=0; i-- fará minha i=-1

por isso, estava se perguntando se este poderia ser o erro.

senão se(total > 1) // para fechar ordens com base no tempo... ainda não resolvido.

{

se (Hora()==7 && Minuto()==30)

{

para (int i=OrdensTotal()-1; i>=0; i--)

{

se (OrderSelect(i, SELECT_BY_POS, MODE_TRADES))

{

se (!UseCurrSymbol || OrderSymbol()==Symbol())

{

se (OrderType()==OP_BUY)

{

pBid=MarketInfo(OrderSymbol(),MODE_BID);

OrderClose(OrderTicket(),OrderLots(),pBid,1,Blue);

}

se (OrderType()==OP_SELL)

{

pAsk=MarketInfo(OrderSymbol(),MODE_ASK);

OrderClose(OrderTicket(),OrderLots(),pAsk,1,Red);

}

}

}

}//

}

retorno(0);

}

Favor substituir isto : f (Hour()==7 && Minute()==30) pela linha que lhe enviei e tente então

OrdensTotal() retornará 1 se houver uma ordem aberta. Ao usar OrderSelect(), esse 0 (OrderTotal()-1) irá selecionar a ordem correta. Se OrderTotal() retorna 0, então não há ordens abertas no pool de ordens ativo.

 
mladen:
Favor substituir isto : f (Hour()==7 && Minute()==30) pela linha que lhe enviei e tente entãoOrdersTotal() retornará 1 se houver uma ordem aberta. Ao usar OrderSelect(), esse 0 (OrderTotal()-1) irá selecionar a ordem correta. Se OrderTotal() retorna 0, então não há ordens abertas no pool de ordens ativo.

Oi mladen, lamento dizer que acabei de testá-lo de novo e ainda não está funcionando.

Existe outra maneira de fechar meu negócio com base em um tempo específico?

Cumprimentos

Ryan

 
mladen:
Favor substituir isto : f (Hour()==7 && Minute()==30) pela linha que lhe enviei e tente então OrderTotal() retornará 1 se houver uma ordem aberta. Ao usar OrderSelect(), esse 0 (OrderTotal()-1) irá selecionar a ordem correta. Se OrderTotal() retorna 0, então não há ordens abertas no pool de ordens ativo.

Oi mladen, eu consegui resolver o problema. parece que este revestimento estava causando o problema... o código está funcionando depois que eu o removi.

senão se(total > 1)

obrigado por sua assistência...

Cumprimentos

Ryan

Razão: