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.

  1. Je, unahitaji guaranteed fill sasa hivi, na sio kabisa ikiwa huwezi kupata sasa? → FOK.
  2. Je, unataka fill nyingi unayoweza kupata sasa, kukubali partials, hakuna resting order? → FAK.
  3. 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.

Maswali yanayoulizwa mara kwa mara

Ni nini FOK kwenye Polymarket?
Fill-or-Kill. Order lazima ifill kwa full mara moja au inacancellewa - hakuna partial fills, hakuna resting kwenye book. Tunatumia FOK by default kwa buys katika production trader yetu kwa sababu inaondoa phantom-fill ambiguity (order ni ofuli filled au full gone, kamwe haijawa nusu-stuck).
Ni nini FAK kwenye Polymarket?
Fill-and-Kill (pia inaitwa IOC, Immediate-or-Cancel). Order inachukua liquidity yoyote inayopatikana mara moja na inacancelle unfilled remainder. Inafaa unapokubali partial fills lakini huwezi kutaka kupumzika. Haraka kuliko FOK katika fragmented order books.
Ni nini GTC kwenye Polymarket?
Good-til-Cancelled. Order inapumzika kwenye book hadi ifilliwe au uicancel. GTC ndiyo unayotumia kuwa maker (kutoa liquidity), kupata rebates, na kuepuka taker fees. Tunatumia GTC kwa sells katika production setup yetu ili tucapture spread kwenye exits.
Je, bot yangu itumie limit orders au market orders?
Limit orders karibu daima. Market orders zinalipa taker fee (0.75% hadi 1.80%) na spread; limit orders zinapata maker rebate (20-25% ya taker fees). Sababu pekee nzuri ya kutumia market order ni wakati news imehit na price iko karibu kuhama zaidi ya spread kabla limit yako haijaweza kufill.
Je, Polymarket inasaidia stop-loss orders natively?
Hapana. Stop-loss ni client-side concept: bot yako inaangalia price, na wakati trigger condition inafikiwa, inaweka market au FAK sell order. Exchange haina native stop primitive, kwa hivyo lazima ujenge logic katika bot yako.
Ni nini order minimums?
Market orders: 1 USD minimum notional. Limit orders: shares 5 minimum. Baadhi ya thin markets zinareject orders ndogo sana - SDK inarudisha specific error code unaoweza kudetect na re-size dhidi yake.