Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int OrdensOB[]; // Armazenar as ordens abertas para conferencia
- int MagicNumber = 123456;
- int OnInit(){
- int x;
- EventSetTimer(1); // Timer para conferência das ordens a cada segundo
- // Usar Ask/Bid na ordem em OB não importa, e aqui foi só pra demonstrar
- // Abrindo uma ordem para testar
- int ordem = OrderSend(Symbol(), OP_BUY, 1, Ask, 0, 0, 0, "BO exp:60", MagicNumber);
- if(ordem > 0){
- x=ArraySize(OrdensOB);
- ArrayResize(OrdensOB, x + 1 );
- OrdensOB[x] = ordem;
- }
- // ....
- }
- void OnTimer(){
- int i, n;
- for(i=0; i<ArraySize(OrdensOB[i]); i++){
- for(n=0; n<OrdersHistoryTotal(); n++){
- // Só vai forçar o fechamento da ordem se estiver em modo teste, usando a função
- // IsTesting()
- if( OrderSelect(i, SELECT_BY_POS, MODE_TRADES) && IsTesting() ){
- Print("Ordem aberta encontrada : ", OrderTicket());
- if( TimeCurrent() >= OrderOpenTime() + TempoExpiracao ){
- Print("Ordem chegou ao tempo, hora de forçar fechamento no backtest");
- if( OrderClose(OrderTicket(), OrderLots(), OrderOpenPrice(), 0) ){
- Print("Ordem fechada... agora falta removê-la do array");
- }
- }else{
- Print("Ordem ainda não chegou ao tempo");
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment