MQL5:
Saya mencoba menulis fungsi untuk menutup secara berurutan.
Tidak ada kesalahan setelah kompilasi, tetapi tidak berjalan.
Saya tidak tahu mengapa. Bisakah Anda membantu?
Terima kasih!
Penutup berdasarkan urutan pesanan.

yaitu
Kesepakatan 1 Kesepakatan 2 telah mendapat keuntungan - tutup
Kesepakatan 3 Kesepakatan 4 menguntungkan - tutup

5 6
7 8
9 10
dan seterusnya ...
Deal 1 memiliki nomor pesanan terkecil dan dibuka pada waktu paling awal.
Kesepakatan 10 memiliki nomor pesanan terbesar dan dibuka pada waktu terakhir.

Kode yang dikosongkan membatalkan CloseBySequence () {datetime from = 0; datetime to = TimeCurrent (); HistorySelect (from, to); ganda Minimum_Profit = 5,00; tiket ulan; uint x; perdagangan ganda # 91; # 93; # 91; 2 # 93 ;; total total = HistoryDealsTotal (); if (totalgt; 1) {ArrayResize (perdagangan, total); untuk (x = total-1; xgt; = 0; x--) {if ((tiket = HistoryDealGetTicket (x)) gt; 0) {trades # 91; x # 93; # 91; 0 # 93; = HistoryDealGetInteger (tiket, DEAL_ORDER); perdagangan # 91; x # 93; # 91; 1 # 93; = HistoryDealGetDouble (tiket, DEAL_PROFIT) HistoryDealGetDouble (tiket, DEAL_COMMISSION) HistoryDealGetDouble (tiket, DEAL_SWAP); }} ArraySort (perdagangan); x = 0; sementara (xlt; total-1) {double profit = trades # 91; x # 93; # 91; 1 # 93; trade # 91; x 1 # 93; # 91; 1 # 93 ;; if (profitgt; = Minimum_Profit) {if (HistoryDealSelect ((int) trade # 91; x # 93; # 91; 0 # 93;)) if (! trade.PositionClose (PositionGetSymbol (x))) Print (Kesalahan penutupan ( Deal 1/2) #, IntegerToString (OrderGetTicket (x)), kode Kesalahan, GetLastError ()); if (HistoryDealSelect ((int) trade # 91; x 1 # 93; # 91; 0 # 93;)) if (! trade.PositionClose (PositionGetSymbol (x))) Print (Error closing (Deal 2/2) # , IntegerToString (OrderGetTicket (x)), kode Kesalahan, GetLastError ()); } x = 2; }}}