{"id":15930,"date":"2026-11-04T15:22:19","date_gmt":"2026-11-04T15:22:19","guid":{"rendered":"https:\/\/bjftradinggroup.com\/?p=15930"},"modified":"2026-11-04T15:22:19","modified_gmt":"2026-11-04T15:22:19","slug":"ioc-fok-order-types-algo-trading","status":"publish","type":"post","link":"https:\/\/bjftradinggroup.com\/id\/ioc-fok-order-types-algo-trading\/","title":{"rendered":"IOC vs FOK, Market dan Limit Order: Jenis Order untuk Eksekusi Forex Algoritmik"},"content":{"rendered":"<p><\/p>\n<div class=\"iof-page\">\n<div class=\"iof-hero\">\n<span class=\"iof-hero-tag\">BJF TRADING GROUP \u00b7 EKSEKUSI FOREX<\/span><\/p>\n<h2>IOC, FOK, Market, atau Limit: <span class=\"iof-gold\">Memilih Order yang Sesuai dengan Trade<\/span><\/h2>\n<p class=\"iof-hero-sub\">Memilih jenis order berarti memutuskan apa yang lebih bisa Anda terima: harga yang lebih buruk, eksekusi yang lebih kecil, atau tidak terisi sama sekali. Panduan ini menunjukkan perilaku setiap instruksi di order book, dalam pesan FIX, dan di bawah last look, disertai perhitungan untuk algoritma yang harus memilih dalam hitungan milidetik.<\/p>\n<\/div>\n<div class=\"iof-answer\">\n<p><strong>Jawaban singkat: IOC vs FOK.<\/strong> Order Immediate-or-Cancel (IOC) mengambil apa pun yang tersedia saat ini pada harga Anda atau lebih baik, lalu membatalkan sisanya, sehingga eksekusi parsial bisa terjadi. Order Fill-or-Kill (FOK) harus terisi penuh saat itu juga atau dibatalkan seluruhnya, sehingga Anda mendapatkan semuanya atau tidak sama sekali. Gunakan IOC jika sebagian ukuran pun sudah berguna, dan FOK jika posisi parsial lebih buruk daripada tidak ada posisi.<\/p>\n<\/div>\n<div class=\"iof-toc\">\n<strong>Dalam panduan ini<\/strong><\/p>\n<ol>\n<li><a href=\"#iof-two-decisions\">Jenis order dan time in force adalah dua keputusan<\/a><\/li>\n<li><a href=\"#iof-market\">Market order di forex<\/a><\/li>\n<li><a href=\"#iof-limit\">Limit, marketable limit, dan stop order<\/a><\/li>\n<li><a href=\"#iof-tif\">Time in force: IOC, FOK, GTC, Day, GTD<\/a><\/li>\n<li><a href=\"#iof-example\">IOC vs FOK vs market: satu order book, tiga hasil<\/a><\/li>\n<li><a href=\"#iof-fix\">Bagaimana order terlihat di FIX<\/a><\/li>\n<li><a href=\"#iof-lastlook\">Likuiditas full-amount dan last look<\/a><\/li>\n<li><a href=\"#iof-tolerance\">Di mana menempatkan limit: model perhitungan<\/a><\/li>\n<li><a href=\"#iof-partial\">Menangani eksekusi parsial<\/a><\/li>\n<li><a href=\"#iof-matrix\">Order mana untuk strategi mana<\/a><\/li>\n<li><a href=\"#iof-howto\">Tujuh langkah mengonfigurasi eksekusi<\/a><\/li>\n<li><a href=\"#iof-mistakes\">Kesalahan umum<\/a><\/li>\n<li><a href=\"#iof-measure\">Apa yang perlu diukur<\/a><\/li>\n<li><a href=\"#iof-faq\">FAQ<\/a><\/li>\n<\/ol>\n<\/div>\n<h2 id=\"iof-two-decisions\">Jenis order dan time in force adalah dua keputusan yang terpisah<\/h2>\n<p>Sebagian besar glosarium mencantumkan market, limit, stop, IOC, dan FOK seolah-olah kelimanya adalah pilihan dari menu yang sama. Kenyataannya tidak demikian. Di baliknya ada dua pertanyaan yang tidak saling bergantung, dan algoritma harus menjawab keduanya untuk setiap order:<\/p>\n<ul>\n<li><strong>Harga berapa yang bersedia saya terima?<\/strong> Itulah jenis order: market (harga berapa pun), limit (harga ini atau lebih baik), stop (aktif saat harga pemicu diperdagangkan atau dikuotasikan).<\/li>\n<li><strong>Berapa lama order boleh tetap aktif?<\/strong> Itulah time in force, atau TIF: segera (IOC, FOK), sampai akhir sesi (Day), sampai dibatalkan (GTC), atau sampai waktu tertentu (GTD).<\/li>\n<\/ul>\n<p>Jadi, IOC dan FOK bukan alternatif dari limit order. Keduanya adalah masa berlaku yang dilekatkan pada limit order. &#8220;Limit IOC&#8221; dan &#8220;Limit FOK&#8221; adalah dua instruksi agresif yang paling umum dalam forex algoritmik, dan protokol FIX menyimpan kedua keputusan tersebut dalam field terpisah: <code>OrdType<\/code> (tag 40) dan <code>TimeInForce<\/code> (tag 59).<\/p>\n<div class=\"iof-cards\">\n<div class=\"iof-card\"><span class=\"iof-card-v\">Harga<\/span><span class=\"iof-card-l\">Jenis order, tag 40<\/span><span class=\"iof-card-n\">Market, limit, stop, stop-limit. Menentukan harga terburuk yang Anda terima.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Waktu<\/span><span class=\"iof-card-l\">Time in force, tag 59<\/span><span class=\"iof-card-n\">IOC, FOK, Day, GTC, GTD. Menentukan berapa lama order boleh menunggu.<\/span><\/div>\n<div class=\"iof-card\"><span class=\"iof-card-v\">Ukuran<\/span><span class=\"iof-card-l\">Aturan eksekusi<\/span><span class=\"iof-card-n\">Hanya penuh (FOK), ukuran berapa pun (IOC), atau kuantitas minimum (tag 110) jika didukung.<\/span><\/div>\n<\/div>\n<h2 id=\"iof-market\">Market order di forex: arti sebenarnya dari &#8220;at market&#8221;<\/h2>\n<p>Market order berarti: eksekusi saya sekarang, harga urusan kedua. Karena tidak memiliki limit, order ini menawarkan kepastian eksekusi tertinggi tetapi tanpa perlindungan atas harga yang Anda peroleh. Jika order book telah bergerak atau tipis, order akan naik melewati level-level yang tersedia sampai ukurannya terpenuhi. Biaya itulah yang disebut slippage, yang dibahas secara mendalam dalam panduan kami tentang <a href=\"https:\/\/bjftradinggroup.com\/forex-slippage-explained\/\">cara mengukur dan mengurangi slippage forex<\/a>.<\/p>\n<p>Forex memiliki dua detail tambahan yang dilewatkan oleh penjelasan berbasis bursa:<\/p>\n<ul>\n<li><strong>Tidak ada satu order book pusat.<\/strong> Broker atau ECN Anda menampilkan aliran harga gabungan dari beberapa penyedia likuiditas. &#8220;At market&#8221; berarti harga terbaik yang bisa didapat venue Anda dari aliran tersebut, bukan harga pasar universal.<\/li>\n<li><strong>Market order tetap memiliki masa berlaku implisit.<\/strong> Banyak venue memperlakukan market order sebagai IOC atau FOK secara internal: mengisi apa yang bisa diisi saat ini dan melaporkan sisanya. Sebagian venue memungkinkan Anda menambahkan deviasi maksimum, yang secara efektif mengubah order menjadi limit. Jangan berasumsi; bacalah spesifikasi venue.<\/li>\n<\/ul>\n<p>Peran praktis market order dalam algoritma cukup sempit. Order ini cocok digunakan saat <em>tidak melakukan trade<\/em> justru menjadi bahaya yang lebih besar, misalnya menutup posisi yang kehilangan hedge-nya.<\/p>\n<h2 id=\"iof-limit\">Limit, marketable limit, dan stop order<\/h2>\n<h3>Limit order pasif<\/h3>\n<p>Limit order yang ditempatkan jauh dari harga saat ini akan berdiam di order book dan menunggu. Buy limit di bawah ask tidak mengambil likuiditas, melainkan menyediakannya. Anda mungkin memperoleh spread alih-alih membayarnya, tetapi Anda menanggung risiko antrean dan adverse selection: order pasif cenderung terisi ketika pasar sedang bergerak menembusnya. Order pasif biasanya dipasangkan dengan Day, GTC, atau GTD.<\/p>\n<h3>Marketable limit order<\/h3>\n<p>Buy limit yang dipasang pada atau di atas ask saat ini langsung tereksekusi seperti market order, tetapi tidak dapat terisi melewati limitnya. &#8220;Marketable limit&#8221; ini adalah andalan eksekusi otomatis. Jika digabungkan dengan IOC, artinya: ambil likuiditas sekarang, sampai harga ini, dan jangan tinggalkan apa pun di order book.<\/p>\n<p>Poin price improvement sering disalahpahami. Limit adalah harga terburuk yang dapat diterima, bukan harga eksekusi. Jika Anda membeli dengan limit di 1.08510 dan ask berada di 1.08502, Anda seharusnya mendapatkan 1.08502 atau level berikutnya hingga limit Anda.<\/p>\n<h3>Stop order dan stop-limit order<\/h3>\n<p>Stop order tidak aktif sampai harga pemicu tercapai, lalu berubah menjadi market order. Stop-limit justru berubah menjadi limit order. Yang pertama menjamin aktivasi, bukan harga. Yang kedua membatasi harga tetapi bisa membuat Anda tidak terisi justru saat pasar mengalami gap, sifat yang kurang menyenangkan untuk stop pelindung. Tempat stop disimpan juga penting: stop yang disimpan di venue tetap bertahan saat koneksi Anda terputus, sedangkan stop yang disimulasikan di perangkat lunak Anda sendiri tidak.<\/p>\n<h2 id=\"iof-tif\">Time in force: daftar lengkap<\/h2>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Instruksi<\/th>\n<th>FIX 59<\/th>\n<th>Masa berlaku<\/th>\n<th>Eksekusi parsial?<\/th>\n<th>Penggunaan umum<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Day<\/td>\n<td>0<\/td>\n<td>Sampai sesi berakhir<\/td>\n<td>Ya<\/td>\n<td>Kuotasi pasif selama sesi tertentu<\/td>\n<\/tr>\n<tr>\n<td>GTC (Good Till Cancel)<\/td>\n<td>1<\/td>\n<td>Sampai dibatalkan<\/td>\n<td>Ya<\/td>\n<td>Entri tertunda, order take-profit dan stop<\/td>\n<\/tr>\n<tr>\n<td>IOC (Immediate or Cancel)<\/td>\n<td>3<\/td>\n<td>Tereksekusi seketika, sisanya dibatalkan<\/td>\n<td>Ya<\/td>\n<td>Mengambil likuiditas saat sebagian ukuran pun berguna<\/td>\n<\/tr>\n<tr>\n<td>FOK (Fill or Kill)<\/td>\n<td>4<\/td>\n<td>Ukuran penuh seketika atau tidak sama sekali<\/td>\n<td>Tidak<\/td>\n<td>Entri all-or-nothing dan leg berukuran tetap<\/td>\n<\/tr>\n<tr>\n<td>GTD (Good Till Date)<\/td>\n<td>6<\/td>\n<td>Sampai waktu tertentu (tag 126 atau 432)<\/td>\n<td>Ya<\/td>\n<td>Kuotasi dengan batas waktu tegas, misalnya sebelum rilis berita<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Nilai diambil dari spesifikasi FIX 4.4. Venue biasanya hanya mendukung sebagian dari daftar ini, dan sebagian membatasi TIF untuk jenis order tertentu, sehingga aturan dari broker Anda mengesampingkan tabel apa pun dalam artikel.<\/p>\n<h2 id=\"iof-example\">IOC vs FOK vs market: satu order book, tiga hasil<\/h2>\n<p>Mari ambil contoh konkret. Sebuah algoritma ingin membeli 2,000,000 EURUSD. Best ask adalah 1.08500, dan inilah sisi penawaran yang terlihat saat order tiba:<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Harga ask<\/th>\n<th>Ukuran tersedia<\/th>\n<th>Kumulatif<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1.08500<\/td>\n<td>500,000<\/td>\n<td>500,000<\/td>\n<\/tr>\n<tr>\n<td>1.08501<\/td>\n<td>500,000<\/td>\n<td>1,000,000<\/td>\n<\/tr>\n<tr>\n<td>1.08503<\/td>\n<td>1,000,000<\/td>\n<td>2,000,000<\/td>\n<\/tr>\n<tr>\n<td>1.08506<\/td>\n<td>2,000,000<\/td>\n<td>4,000,000<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/order-book-walk-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Perbandingan pergerakan di order book antara market order, IOC limit, dan FOK limit untuk pembelian 2 juta EURUSD: market order terisi penuh di 1.085018, IOC terisi 1 juta di 1.085005, dan FOK dibatalkan\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Order book yang sama, tiga instruksi. Order book ini adalah contoh buatan; perhitungannya akurat.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Instruksi<\/th>\n<th>Terisi<\/th>\n<th>Harga rata-rata<\/th>\n<th>Biaya vs best ask<\/th>\n<th>Hasil<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Market, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, sekitar $35<\/td>\n<td>Selesai, pada harga yang tidak Anda pilih<\/td>\n<\/tr>\n<tr>\n<td>Limit 1.08502 IOC, 2M<\/td>\n<td>1,000,000<\/td>\n<td>1.085005<\/td>\n<td>0.05 pip, sekitar $5<\/td>\n<td>Setengah ukuran, 1M dibatalkan<\/td>\n<\/tr>\n<tr>\n<td>Limit 1.08502 FOK, 2M<\/td>\n<td>0<\/td>\n<td>Tidak ada<\/td>\n<td>$0<\/td>\n<td>Dibatalkan: hanya 1M pada atau di bawah limit<\/td>\n<\/tr>\n<tr>\n<td>Limit 1.08503 FOK, 2M<\/td>\n<td>2,000,000<\/td>\n<td>1.085018<\/td>\n<td>0.175 pip, sekitar $35<\/td>\n<td>Terisi: limit cukup lebar<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Baris terakhir inilah yang paling halus. Tambahan sepersepuluh pip saja mengubah FOK dari tanpa trade menjadi terisi penuh, dengan rata-rata yang lebih baik daripada limitnya. FOK tidak berarti &#8220;ketat&#8221;. FOK berarti &#8220;seluruh ukuran harus muat di bawah harga ini pada saat ini&#8221;. IOC dan FOK pada limit yang sama melihat likuiditas yang sama. Keduanya hanya berbeda dalam tindakan yang diambil ketika likuiditas itu tidak cukup.<\/p>\n<p>Tidak ada pula instruksi yang selalu lebih murah. IOC seharga $5 tampak murah dibandingkan market order $35, tetapi hanya memberikan separuh posisi. Jika sisa 1M harus dibeli kemudian pada harga yang lebih buruk, perbandingannya berubah. Biaya dari ukuran yang hilang itulah yang dibahas di sisa panduan ini.<\/p>\n<h2 id=\"iof-fix\">Bagaimana order terlihat di FIX<\/h2>\n<p>Pada <a href=\"https:\/\/bjftradinggroup.com\/fix-api-forex-trading\/\">koneksi FIX API<\/a>, Anda menyatakan setiap instruksi secara eksplisit dalam pesan NewOrderSingle (<code>35=D<\/code>). Jika disederhanakan ke field yang penting saja, order IOC dari contoh di atas terlihat seperti ini:<\/p>\n<div class=\"iof-code\">35=D | 11=A1001 | 55=EUR\/USD | 54=1 | 38=2000000 | 40=2 | 44=1.08502 | 59=3<\/div>\n<p>Ubah <code>59=3<\/code> menjadi <code>59=4<\/code> dan order yang sama menjadi FOK. Hapus harga dan tetapkan <code>40=1<\/code>, maka order menjadi market order. Header, checksum, timestamp, dan field akun tidak ditampilkan di sini, dan format simbol berbeda-beda di setiap venue: sebagian menggunakan ID simbol numerik.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Tag<\/th>\n<th>Field<\/th>\n<th>Nilai yang akan Anda temui<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>40<\/td>\n<td>OrdType<\/td>\n<td>1 Market, 2 Limit, 3 Stop, 4 Stop-limit, D Previously quoted (kuotasi sebelumnya)<\/td>\n<\/tr>\n<tr>\n<td>59<\/td>\n<td>TimeInForce<\/td>\n<td>0 Day, 1 GTC, 3 IOC, 4 FOK, 6 GTD<\/td>\n<\/tr>\n<tr>\n<td>110<\/td>\n<td>MinQty<\/td>\n<td>Kuantitas minimum yang harus tereksekusi, jika didukung<\/td>\n<\/tr>\n<tr>\n<td>150<\/td>\n<td>ExecType<\/td>\n<td>0 New (baru), F Trade (transaksi), 4 Canceled (dibatalkan), 8 Rejected (ditolak), C Expired (kedaluwarsa)<\/td>\n<\/tr>\n<tr>\n<td>39<\/td>\n<td>OrdStatus<\/td>\n<td>0 New (baru), 1 Partially filled (terisi sebagian), 2 Filled (terisi), 4 Canceled (dibatalkan), 8 Rejected (ditolak), C Expired (kedaluwarsa)<\/td>\n<\/tr>\n<tr>\n<td>14 \/ 151<\/td>\n<td>CumQty \/ LeavesQty<\/td>\n<td>Terisi sejauh ini \/ masih terbuka. LeavesQty 0 berarti order telah selesai<\/td>\n<\/tr>\n<tr>\n<td>31 \/ 32 \/ 6<\/td>\n<td>LastPx \/ LastQty \/ AvgPx<\/td>\n<td>Harga dan ukuran eksekusi ini \/ rata-rata seluruh eksekusi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Bagian yang rumit bukan mengirim order, melainkan membaca jawabannya. Satu IOC dapat menghasilkan serangkaian ExecutionReport (<code>35=8<\/code>), dan cara sisa order dilaporkan bergantung pada venue.<\/p>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/ioc-execution-lifecycle-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Siklus hidup FIX dari order IOC 2 juta: NewOrderSingle, dua ExecutionReport transaksi dengan CumQty naik hingga 1 juta, lalu laporan pembatalan atau kedaluwarsa untuk sisa 1 juta dengan LeavesQty nol, dan algoritma hanya melakukan hedging atas kuantitas yang terisi\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>IOC baru selesai ketika LeavesQty mencapai 0. Posisi Anda adalah CumQty, bukan kuantitas yang Anda minta.<\/figcaption><\/figure>\n<p>Sebagian venue mengirim konfirmasi tambahan (<code>150=0<\/code>) sebelum eksekusi. Venue lain mengirim satu eksekusi gabungan. Sesi FIX 4.2 menggunakan nilai ExecType yang berbeda untuk eksekusi (1 dan 2) dibandingkan FIX 4.3 dan yang lebih baru (F). Karena itu, handler yang andal berpatokan pada CumQty, LeavesQty, dan OrdStatus, bukan pada jumlah pesan yang tetap. <a href=\"https:\/\/bjftradinggroup.com\/how-fix-protocol-works\/\">Panduan langkah demi langkah protokol FIX<\/a> menjelaskan lapisan sesi di balik pesan-pesan ini.<\/p>\n<h2 id=\"iof-lastlook\">Likuiditas full-amount dan last look: mengapa forex berbeda<\/h2>\n<p>Penjelasan pasar saham mengasumsikan central limit order book, tempat penawaran yang ditampilkan bersifat pasti. Venue forex dapat berperilaku berbeda dalam dua hal yang langsung memengaruhi IOC dan FOK.<\/p>\n<p><strong>Likuiditas sweepable vs full-amount.<\/strong> Dalam order book sweepable, order dapat mengambil beberapa level dari beberapa penyedia, seperti pada contoh di atas. Dalam harga full-amount, penyedia mengutip satu harga untuk seluruh ukuran dan tingkatannya tidak dapat dijumlahkan, sehingga FOK untuk 2M seharusnya dicocokkan dengan tingkatan 2M, bukan dengan jumlah kuotasi 1M. Karena itu, tampilan kedalaman yang terlihat sama bisa berarti hal yang berbeda.<\/p>\n<p><strong>Last look.<\/strong> Jika penyedia menerapkan last look, order Anda hanyalah permintaan yang masih bisa ditolak setelah penahanan singkat. FOK bisa ditolak meskipun order book menampilkan ukuran yang cukup saat Anda mengirimnya, dan IOC bisa kembali dengan ukuran lebih kecil daripada yang ditampilkan. FX Global Code (kode etik pasar valas global) meminta penyedia yang menggunakan last look untuk mengungkapkan praktik ini kepada klien, jadi mintalah pengungkapan tersebut. Penolakan akibat last look hanya terlihat di log Anda jika Anda mencatatnya. Mekanismenya dibahas dalam panduan kami tentang <a href=\"https:\/\/bjftradinggroup.com\/broker-execution-transparency\/\">eksekusi broker, A-book, B-book, dan last look<\/a>.<\/p>\n<div class=\"iof-box\"><strong>Mengapa ini penting untuk pengukuran:<\/strong> order agresif di venue last-look dapat menunjukkan statistik slippage yang sangat baik, karena hanya eksekusi yang menguntungkan penyedia yang masuk ke dalam sampel. Rata-rata slippage rendah yang disertai tingkat penolakan tinggi bukanlah eksekusi yang baik.<\/div>\n<h2 id=\"iof-tolerance\">Di mana menempatkan limit: model perhitungan<\/h2>\n<p>Untuk IOC atau FOK, parameter kuncinya bukan TIF, melainkan harga limit. Pasang tepat di kuotasi saat ini dan sebagian besar sinyal akan terlewat. Biarkan tanpa batas dan eksekusi terburuk akan menggerus edge. Di antara kedua ekstrem itu ada jawaban yang dapat dihitung.<\/p>\n<p>Ambil contoh sinyal berumur pendek dengan ekspektasi edge 1.2 pip setelah komisi, diukur dari harga sinyal. Antara sinyal dan kedatangan di venue, harga bergerak. Asumsikan dua rezim: pada 80% kasus harga bergeser sekitar 0.2 pip berlawanan dengan Anda (standar deviasi 0.3 pip), dan pada 20% kasus pergerakan cepat membawanya sekitar 2 pip menjauh (standar deviasi 1 pip). Input ini bersifat ilustratif. Dalam praktik, Anda memperkirakannya dari log order Anda sendiri.<\/p>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/limit-tolerance-model-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Model ilustratif: ekspektasi pip bersih per sinyal naik seiring toleransi limit, mencapai puncak di dekat 0.82 pip pada toleransi sekitar 1.2 pip, dan turun ke 0.64 pip untuk market order tanpa limit, sementara fill rate naik dari 21 persen ke 100 persen\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Model ilustratif, bukan hasil trading: edge 1.2 pip dan pergeseran harga dua rezim. Eksekusi terjadi ketika pergeseran berada dalam toleransi.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Toleransi limit dari harga sinyal<\/th>\n<th>Fill rate<\/th>\n<th>Rata-rata bersih per eksekusi<\/th>\n<th>Ekspektasi bersih per sinyal<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>0 pip (limit di harga sinyal)<\/td>\n<td>20.7%<\/td>\n<td>1.38 pip<\/td>\n<td>0.29 pip<\/td>\n<\/tr>\n<tr>\n<td>0.3 pip<\/td>\n<td>51.3%<\/td>\n<td>1.18 pip<\/td>\n<td>0.61 pip<\/td>\n<\/tr>\n<tr>\n<td>0.6 pip<\/td>\n<td>74.3%<\/td>\n<td>1.05 pip<\/td>\n<td>0.78 pip<\/td>\n<\/tr>\n<tr>\n<td>1.2 pip (sama dengan edge)<\/td>\n<td>84.2%<\/td>\n<td>0.98 pip<\/td>\n<td>0.82 pip<\/td>\n<\/tr>\n<tr>\n<td>2.0 pip<\/td>\n<td>90.0%<\/td>\n<td>0.89 pip<\/td>\n<td>0.80 pip<\/td>\n<\/tr>\n<tr>\n<td>Tanpa limit (market order)<\/td>\n<td>100%<\/td>\n<td>0.64 pip<\/td>\n<td>0.64 pip<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Tiga kesimpulan berikut berlaku jauh melampaui contoh ini:<\/p>\n<ul class=\"iof-checks\">\n<li><strong>Limit terbaik adalah harga impas, bukan kuotasi.<\/strong> Setiap eksekusi yang masih menyisakan ekspektasi laba positif layak diambil. Dalam model ini, nilai maksimum berada tepat di titik toleransi sama dengan edge, karena eksekusi marginal berikutnya menghasilkan nol.<\/li>\n<li><strong>Kurva di dekat puncak cenderung datar.<\/strong> Antara 0.8 dan 2 pip, ekspektasi laba nyaris tidak berubah. Anda tidak memerlukan toleransi yang presisi, tetapi Anda tetap harus memilikinya.<\/li>\n<li><strong>Rata-rata harga eksekusi adalah target yang menyesatkan.<\/strong> Limit paling ketat memiliki harga terbaik per eksekusi (1.38 pip) dan hasil terburuk per sinyal (0.29 pip), karena 79% sinyal tidak pernah menjadi trade.<\/li>\n<\/ul>\n<p>Model ini mengabaikan efek antrean dan mengasumsikan seluruh ukuran terisi setiap kali limit tercapai. Untuk order yang lebih besar, ulangi perhitungan dengan kedalaman riil Anda, karena limit juga menentukan seberapa besar ukuran yang bisa masuk. Periksa asumsi dengan data: panduan kami tentang <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage-backtest-execution-time-gap\/\">kesenjangan antara backtest dan eksekusi live<\/a> menunjukkan cara memasukkan waktu eksekusi ke dalam pengujian.<\/p>\n<h2 id=\"iof-partial\">Menangani eksekusi parsial tanpa menciptakan risiko baru<\/h2>\n<p>Eksekusi parsial bukan kesalahan, melainkan kondisi baru yang harus memiliki aturan dalam algoritma. FOK menghindari kondisi ini saat entri; IOC memindahkan masalahnya ke logika Anda. Tentukan kebijakannya sebelum live:<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Kebijakan sisa order<\/th>\n<th>Kapan cocok<\/th>\n<th>Risiko yang perlu dikendalikan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Terima dan kelola bagian yang terisi<\/td>\n<td>Entri dengan edge yang tidak bergantung pada ukuran<\/td>\n<td>Posisi terlalu kecil untuk menutup biaya tetap<\/td>\n<\/tr>\n<tr>\n<td>Kirim ulang sisa order pada harga baru<\/td>\n<td>Sinyal masih valid, edge masih di atas toleransi<\/td>\n<td>Mengejar harga. Batasi percobaan ulang dan periksa kembali edge setiap kali<\/td>\n<\/tr>\n<tr>\n<td>Lakukan hedge atau selesaikan di venue lain<\/td>\n<td>Trade multi-leg<\/td>\n<td>Perbedaan langkah lot dan kemungkinan kedua untuk tidak terisi<\/td>\n<\/tr>\n<tr>\n<td>Tutup bagian yang terisi<\/td>\n<td>Eksekusi di bawah ukuran yang layak<\/td>\n<td>Membayar spread dua kali<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><strong>Trade dua leg memerlukan kehati-hatian paling besar.<\/strong> Misalkan sebuah trade ter-hedge membeli 2M di venue A dengan IOC dan menjual di venue B. Jika A hanya mengisi 1M dan algoritma tetap menjual 2M sesuai rencana, algoritma memegang posisi short terbuka 1M. Dengan sekitar $100 per pip per juta pada EURUSD, pergerakan 10 pip melawan posisi tersebut menelan biaya $1,000, yang dengan mudah melebihi edge banyak trade. Aturannya sederhana: tentukan ukuran leg kedua dari CumQty leg pertama, jangan pernah dari kuantitas yang diminta.<\/p>\n<p>Konversikan juga ke grid ukuran venue kedua. Jika leg pertama terisi 1,370,000 dan venue B menerima kelipatan 100,000, Anda dapat melakukan hedge 1,400,000 atau 1,300,000, bukan ukuran yang persis sama. Tetapkan aturan untuk sisa tersebut, dan perlakukan sisa yang tidak ter-hedge sebagai batas risiko.<\/p>\n<p>FOK pada leg pertama menghilangkan ketidaksesuaian ukuran, tetapi menciptakan lebih banyak kejadian tanpa trade. FOK pada leg kedua biasanya merupakan pilihan buruk: ketika leg pertama sudah terisi, hedge yang dibatalkan membuat Anda terekspos sepenuhnya. Leg kedua itulah tempat kepastian eksekusi layak dibayar.<\/p>\n<h2 id=\"iof-matrix\">Order mana untuk strategi mana<\/h2>\n<figure class=\"iof-figure\"><img decoding=\"async\" src=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/order-type-decision-ioc-fok-order-types-algo-trading-1760x800-1.webp\" alt=\"Diagram alur keputusan untuk memilih jenis order: jika posisi harus berubah sekarang, gunakan market atau IOC lebar; jika eksekusi parsial tidak berguna, gunakan FOK; jika mengambil likuiditas dengan ukuran berapa pun yang berguna, gunakan limit IOC; jika tidak, pasang limit pasif dengan Day, GTC, atau GTD\" width=\"1760\" height=\"800\" loading=\"lazy\"><figcaption>Titik awal untuk mengambil keputusan. Aturan venue dan data eksekusi Anda yang menjadi penentu akhir.<\/figcaption><\/figure>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Situasi<\/th>\n<th>Default yang wajar<\/th>\n<th>Alasan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Entri latency arbitrage<\/td>\n<td>Limit IOC pada harga impas<\/td>\n<td>Edge menyusut dalam hitungan milidetik; eksekusi parsial tetap menghasilkan, dan limit menghentikan ekor risiko<\/td>\n<\/tr>\n<tr>\n<td>Leg pertama dari pasangan ter-hedge<\/td>\n<td>Limit FOK, atau IOC dengan hedging berdasarkan CumQty<\/td>\n<td>FOK melindungi penentuan ukuran; IOC meningkatkan fill rate tetapi memerlukan logika yang lebih baik<\/td>\n<\/tr>\n<tr>\n<td>Leg kedua, ketika leg pertama sudah terisi<\/td>\n<td>Market atau IOC lebar<\/td>\n<td>Tidak ter-hedge adalah risiko yang lebih besar<\/td>\n<\/tr>\n<tr>\n<td>Entri berbasis berita<\/td>\n<td>Limit IOC, ukuran kecil<\/td>\n<td>Spread dan kedalaman berubah cepat, dan market order tidak memiliki batas atas<\/td>\n<\/tr>\n<tr>\n<td>Keluar darurat atau stop-out<\/td>\n<td>Market atau IOC lebar, diulang sampai posisi nol<\/td>\n<td>Kepastian yang utama; FOK dapat membiarkan posisi tetap terbuka<\/td>\n<\/tr>\n<tr>\n<td>Trading pasangan atau statistik<\/td>\n<td>Limit IOC atau limit pasif berumur pendek<\/td>\n<td>Periode kepemilikan lebih panjang, sehingga spread yang dibayar lebih penting daripada kecepatan<\/td>\n<\/tr>\n<tr>\n<td>Spread capture dan rebalancing<\/td>\n<td>Limit pasif, Day atau GTD<\/td>\n<td>Anda dibayar untuk menunggu, dan Anda harus membatalkan sebelum berita dan rollover<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Eksekusi juga bergantung pada waktu. Di sekitar <a href=\"https:\/\/bjftradinggroup.com\/forex-spread-widening\/\">rollover dan berita, spread melebar dan kedalaman menipis<\/a>, sehingga limit yang terisi baik pada tengah hari London bisa gagal atau menjadi mahal pada periode tersebut. Buat toleransi dan ukuran bergantung pada spread saat ini, jangan menetapkannya untuk sepanjang hari. Pembahasan lebih dalam tentang strategi yang peka terhadap kecepatan tersedia dalam panduan kami tentang <a href=\"https:\/\/bjftradinggroup.com\/latency-arbitrage\/\">latency arbitrage<\/a>.<\/p>\n<h2 id=\"iof-howto\">Tujuh langkah mengonfigurasi eksekusi order<\/h2>\n<div class=\"iof-steps\">\n<div class=\"iof-step\"><span class=\"iof-step-n\">1<\/span><\/p>\n<div><strong>Hitung harga trade yang terlewat.<\/strong> Tentukan berapa biaya jika order tidak terisi. Untuk entri opsional, biayanya nol; untuk hedge atau exit, biayanya adalah risiko terbuka.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">2<\/span><\/p>\n<div><strong>Hitung harga terburuk yang dapat diterima.<\/strong> Ambil ekspektasi edge, kurangi komisi dan margin keamanan, lalu tetapkan limit pada titik impas tersebut.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">3<\/span><\/p>\n<div><strong>Pilih masa berlaku.<\/strong> Gunakan IOC atau FOK untuk mengambil likuiditas, serta Day, GTC, atau GTD untuk order yang menunggu.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">4<\/span><\/p>\n<div><strong>Tetapkan eksekusi terkecil yang berguna.<\/strong> Gunakan FOK, atau kuantitas minimum jika didukung, apabila eksekusi kecil tidak dapat menutup biaya tetap.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">5<\/span><\/p>\n<div><strong>Tulis aturan sisa order.<\/strong> Tentukan percobaan ulang, jumlah maksimum percobaan, dan perlakuan terhadap sisa yang tidak ter-hedge.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">6<\/span><\/p>\n<div><strong>Pastikan aturan venue.<\/strong> Periksa pasangan jenis order dan TIF yang didukung, langkah ukuran, cara pelaporan sisa order, dan apakah last look berlaku.<\/div>\n<\/div>\n<div class=\"iof-step\"><span class=\"iof-step-n\">7<\/span><\/p>\n<div><strong>Catat dan tinjau.<\/strong> Rekam setiap order, termasuk penolakan dan pembatalan, lalu sesuaikan limit berdasarkan data eksekusi riil.<\/div>\n<\/div>\n<\/div>\n<h2 id=\"iof-mistakes\">Kesalahan umum dalam penanganan order otomatis<\/h2>\n<ul class=\"iof-checks\">\n<li><strong>Mengasumsikan ukuran yang diminta telah terisi.<\/strong> Posisi harus berasal dari laporan eksekusi, bukan dari order yang Anda kirim.<\/li>\n<li><strong>Menganggap FOK yang dibatalkan sebagai kesalahan sistem.<\/strong> Ini adalah hasil yang normal. Memberi peringatan untuk setiap kejadian membuat Anda terbiasa mengabaikan peringatan; buatlah peringatan berdasarkan tingkat kejadiannya.<\/li>\n<li><strong>Mengulang pada harga yang sama dalam loop.<\/strong> Jika harga sudah bergerak, percobaan ulang juga gagal, dan percobaan ulang yang cepat bisa melanggar batas pesan. Perbarui harga, atau berhenti.<\/li>\n<li><strong>Mengabaikan kondisi tidak diketahui.<\/strong> Jika tidak ada respons, order mungkin masih aktif atau sudah terisi. Tanyakan statusnya dengan OrderStatusRequest (<code>35=H<\/code>) atau rekonsiliasi posisi setelah tersambung kembali, sebelum mengirim order pengganti.<\/li>\n<li><strong>Menggunakan ulang nilai ClOrdID.<\/strong> Tag 11 yang unik untuk setiap order, termasuk setiap percobaan ulang, adalah yang memungkinkan rekonsiliasi.<\/li>\n<li><strong>Menggunakan harga usang untuk limit.<\/strong> Limit yang dihitung dari kuotasi tertunda akan terlalu ketat atau terlalu longgar. <a href=\"https:\/\/bjftradinggroup.com\/fast-feed-for-arbitrage\/\">Feed harga yang cepat<\/a> membuat toleransi menjadi bermakna.<\/li>\n<li><strong>Menguji dengan eksekusi sempurna.<\/strong> Backtest yang mengisi setiap order secara penuh pada kuotasi tidak dapat membedakan market, IOC, dan FOK. Modelkan kedalaman dan penolakan, atau lakukan forward test dengan ukuran kecil.<\/li>\n<li><strong>Membawa pengaturan antar-venue.<\/strong> Toleransi yang disetel pada satu broker hanya sedikit berlaku untuk broker lain, karena kedalaman, last look, dan latensi semuanya berbeda.<\/li>\n<\/ul>\n<h2 id=\"iof-measure\">Apa yang perlu diukur<\/h2>\n<p>Memilih jenis order adalah pertanyaan empiris, dan hanya log yang lengkap yang dapat menjawabnya. Laporan harus mencakup sinyal dan percobaan, bukan hanya trade yang selesai.<\/p>\n<div class=\"iof-table-wrap\">\n<table class=\"iof-table\">\n<thead>\n<tr>\n<th>Metrik<\/th>\n<th>Definisi<\/th>\n<th>Apa yang ditunjukkan<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Fill ratio<\/td>\n<td>Kuantitas terisi \/ kuantitas diminta<\/td>\n<td>Terlalu rendah berarti limit ketat atau kedalaman tipis<\/td>\n<\/tr>\n<tr>\n<td>Tingkat penolakan<\/td>\n<td>Order ditolak atau dibatalkan \/ order terkirim<\/td>\n<td>Lonjakan mendadak menandakan perubahan likuiditas atau broker<\/td>\n<\/tr>\n<tr>\n<td>Slippage<\/td>\n<td>Harga eksekusi dikurangi harga acuan saat sinyal, bertanda<\/td>\n<td>Biaya eksekusi per trade yang terisi<\/td>\n<\/tr>\n<tr>\n<td>Waktu pulang-pergi<\/td>\n<td>Order terkirim hingga laporan eksekusi pertama<\/td>\n<td>Apakah venue melambat, menurut waktu dalam sehari<\/td>\n<\/tr>\n<tr>\n<td>Bersih per sinyal<\/td>\n<td>Hasil total \/ semua sinyal, termasuk yang terlewat<\/td>\n<td>Angka yang seharusnya menentukan toleransi<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>Pisahkan angka-angka ini berdasarkan simbol, venue, jam, dan jenis order, lalu bandingkan hasilnya sebelum dan sesudah setiap perubahan. SharpTrader menampilkan order dan statistik kinerja dengan PnL, slippage, dan waktu eksekusi, yang menjadi dasar praktis untuk tinjauan semacam ini. Jenis order dan nilai TIF yang tersedia dalam suatu pengaturan bergantung pada konektor dan broker, jadi pastikan untuk akun Anda sendiri.<\/p>\n<div class=\"iof-cta\">\n<h3>Bangun eksekusi berdasarkan data Anda sendiri<\/h3>\n<p>SharpTrader terhubung ke broker melalui FIX API dan protokol lainnya, menjalankan strategi arbitrase dan non-arbitrase, serta mencatat slippage dan waktu eksekusi untuk setiap order. Untuk menyetel parameter berdasarkan data tersebut, SharpTrader Optimizer mengotomatiskan pencariannya.<\/p>\n<p><a class=\"iof-btn\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-forex-crypto-arbitrage\/\">Jelajahi SharpTrader<\/a><a class=\"iof-btn iof-btn-alt\" href=\"https:\/\/bjftradinggroup.com\/product\/sharptrader-optimizer\/\">SharpTrader Optimizer<\/a>\n<\/div>\n<div class=\"bjf-ff-wrap\"><div class=\"bjf-ff\" id=\"bjfff2144\" style=\"max-width:640px;margin:28px auto;padding:24px 26px;border:1px solid #d9e1ec;border-radius:12px;background:#f6f8fb\">\n<p style=\"margin:0 0 6px;font-size:20px;font-weight:700;color:#0f1b2d\">Scanner arbitrase gratis + kursus email singkat<\/p>\n<p style=\"margin:0 0 16px;font-size:15px;line-height:1.55;color:#44505f\">Dapatkan tautan scanner gratis dan beberapa email singkat dan praktis dari Boris: arti sebenarnya selisih harga setelah biaya, cara menguji strategi sebelum mempertaruhkan uang sungguhan, dan alat mana yang cocok untuk pasar Anda. Tanpa janji berlebihan. Email dikirim dalam bahasa Inggris.<\/p>\n<form method=\"post\" novalidate>\n<input type=\"hidden\" name=\"market\" value=\"forex\"><input type=\"hidden\" name=\"source\" value=\"blog\"><input type=\"hidden\" name=\"ts\" value=\"1793827017\"><input type=\"hidden\" name=\"ref\" value=\"ioc-fok-order-types-algo-trading\"><input type=\"hidden\" name=\"lang\" value=\"id\"><div style=\"position:absolute;left:-9999px\" aria-hidden=\"true\"><label>Website<input type=\"text\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\"><\/label><\/div>\n<div style=\"display:flex;flex-wrap:wrap;gap:10px\">\n<input type=\"text\" name=\"first_name\" placeholder=\"Nama depan\" aria-label=\"Nama depan\" autocomplete=\"given-name\" style=\"flex:1 1 160px;min-width:0;padding:11px 12px;border:1px solid #c9d3df;border-radius:8px;font-size:15px\">\n<input type=\"email\" name=\"email\" required placeholder=\"Email\" aria-label=\"Email\" autocomplete=\"email\" style=\"flex:2 1 220px;min-width:0;padding:11px 12px;border:1px solid #c9d3df;border-radius:8px;font-size:15px\">\n<button type=\"submit\" style=\"flex:1 1 160px;padding:11px 16px;border:0;border-radius:8px;background:#c9962a;color:#0f1b2d;font-weight:700;font-size:15px;cursor:pointer\">Kirimkan ke saya<\/button>\n<\/div>\n<p style=\"margin:10px 0 0;font-size:12px;line-height:1.5;color:#6b7785\">Dengan mengirim, Anda setuju menerima email dari BJF Trading Group tentang alat arbitrase dan perangkat lunak trading. Berhenti berlangganan kapan saja. Lihat <a href=\"https:\/\/bjftradinggroup.com\/id\/privacy-policy\/\">Kebijakan Privasi<\/a> kami.<\/p>\n<p class=\"bjf-ff-msg\" role=\"status\" style=\"margin:10px 0 0;font-size:15px;font-weight:600\"><\/p>\n<\/form><\/div>\n<script>(function(){var M={\"invalid\":\"Masukkan alamat email yang valid.\",\"sending\":\"Mengirim\\u2026\",\"done\":\"Selesai! Periksa kotak masuk Anda dalam beberapa menit.\",\"err\":\"Terjadi kesalahan, silakan coba lagi.\",\"net\":\"Kesalahan jaringan, silakan coba lagi.\",\"srv\":false};var b=document.getElementById('bjfff2144');if(!b)return;var f=b.querySelector('form'),m=b.querySelector('.bjf-ff-msg');f.addEventListener('submit',function(e){e.preventDefault();var d=new FormData(f);if(!\/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$\/.test(d.get('email')||'')){m.style.color='#b42318';m.textContent=M.invalid;return;}var btn=f.querySelector('button');btn.disabled=true;m.style.color='#44505f';m.textContent=M.sending;fetch('\/wp-json\/bjf\/v1\/subscribe',{method:'POST',body:d}).then(function(r){return r.json()}).then(function(j){if(j&&j.ok){m.style.color='#1a7f4b';m.textContent=M.done;f.querySelectorAll('input,button').forEach(function(x){x.disabled=true});if(window.gtag)gtag('event','generate_lead',{form_source:d.get('source')});if(window.fbq)fbq('track','Lead',{content_name:d.get('source')});}else{btn.disabled=false;m.style.color='#b42318';m.textContent=(M.srv&&j&&j.msg)||M.err;}}).catch(function(){btn.disabled=false;m.style.color='#b42318';m.textContent=M.net;});});})();<\/script>\n<\/div>\n<h2 id=\"iof-faq\">Pertanyaan yang sering diajukan<\/h2>\n<div class=\"iof-faq\">\n<h3>Apa perbedaan antara IOC dan FOK?<\/h3>\n<p>Keduanya tereksekusi segera dan tidak pernah berdiam di order book. IOC menerima eksekusi parsial dan membatalkan sisa yang tidak terisi. FOK mengharuskan seluruh kuantitas terisi sekaligus; jika tidak, seluruh order dibatalkan dan tidak ada transaksi.<\/p>\n<h3>Apakah FOK lebih baik daripada IOC?<\/h3>\n<p>Secara umum tidak ada yang lebih baik. FOK cocok untuk trade yang posisi parsialnya tidak berguna atau mempersulit hedge. IOC biasanya lebih sering menghasilkan transaksi karena sebagian ukuran tereksekusi, tetapi algoritma Anda harus menangani eksekusi parsial dengan benar.<\/p>\n<h3>Bisakah order FOK terisi sebagian?<\/h3>\n<p>Tidak. Menurut definisi, order FOK terisi penuh atau tidak sama sekali. Jika Anda melihat eksekusi parsial, berarti order tersebut bukan FOK sejati di venue itu, jadi periksa bagaimana broker memetakan instruksinya.<\/p>\n<h3>Apa yang terjadi pada bagian order IOC yang tidak terisi?<\/h3>\n<p>Bagian itu langsung dibatalkan dan tidak pernah berdiam di order book. Di FIX, Anda menerima laporan eksekusi yang menutup order, biasanya sebagai Canceled atau Expired tergantung venue, dengan LeavesQty 0.<\/p>\n<h3>Apakah market order sama dengan order IOC?<\/h3>\n<p>Tidak persis. Market order tidak memiliki batas harga, sedangkan IOC biasanya memilikinya. Banyak venue memang menjalankan market order dengan perilaku IOC atau FOK, sehingga masa berlakunya bisa sama, tetapi hanya limit yang melindungi harga.<\/p>\n<h3>Apa nilai FIX untuk IOC dan FOK?<\/h3>\n<p>Pada field TimeInForce, tag 59, IOC bernilai 3 dan FOK bernilai 4. Jenis order ditetapkan secara terpisah pada tag 40, dengan 1 untuk market dan 2 untuk limit.<\/p>\n<h3>Apakah semua broker forex mendukung IOC dan FOK?<\/h3>\n<p>Tidak. Dukungan bergantung pada broker, platform, dan jenis koneksi. Koneksi FIX API biasanya memberikan kontrol lebih besar, tetapi setiap venue menerbitkan daftar kombinasi jenis order dan time in force yang diterimanya.<\/p>\n<\/div>\n<p class=\"iof-note\">Artikel ini bersifat edukatif dan bukan nasihat investasi. Order book dan model di sini adalah contoh ilustratif, bukan hasil trading. Trading valuta asing mengandung risiko kerugian yang signifikan.<\/p>\n<p><script type=\"application\/ld+json\">\n{\n  \"@context\": \"https:\/\/schema.org\",\n  \"@graph\": [\n    {\n      \"@type\": \"Article\",\n      \"headline\": \"IOC vs FOK, Market dan Limit Order: Jenis Order untuk Eksekusi Forex Algoritmik\",\n      \"description\": \"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit dalam algoritma forex.\",\n      \"image\": \"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\n      \"author\": {\n        \"@type\": \"Organization\",\n        \"name\": \"BJF Trading Group\",\n        \"url\": \"https:\/\/bjftradinggroup.com\/\"\n      },\n      \"publisher\": {\n        \"@type\": \"Organization\",\n        \"name\": \"BJF Trading Group\",\n        \"url\": \"https:\/\/bjftradinggroup.com\/\"\n      },\n      \"datePublished\": \"2026-11-04\",\n      \"dateModified\": \"2026-11-04\",\n      \"mainEntityOfPage\": \"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/\"\n    },\n    {\n      \"@type\": \"HowTo\",\n      \"name\": \"Cara mengonfigurasi eksekusi order untuk algoritma forex\",\n      \"step\": [\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 1,\n          \"name\": \"Hitung harga trade yang terlewat\",\n          \"text\": \"Hitung harga trade yang terlewat. Tentukan berapa biaya jika order tidak terisi. Untuk entri opsional, biayanya nol; untuk hedge atau exit, biayanya adalah risiko terbuka.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 2,\n          \"name\": \"Hitung harga terburuk yang dapat diterima\",\n          \"text\": \"Hitung harga terburuk yang dapat diterima. Ambil ekspektasi edge, kurangi komisi dan margin keamanan, lalu tetapkan limit pada titik impas tersebut.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 3,\n          \"name\": \"Pilih masa berlaku\",\n          \"text\": \"Pilih masa berlaku. Gunakan IOC atau FOK untuk mengambil likuiditas, serta Day, GTC, atau GTD untuk order yang menunggu.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 4,\n          \"name\": \"Tetapkan eksekusi terkecil yang berguna\",\n          \"text\": \"Tetapkan eksekusi terkecil yang berguna. Gunakan FOK, atau kuantitas minimum jika didukung, apabila eksekusi kecil tidak dapat menutup biaya tetap.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 5,\n          \"name\": \"Tulis aturan sisa order\",\n          \"text\": \"Tulis aturan sisa order. Tentukan percobaan ulang, jumlah maksimum percobaan, dan perlakuan terhadap sisa yang tidak ter-hedge.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 6,\n          \"name\": \"Pastikan aturan venue\",\n          \"text\": \"Pastikan aturan venue. Periksa pasangan jenis order dan TIF yang didukung, langkah ukuran, cara pelaporan sisa order, dan apakah last look berlaku.\"\n        },\n        {\n          \"@type\": \"HowToStep\",\n          \"position\": 7,\n          \"name\": \"Catat dan tinjau\",\n          \"text\": \"Catat dan tinjau. Rekam setiap order, termasuk penolakan dan pembatalan, lalu sesuaikan limit berdasarkan data eksekusi riil.\"\n        }\n      ]\n    },\n    {\n      \"@type\": \"FAQPage\",\n      \"mainEntity\": [\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Apa perbedaan antara IOC dan FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Keduanya tereksekusi segera dan tidak pernah berdiam di order book. IOC menerima eksekusi parsial dan membatalkan sisa yang tidak terisi. FOK mengharuskan seluruh kuantitas terisi sekaligus; jika tidak, seluruh order dibatalkan dan tidak ada transaksi.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Apakah FOK lebih baik daripada IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Secara umum tidak ada yang lebih baik. FOK cocok untuk trade yang posisi parsialnya tidak berguna atau mempersulit hedge. IOC biasanya lebih sering menghasilkan transaksi karena sebagian ukuran tereksekusi, tetapi algoritma Anda harus menangani eksekusi parsial dengan benar.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Bisakah order FOK terisi sebagian?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Tidak. Menurut definisi, order FOK terisi penuh atau tidak sama sekali. Jika Anda melihat eksekusi parsial, berarti order tersebut bukan FOK sejati di venue itu, jadi periksa bagaimana broker memetakan instruksinya.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Apa yang terjadi pada bagian order IOC yang tidak terisi?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Bagian itu langsung dibatalkan dan tidak pernah berdiam di order book. Di FIX, Anda menerima laporan eksekusi yang menutup order, biasanya sebagai Canceled atau Expired tergantung venue, dengan LeavesQty 0.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Apakah market order sama dengan order IOC?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Tidak persis. Market order tidak memiliki batas harga, sedangkan IOC biasanya memilikinya. Banyak venue memang menjalankan market order dengan perilaku IOC atau FOK, sehingga masa berlakunya bisa sama, tetapi hanya limit yang melindungi harga.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Apa nilai FIX untuk IOC dan FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Pada field TimeInForce, tag 59, IOC bernilai 3 dan FOK bernilai 4. Jenis order ditetapkan secara terpisah pada tag 40, dengan 1 untuk market dan 2 untuk limit.\"\n          }\n        },\n        {\n          \"@type\": \"Question\",\n          \"name\": \"Apakah semua broker forex mendukung IOC dan FOK?\",\n          \"acceptedAnswer\": {\n            \"@type\": \"Answer\",\n            \"text\": \"Tidak. Dukungan bergantung pada broker, platform, dan jenis koneksi. Koneksi FIX API biasanya memberikan kontrol lebih besar, tetapi setiap venue menerbitkan daftar kombinasi jenis order dan time in force yang diterimanya.\"\n          }\n        }\n      ]\n    }\n  ]\n}\n<\/script>\n<\/div>\n<p><\/p>","protected":false},"excerpt":{"rendered":"<p>IOC vs FOK dan jenis order lain yang harus dipilih algoritma: bagaimana market, limit, dan stop order dipadukan dengan time in force, satu order book dengan tiga hasil, tag FIX dan laporan eksekusi, last look, penempatan limit, penanganan eksekusi parsial, serta matriks strategi.<\/p>\n","protected":false},"author":1,"featured_media":15931,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[53,221],"tags":[],"class_list":["post-15930","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-arbitrage-software","category-forex-trading"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v28.7 (Yoast SEO v28.8) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>IOC vs FOK, Market &amp; Limit Order untuk Eksekusi Forex<\/title>\n<meta name=\"description\" content=\"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/bjftradinggroup.com\/id\/ioc-fok-order-types-algo-trading\/\" \/>\n<meta property=\"og:locale\" content=\"id_ID\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"IOC vs FOK, Market &amp; Limit Order untuk Eksekusi Forex\" \/>\n<meta property=\"og:description\" content=\"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/bjftradinggroup.com\/id\/ioc-fok-order-types-algo-trading\/\" \/>\n<meta property=\"og:site_name\" content=\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/bjftradinggroup\" \/>\n<meta property=\"article:published_time\" content=\"2026-11-04T15:22:19+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\" \/>\n\t<meta property=\"og:image:width\" content=\"1200\" \/>\n\t<meta property=\"og:image:height\" content=\"630\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/webp\" \/>\n<meta name=\"author\" content=\"Boris Fesenko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Ditulis oleh\" \/>\n\t<meta name=\"twitter:data1\" content=\"Boris Fesenko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimasi waktu membaca\" \/>\n\t<meta name=\"twitter:data2\" content=\"18 menit\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"},\"author\":{\"name\":\"Boris Fesenko\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\"},\"headline\":\"IOC vs FOK, Market dan Limit Order: Jenis Order untuk Eksekusi Forex Algoritmik\",\"datePublished\":\"2026-11-04T15:22:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"},\"wordCount\":41110,\"commentCount\":0,\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"articleSection\":[\"Arbitrage Software\",\"Forex trading\"],\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#respond\"]}],\"name\":\"IOC vs FOK, Market & Limit Order untuk Eksekusi Forex\",\"description\":\"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.\",\"publisher\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\",\"name\":\"IOC vs FOK, Market & Limit Order untuk Eksekusi Forex\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"datePublished\":\"2026-11-04T15:22:19+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\"},\"description\":\"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#breadcrumb\"},\"inLanguage\":\"id\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#primaryimage\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"contentUrl\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/2026\\\/11\\\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp\",\"width\":1200,\"height\":630,\"caption\":\"IOC vs FOK order types for algorithmic forex execution: an order book ladder with a limit line\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/ioc-fok-order-types-algo-trading\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bjftradinggroup.com\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"IOC vs FOK, Market and Limit Orders: Order Types for Algorithmic Forex Execution\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#website\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"name\":\"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.\",\"description\":\"FX Software pioneer since 2000\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/bjftradinggroup.com\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"id\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#\\\/schema\\\/person\\\/293df6ddb1f30db046ca9cd8928138a9\",\"name\":\"Boris Fesenko\",\"pronouns\":\"He\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"id\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g\",\"caption\":\"Boris Fesenko\"},\"description\":\"Born in 1971 in Ukraine, I graduated from East Ukrainian State University and later completed postgraduate studies at the same university, where I also wrote my PhD dissertation. In 2006, I moved to Canada. I am the founder of BJF Trading Group and specialize in the development and implementation of advanced arbitrage trading systems for the Forex and cryptocurrency markets, as well as other trading solutions.\",\"sameAs\":[\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\",\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.instagram.com\\\/bjftradinggroup\\\/\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/bjftradinggroup\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCapi2ct0Iv7axHJ93wN_bsQ\"],\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/id\\\/author\\\/boris\\\/\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/#organization\",\"name\":\"BJF Trading Group Inc.\",\"legalName\":\"BJF Trading Group Inc.\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/bjftradinggroup.com\\\/wp-content\\\/uploads\\\/logo.png\",\"width\":512,\"height\":512},\"foundingDate\":\"2000\",\"founder\":{\"@id\":\"https:\\\/\\\/bjftradinggroup.com\\\/about-boris-fesenko\\\/#person\"},\"address\":{\"@type\":\"PostalAddress\",\"addressRegion\":\"Ontario\",\"addressCountry\":\"CA\"},\"contactPoint\":[{\"@type\":\"ContactPoint\",\"contactType\":\"customer support\",\"email\":\"support@bjftradinggroup.com\",\"availableLanguage\":[\"English\",\"German\",\"Japanese\",\"Korean\",\"Spanish\",\"Portuguese\",\"Arabic\",\"Indonesian\",\"Vietnamese\"]}],\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/bjftradinggroup\",\"https:\\\/\\\/twitter.com\\\/BjfGroup\",\"https:\\\/\\\/www.youtube.com\\\/@bjftradinggroup\",\"https:\\\/\\\/t.me\\\/bjftradinggroup\",\"https:\\\/\\\/instagram.com\\\/bjftradinggroup\",\"https:\\\/\\\/www.linkedin.com\\\/company\\\/bjf-trading-group\\\/\"],\"knowsAbout\":[\"Forex arbitrage\",\"Cryptocurrency arbitrage\",\"Latency arbitrage\",\"News trading\",\"FIX API trading\",\"High-frequency trading\",\"Lock arbitrage\",\"Hedge arbitrage\",\"Pair trading\",\"Algorithmic trading software\"]}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"IOC vs FOK, Market & Limit Order untuk Eksekusi Forex","description":"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/bjftradinggroup.com\/id\/ioc-fok-order-types-algo-trading\/","og_locale":"id_ID","og_type":"article","og_title":"IOC vs FOK, Market & Limit Order untuk Eksekusi Forex","og_description":"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.","og_url":"https:\/\/bjftradinggroup.com\/id\/ioc-fok-order-types-algo-trading\/","og_site_name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","article_author":"https:\/\/www.facebook.com\/bjftradinggroup","article_published_time":"2026-11-04T15:22:19+00:00","og_image":[{"width":1200,"height":630,"url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","type":"image\/webp"}],"author":"Boris Fesenko","twitter_card":"summary_large_image","twitter_misc":{"Ditulis oleh":"Boris Fesenko","Estimasi waktu membaca":"18 menit"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#article","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"},"author":{"name":"Boris Fesenko","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9"},"headline":"IOC vs FOK, Market dan Limit Order: Jenis Order untuk Eksekusi Forex Algoritmik","datePublished":"2026-11-04T15:22:19+00:00","mainEntityOfPage":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"},"wordCount":41110,"commentCount":0,"image":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","articleSection":["Arbitrage Software","Forex trading"],"inLanguage":"id","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#respond"]}],"name":"IOC vs FOK, Market & Limit Order untuk Eksekusi Forex","description":"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.","publisher":{"@id":"https:\/\/bjftradinggroup.com\/#organization"}},{"@type":"WebPage","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/","url":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/","name":"IOC vs FOK, Market & Limit Order untuk Eksekusi Forex","isPartOf":{"@id":"https:\/\/bjftradinggroup.com\/#website"},"primaryImageOfPage":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage"},"image":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage"},"thumbnailUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","datePublished":"2026-11-04T15:22:19+00:00","author":{"@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9"},"description":"Penjelasan IOC vs FOK dengan contoh order book, tag FIX, last look, penanganan eksekusi parsial, dan model penempatan harga limit untuk algoritma forex.","breadcrumb":{"@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#breadcrumb"},"inLanguage":"id","potentialAction":[{"@type":"ReadAction","target":["https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/"]}]},{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#primaryimage","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","contentUrl":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/2026\/11\/article-cover-ioc-fok-order-types-algo-trading-1200x630-1.webp","width":1200,"height":630,"caption":"IOC vs FOK order types for algorithmic forex execution: an order book ladder with a limit line"},{"@type":"BreadcrumbList","@id":"https:\/\/bjftradinggroup.com\/ioc-fok-order-types-algo-trading\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/bjftradinggroup.com\/"},{"@type":"ListItem","position":2,"name":"IOC vs FOK, Market and Limit Orders: Order Types for Algorithmic Forex Execution"}]},{"@type":"WebSite","@id":"https:\/\/bjftradinggroup.com\/#website","url":"https:\/\/bjftradinggroup.com\/","name":"Forex &amp; Cryptocurrencies Arbitrage Software | BJF Trading Group Inc.","description":"FX Software pioneer since 2000","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/bjftradinggroup.com\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"id"},{"@type":"Person","@id":"https:\/\/bjftradinggroup.com\/#\/schema\/person\/293df6ddb1f30db046ca9cd8928138a9","name":"Boris Fesenko","pronouns":"He","image":{"@type":"ImageObject","inLanguage":"id","@id":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/007a433de26ad3eca139ef7f314d6081bf1b619eceb1e5d1f590b8e06f95f05c?s=96&r=g","caption":"Boris Fesenko"},"description":"Born in 1971 in Ukraine, I graduated from East Ukrainian State University and later completed postgraduate studies at the same university, where I also wrote my PhD dissertation. In 2006, I moved to Canada. I am the founder of BJF Trading Group and specialize in the development and implementation of advanced arbitrage trading systems for the Forex and cryptocurrency markets, as well as other trading solutions.","sameAs":["https:\/\/bjftradinggroup.com\/about-boris-fesenko","https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/www.instagram.com\/bjftradinggroup\/","https:\/\/www.linkedin.com\/in\/bjftradinggroup\/","https:\/\/www.youtube.com\/channel\/UCapi2ct0Iv7axHJ93wN_bsQ"],"url":"https:\/\/bjftradinggroup.com\/id\/author\/boris\/"},{"@type":"Organization","@id":"https:\/\/bjftradinggroup.com\/#organization","name":"BJF Trading Group Inc.","legalName":"BJF Trading Group Inc.","url":"https:\/\/bjftradinggroup.com\/","logo":{"@type":"ImageObject","url":"https:\/\/bjftradinggroup.com\/wp-content\/uploads\/logo.png","width":512,"height":512},"foundingDate":"2000","founder":{"@id":"https:\/\/bjftradinggroup.com\/about-boris-fesenko\/#person"},"address":{"@type":"PostalAddress","addressRegion":"Ontario","addressCountry":"CA"},"contactPoint":[{"@type":"ContactPoint","contactType":"customer support","email":"support@bjftradinggroup.com","availableLanguage":["English","German","Japanese","Korean","Spanish","Portuguese","Arabic","Indonesian","Vietnamese"]}],"sameAs":["https:\/\/www.facebook.com\/bjftradinggroup","https:\/\/twitter.com\/BjfGroup","https:\/\/www.youtube.com\/@bjftradinggroup","https:\/\/t.me\/bjftradinggroup","https:\/\/instagram.com\/bjftradinggroup","https:\/\/www.linkedin.com\/company\/bjf-trading-group\/"],"knowsAbout":["Forex arbitrage","Cryptocurrency arbitrage","Latency arbitrage","News trading","FIX API trading","High-frequency trading","Lock arbitrage","Hedge arbitrage","Pair trading","Algorithmic trading software"]}]}},"_links":{"self":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/posts\/15930","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/comments?post=15930"}],"version-history":[{"count":37,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/posts\/15930\/revisions"}],"predecessor-version":[{"id":15972,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/posts\/15930\/revisions\/15972"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/media\/15931"}],"wp:attachment":[{"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/media?parent=15930"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/categories?post=15930"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bjftradinggroup.com\/id\/wp-json\/wp\/v2\/tags?post=15930"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}