Opa, basta ler a lista no modo FIFO! Primeiro entrar , primeiro a sair.
for(int i = OrdersTotal()-1; i >= 0 ; i--)
Rogerio Giannetti Torres #:
Muito obrigado pelo retorno!!!
Eu estou usando esse modelo que você sugeriu:
void DeletaOrdens()
{
for(int i = OrdersTotal() -1 ; i >= 0 ; i--)
{
ulong ticket = OrderGetTicket(i);
ulong magic = OrderGetInteger(ORDER_MAGIC);
string symbol = OrderGetString(ORDER_SYMBOL);
long cicloAtual = StringToInteger(OrderGetString(ORDER_COMMENT));
if(symbol == _Symbol && magic == magic_number && cicloAtual == ciclo)
{
trade.OrderDelete(ticket);
}
}
}
O problema é que nesse modelo, no meu caso aparece assim:
OrdersTotal() = 40
for(int i = 40 -1; i >= 0 ; i--) i = 39 for(int i = 40 -1; i >= 0 ; i--) i = 38 for(int i = 40 -1; i >= 0 ; i--) i = 37 for(int i = 40 -1; i >= 0 ; i--) i = 36 for(int i = 40 -1; i >= 0 ; i--) i = 35 for(int i = 40 -1; i >= 0 ; i--) i = 34 ...
Eu preciso fazer o contrário:
for(int i = 0; i < 40 ; i++) i = 0
for(int i = 0; i < 40 ; i++) i = 1
for(int i = 0; i < 40 ; i++) i = 2
for(int i = 0; i < 40 ; i++) i = 3
for(int i = 0; i < 40 ; i++) i = 4
...
for(int i = 0; i < 40 ; i++) i = 39
O problema é que ele chega na metade e para de exibir o ticket. Essa lógica está errada?
Agradeço qualquer ajuda!!!
Você pediu do mais antigo para (menor Id) para o mais novo(maior ID) ==> FIFO. Pois ID é abreviação de identificador e não de indice.
total = OrdersTotal();
for ( i = 0; i < total; i++)
{
}
Obrigado novamente Rogerio!
Quando eu faço dessa forma chega na metade e o número de i fica igual ao número de total de ordens, a partir daí ele se perde e para de trazer o número do ticket.
2023.02.06 14:52:53.161 Robo_VTIS_V1.15 (EURUSD,H1) 15 Ticket: 1589125811 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 25
2023.02.06 14:52:53.609 Robo_VTIS_V1.15 (EURUSD,H1) 16 Ticket: 1589125819 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 24
2023.02.06 14:52:54.037 Robo_VTIS_V1.15 (EURUSD,H1) 17 Ticket: 1589125826 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 23
2023.02.06 14:52:54.313 Robo_VTIS_V1.15 (EURUSD,H1) 18 Ticket: 1589125839 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 22
2023.02.06 14:52:54.573 Robo_VTIS_V1.15 (EURUSD,H1) 19 Ticket: 1589125847 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 21
2023.02.06 14:52:54.916 Robo_VTIS_V1.15 (EURUSD,H1) 20 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 14:52:54.916 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 14:52:54.916 Robo_VTIS_V1.15 (EURUSD,H1) 21 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
Acho que eu terei que fazer um array e ordenar as ordens para poder deletar da forma que eu preciso.
Vlw pela ajuda!
Ei Eduardo,
você não viu que as duas primeiras linhas estão diferentes do seu código! Presta atenção nas duas primeiras linhas.
total = OrdersTotal(); for ( i = 0; i < total; i++)
Ei Eduardo,
você não viu que as duas primeiras linhas estão diferentes do seu código! Presta atenção nas duas primeiras linhas.
Olá Rogerio,
O resultado do código que eu coloquei foi com a linha que você colocou.
void DeletaOrdens()
{
int total = OrdersTotal();
for(int i = 0 ; i < total ; i++)
{
ulong ticket = OrderGetTicket(i);
ulong magic = OrderGetInteger(ORDER_MAGIC);
string symbol = OrderGetString(ORDER_SYMBOL);
long cicloAtual = StringToInteger(OrderGetString(ORDER_COMMENT));
Print(i," Ticket: ",ticket," Magic: ",magic," Symbol: ",symbol," Ciclo: ",cicloAtual," Total Ordens: ",OrdersTotal() );
if(symbol == _Symbol && magic == magic_number && cicloAtual == ciclo)
{
trade.OrderDelete(ticket);
}
}
cicloEmAndamento = false;
}
Resultado:
2023.02.06 19:33:13.532 Robo_VTIS_V1.15 (EURUSD,H1) 0 Ticket: 1589309023 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 40
2023.02.06 19:33:13.784 Robo_VTIS_V1.15 (EURUSD,H1) 1 Ticket: 1589309036 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 39
2023.02.06 19:33:14.039 Robo_VTIS_V1.15 (EURUSD,H1) 2 Ticket: 1589309039 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 38
2023.02.06 19:33:14.292 Robo_VTIS_V1.15 (EURUSD,H1) 3 Ticket: 1589309045 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 37
2023.02.06 19:33:14.545 Robo_VTIS_V1.15 (EURUSD,H1) 4 Ticket: 1589309057 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 36
2023.02.06 19:33:14.802 Robo_VTIS_V1.15 (EURUSD,H1) 5 Ticket: 1589309068 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 35
2023.02.06 19:33:15.058 Robo_VTIS_V1.15 (EURUSD,H1) 6 Ticket: 1589309072 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 34
2023.02.06 19:33:15.397 Robo_VTIS_V1.15 (EURUSD,H1) 7 Ticket: 1589309077 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 33
2023.02.06 19:33:15.651 Robo_VTIS_V1.15 (EURUSD,H1) 8 Ticket: 1589309080 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 32
2023.02.06 19:33:15.909 Robo_VTIS_V1.15 (EURUSD,H1) 9 Ticket: 1589309085 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 31
2023.02.06 19:33:16.163 Robo_VTIS_V1.15 (EURUSD,H1) 10 Ticket: 1589309090 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 30
2023.02.06 19:33:16.417 Robo_VTIS_V1.15 (EURUSD,H1) 11 Ticket: 1589309092 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 29
2023.02.06 19:33:16.674 Robo_VTIS_V1.15 (EURUSD,H1) 12 Ticket: 1589309095 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 28
2023.02.06 19:33:16.926 Robo_VTIS_V1.15 (EURUSD,H1) 13 Ticket: 1589309100 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 27
2023.02.06 19:33:17.358 Robo_VTIS_V1.15 (EURUSD,H1) 14 Ticket: 1589309114 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 26
2023.02.06 19:33:17.614 Robo_VTIS_V1.15 (EURUSD,H1) 15 Ticket: 1589309127 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 25
2023.02.06 19:33:17.961 Robo_VTIS_V1.15 (EURUSD,H1) 16 Ticket: 1589309129 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 24
2023.02.06 19:33:18.214 Robo_VTIS_V1.15 (EURUSD,H1) 17 Ticket: 1589309137 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 23
2023.02.06 19:33:18.469 Robo_VTIS_V1.15 (EURUSD,H1) 18 Ticket: 1589309150 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 22
2023.02.06 19:33:18.723 Robo_VTIS_V1.15 (EURUSD,H1) 19 Ticket: 1589309162 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 21
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 20 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 21 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 22 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 23 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 24 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 25 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 26 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 27 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 28 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 29 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 30 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 31 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 32 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 33 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 34 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 35 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 36 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 37 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 38 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 39 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
Porra que bagulho doido.
O MT5 bugou ( tá rodando beta? ) ou tem outro robô ou função no EA deletando as 20 últimas ordens
Olá Rogerio,
O resultado do código que eu coloquei foi com a linha que você colocou.
void DeletaOrdens()
{
int total = OrdersTotal();
for(int i = 0 ; i < total ; i++)
{
ulong ticket = OrderGetTicket(i);
ulong magic = OrderGetInteger(ORDER_MAGIC);
string symbol = OrderGetString(ORDER_SYMBOL);
long cicloAtual = StringToInteger(OrderGetString(ORDER_COMMENT));
Print(i," Ticket: ",ticket," Magic: ",magic," Symbol: ",symbol," Ciclo: ",cicloAtual," Total Ordens: ",OrdersTotal() );
if(symbol == _Symbol && magic == magic_number && cicloAtual == ciclo)
{
trade.OrderDelete(ticket);
}
}
cicloEmAndamento = false;
}
Resultado:
2023.02.06 19:33:13.532 Robo_VTIS_V1.15 (EURUSD,H1) 0 Ticket: 1589309023 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 40
2023.02.06 19:33:13.784 Robo_VTIS_V1.15 (EURUSD,H1) 1 Ticket: 1589309036 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 39
2023.02.06 19:33:14.039 Robo_VTIS_V1.15 (EURUSD,H1) 2 Ticket: 1589309039 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 38
2023.02.06 19:33:14.292 Robo_VTIS_V1.15 (EURUSD,H1) 3 Ticket: 1589309045 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 37
2023.02.06 19:33:14.545 Robo_VTIS_V1.15 (EURUSD,H1) 4 Ticket: 1589309057 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 36
2023.02.06 19:33:14.802 Robo_VTIS_V1.15 (EURUSD,H1) 5 Ticket: 1589309068 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 35
2023.02.06 19:33:15.058 Robo_VTIS_V1.15 (EURUSD,H1) 6 Ticket: 1589309072 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 34
2023.02.06 19:33:15.397 Robo_VTIS_V1.15 (EURUSD,H1) 7 Ticket: 1589309077 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 33
2023.02.06 19:33:15.651 Robo_VTIS_V1.15 (EURUSD,H1) 8 Ticket: 1589309080 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 32
2023.02.06 19:33:15.909 Robo_VTIS_V1.15 (EURUSD,H1) 9 Ticket: 1589309085 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 31
2023.02.06 19:33:16.163 Robo_VTIS_V1.15 (EURUSD,H1) 10 Ticket: 1589309090 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 30
2023.02.06 19:33:16.417 Robo_VTIS_V1.15 (EURUSD,H1) 11 Ticket: 1589309092 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 29
2023.02.06 19:33:16.674 Robo_VTIS_V1.15 (EURUSD,H1) 12 Ticket: 1589309095 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 28
2023.02.06 19:33:16.926 Robo_VTIS_V1.15 (EURUSD,H1) 13 Ticket: 1589309100 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 27
2023.02.06 19:33:17.358 Robo_VTIS_V1.15 (EURUSD,H1) 14 Ticket: 1589309114 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 26
2023.02.06 19:33:17.614 Robo_VTIS_V1.15 (EURUSD,H1) 15 Ticket: 1589309127 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 25
2023.02.06 19:33:17.961 Robo_VTIS_V1.15 (EURUSD,H1) 16 Ticket: 1589309129 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 24
2023.02.06 19:33:18.214 Robo_VTIS_V1.15 (EURUSD,H1) 17 Ticket: 1589309137 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 23
2023.02.06 19:33:18.469 Robo_VTIS_V1.15 (EURUSD,H1) 18 Ticket: 1589309150 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 22
2023.02.06 19:33:18.723 Robo_VTIS_V1.15 (EURUSD,H1) 19 Ticket: 1589309162 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 21
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 20 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 21 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 22 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 23 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 24 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 25 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 26 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 27 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 28 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 29 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 30 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 31 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 32 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 33 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 34 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 35 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 36 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 37 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 38 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) 39 Ticket: 0 Magic: 4321 Symbol: EURUSD Ciclo: 1 Total Ordens: 20
2023.02.06 19:33:18.983 Robo_VTIS_V1.15 (EURUSD,H1) CTrade::OrderSend: cancel #0 [invalid request]
Eduardo,
Quando voce esta passando o i de 0 ao total de ordens, voce esta percorrendo uma lista. Como voce esta removendo um elemento da lista voce tem que garantir que o elemento 'i' na próxima iteração não vai ser alterado porque se não voce pulara um elemento.
Veja: 0, 1, 2, 3, 4. Considere isso uma lista de ids, okay?
Quando deletar logando o "i", vai vir 0, 1, 2 e os ids que vão permancer são 1, 3.
Na primeira execução deletou o id 0, na segunda execução por que tu pulou o id 1, vai excluir o de id 2, na terceira execução vai remover o id 4 e terminou a lista. Simples né? Teste de mesa resolve seu problema.
Coloque então depois do OrderDelete, um "i--;" e volta pro seu primeiro for que esse que não atualiza o total vai ti dar dor de cabeça.
EDIT: simplificando a explicação.

- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Você concorda com a política do site e com os termos de uso
Olá pessoal,
Criei uma função para apagar Ordens Pendentes, porém preciso fazer com que a função apague primeiro a ordem com ID menor (inclusa primeiro) até o ID maior (inclusa por fim).
Se eu utilizar um incremento ele apaga metada das ordens e depois começa a trazer o Ticket como Zero, mesmo ainda existindo ordens pendentes. Segue o código:
void DeletaOrdens()
{
for(int i = 0 ; i < OrdersTotal() ; i++)
{
ulong ticket = OrderGetTicket(i);
ulong magic = OrderGetInteger(ORDER_MAGIC);
string symbol = OrderGetString(ORDER_SYMBOL);
long cicloAtual = StringToInteger(OrderGetString(ORDER_COMMENT));
if(symbol == _Symbol && magic == magic_number && cicloAtual == ciclo)
{
trade.OrderDelete(ticket);
}
}
}
Agora se usar a mesma lógica com a função de decremento, funciona normal, porém o sistema apaga da última para a primeira (preciso do contrário).
Segue mesma função com decremento:
void DeletaOrdens()
{
for(int i = OrdersTotal() -1 ; i >= 0 ; i--)
{
ulong ticket = OrderGetTicket(i);
ulong magic = OrderGetInteger(ORDER_MAGIC);
string symbol = OrderGetString(ORDER_SYMBOL);
long cicloAtual = StringToInteger(OrderGetString(ORDER_COMMENT));
if(symbol == _Symbol && magic == magic_number && cicloAtual == ciclo)
{
trade.OrderDelete(ticket);
}
}
}
Devo estar deixando algo passar, alguém já passou por essa situação?
Grato,
Eduardo