Polymarket Bot Tutorial · Sura ya 10 kati ya 32
Polymarket order types zimeelezwa kwa bot builders: Fill-or-Kill (FOK), Fill-and-Kill (FAK), Good-til-Cancelled (GTC), na limit-vs-market trade-offs. Na production-grade decision rules.
Sura hii inafunika nini
Order-type confusion ni single most expensive class ya bug kwa bot builders wapya. Kutuma GTC ulipohitaji FOK kunazalisha missed entries; kutuma FOK ulipohitaji GTC kunaacha resting orders zinazofill kwa terrible prices masaa baadaye. Sura hii ni decision tree na production defaults ambazo zimeshikilia katika maelfu ya orders.
- Quick decision tree
- FOK: unapolazimika kufill au kuskip
- FAK: wakati partials zinakubalika
- GTC: unapotaka kupumzika kwenye book
- Limit vs market na spread tax
- Production defaults zetu (FOK buys, GTC sells)
- Code: weka kila order type
Quick decision tree
Maswali matatu yanaamua kila order placement.
- Je, unahitaji guaranteed fill sasa hivi, na sio kabisa ikiwa huwezi kupata sasa? → FOK.
- Je, unataka fill nyingi unayoweza kupata sasa, kukubali partials, hakuna resting order? → FAK.
- Je, unataka kupumzika kwenye book kwa price yako na kusubiri mtu aje kwako? → GTC.
Ndivyo. Bot bugs nyingi karibu na order types zinakuja kutoka kuchagua #1 wakati ulitaka #3 ("buy" inageuka "hakuna position kwa sababu spread ilikuwa pana sana") au kuchagua #3 wakati ulitaka #1 ("buy" inageuka resting order inayofill masaa baadaye katika wakati mbaya).
FOK: unapolazimika kufill au kuskip
Fill-or-Kill inamatch entire order kwa requested price au better, instantly. Ikiwa full size haiwezi kufilliwa instantly, order inarejected na hakuna kitu kinachotokea. Hakuna resting, hakuna partial.
Tumia FOK kwa: news-arbitrage entries (unataka tu kuingia kwenye news price, sio mahali soko liko katika sekunde 30); take-profit exits kwenye specific target ambapo partials zingechanganya bookkeeping; wakati wowote strategy inadhania atomic execution.
Trade-off: FOK inarejects mara nyingi zaidi kuliko order types nyingine, hasa kwenye illiquid books. Daima kuwa na fallback path - re-evaluate strategy condition na retry ikiwa bado valid, au songa mbele.
FAK: wakati partials zinakubalika
Fill-and-Kill (pia inaitwa "immediate or cancel") inamatch nyingi inayoweza sasa hivi, kisha inacancel unfilled remainder. Unaweza kupata full size, partial, au sifuri.
Tumia FAK kwa: market-buy yenye specific price ceiling (lift ask hadi N cents juu ya mid); sweep-the-book sells unapopunguza inventory urgently; strategy yoyote ambapo "baadhi ya position ni bora kuliko hakuna."
Operationally trickier kuliko FOK kwa sababu bot lazima ijue kama ilipata 100% au 30% kabla ya kuamua hatua inayofuata. Fill response inajumuisha filled_size field - daima isome.
GTC: unapotaka kupumzika kwenye book
Good-til-Cancelled inarpumzika kwenye book kwa price yako hadi ifilliwe au ucancele. Hakuna timeout (order types nyingine katika v2 API zinajumuisha GTD na expiry).
Tumia GTC kwa: take-profit sells kwa +Nc juu ya entry; stop-loss sells kwa -Nc chini ya entry (na caveats - angalia hapa chini); market-making both-sided quotes; position yoyote ambapo bot iko tayari kusubiri better price.
Hard rule: GTC inahitaji ≥ shares 5. Orders chini ya shares 5 zinarejected na CLOB na Size (X) lower than the minimum: 5. Bot inayopost GTC sell ya shares 4 silently inashindwa kuweka exit na inariden position hadi resolution. Daima check inventory ≥ 5 kabla ya kupost GTC; fallback kwa FAK au ride-to-resolve ikiwa ndogo.
Limit vs market na spread tax
Kila Polymarket order kiufundi ni limit order - hata kile bots wanachoita "market buy" inaspecify price ceiling. Tofauti ni kama price hiyo iko kwenye best ask (effectively market order, itafill dhidi ya book) au chini yake (itapumzika kwenye book).
Spread tax ni cost ya crossing - bid 0.45, ask 0.47, mid 0.46. Round trip inayonunua ask na kuuza bid inalipa cents 2 kwa share. Kwenye strategy ya 60% win-rate na targets za +3c/-4c, 2c spread hiyo ndio tofauti kati ya faida na hasara.
Maker pattern (post GTC kwenye bid au chini, subiri kuhit) inacollect spread badala ya kuilipa. Cost ni uncertain fill - unaweza usihit kamwe. Kwa high-conviction trades, lipa spread. Kwa passive accumulation, fanya kazi book.
Production defaults zetu (FOK buys, GTC sells)
Pattern ambayo production bots zetu wengi huingia:
- Entries: FOK kwa ask + cents 0-2. Ikiwa bot iliamua kununua, inapaswa kununua sasa au kuskip. Kupumzisha entry order mara chache ni worth - situation iliyotrigger buy decision inabadilika haraka kuliko order itapumzika.
- Take-profit exits: GTC kwa target price. Imposted mara moja baada ya entry fills. Tunaruhusu soko lije kwetu; hatuchase bid chini. Na ≥ shares 5.
- Stop-loss: case-by-case. GTC inafanya kazi kwa slow strategies ambapo price changes ni bounded. Kwa fast-moving markets GTC stop haitafill ikiwa price inafly through; tunaride hadi resolution katika option-D fashion (memory: trader-gtc-sell.md).
Pattern ni conservative - fills chache, slippage kidogo. Aggressive variant inatumia FAK entries na FAK exits, ikikubali partial fills. Chagua moja na ukae consistent; kuchanganya per-trade decisions kunaalika confusion.
Code: weka kila order type
Reference order placement katika Python na py-clob-client (v0.34.6).
from py_clob_client.client import ClobClient
from py_clob_client.clob_types import OrderArgs, OrderType
c = ClobClient(host="https://clob.polymarket.com", chain_id=137,
key=PRIVATE_KEY, signature_type=2, funder=PROXY)
c.set_api_creds(creds)
# FOK buy: fill 10 shares at price 0.45 or skip
args = OrderArgs(token_id=TOKEN, price=0.45, size=10, side="BUY")
resp = c.create_and_post_order(args, OrderType.FOK)
# FAK buy: take as much as you can at 0.45 or below
resp = c.create_and_post_order(args, OrderType.FAK)
# GTC sell: rest a sell at 0.85 for 10 shares
sell_args = OrderArgs(token_id=TOKEN, price=0.85, size=10, side="SELL")
resp = c.create_and_post_order(sell_args, OrderType.GTC)
Operations sawa katika Node na @polymarket/clob-client-v2: badilisha OrderType.FOK na clob.OrderType.GTC n.k.; method ni createAndPostOrder. negRisk flag (sura ya 11) lazima iwekewe katika second argument kwa multi-outcome markets - kuikosa inaroute kwa wrong exchange contract.














