Saya ingin EA saya memeriksa dan memastikan bahwa hanya ada satu pending order di pool pada satu waktu, jadi saya menulis kode berikut untuk melakukan itu:
int CheckOrders ()
{
//----
int i, pesanan;
tiket int [];
//----
tiket int = 0;
int total = OrdersTotal ();
//----
untuk tiket (i = total; igt; = 0; i--) [i] = 0;
//----
untuk (i = total; igt; = 0; i -) {
if (OrderSelect (i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderMagicNumber () == magic_base OrderType () gt; 1) {
pesanan ;
tiket [i] = OrderTicket ();
Cetak (tiket =, tiket [i]);
}
}
}
Cetak (total =, total, pesanan =, pesanan);
while (ordersgt; 1) {
untuk (i = total; igt; = 0; i -) {
if (tiket == 0 tiket [i] gt; 0) tiket = tiket [i];
if (ticketgt; tickets [i]) ticket = tiket [i];
}
if (OrderSelect (tiket, SELECT_BY_TICKET, MODE_TRADES)) {
OrderDelete (tiket);
}
pesanan--;
}
Cetak (tiket =, tiket);
//----
return (0);
}
Ini menampilkan jumlah pending order di pool oleh EA yang sama dengan benar, tetapi itu tidak akan menghapus pending order yang tidak diinginkan, karena selalu menunjukkan bahwa tiket [i] = 0. dan karena itu, OrderDelete (tiket) menang bekerja. Bisakah sb tolong katakan padaku mengapa ini terjadi?