这份说明对应当前轻量版 GTC/PostOnly market maker 主路径。主策略目标是 maker 双边挂单、避免 taker cross、尽量保留队列位置。
当前 .env 和 .env.example 只保留主策略需要频繁确认或调参的变量。代码里仍有少量旧工具/实验模式变量的默认值,但不建议放进主 .env,避免互相影响。
PK=your_private_key_here
FUNDER_ADDRESS=your_polymarket_wallet_address
SIGNATURE_TYPE=2
POLYMARKET_CLOB_HOST=https://clob.polymarket.com
CHAIN_ID=137
MARKET_SOURCE=env
CONDITION_ID=
TOKEN_ID_YES=
TOKEN_ID_NO=
DRY_RUN=true
ORDER_NOTIONAL_USDC=5
REFRESH_INTERVAL_SECONDS=8
MIN_PRICE=0.03
MAX_PRICE=0.97
MAX_MARKET_EXPOSURE_USDC=25
MAX_TOKEN_EXPOSURE_USDC=30
MAX_GLOBAL_EXPOSURE_USDC=80
INVENTORY_SKEW_THRESHOLD_USDC=18
INVENTORY_SKEW_BPS=60
STOP_LOSS_PCT=12
TAKE_PROFIT_PCT=8
MAX_MARKET_LOSS_USDC=8
MAX_MIDPOINT_MOVE_BPS=350
CLOSE_ONLY_HOURS_BEFORE_END=24
CLOSE_ONLY_ON_GAME_START=true
RISK_OFF_AFTER_STOP=true
EMERGENCY_EXIT_ENABLED=true
EMERGENCY_EXIT_LOSS_PCT=6
EMERGENCY_EXIT_MIDPOINT_MOVE_BPS=800
EMERGENCY_EXIT_IMBALANCE_THRESHOLD=0.75
EMERGENCY_EXIT_MAX_SHARES=1000000000
DIRECTIONAL_SKEW_FACTOR=0.05
PREDICTION_LATENCY_MS=180
PREDICTION_EDGE_BPS=120
MIN_PREDICTION_CONFIDENCE=0.35
ORDERBOOK_IMBALANCE_LEVELS=3
CANCEL_ON_START=true
ORDER_TYPE=GTC
POST_ONLY=true
LOG_FILE=logs/market_maker.logPK:钱包私钥。DRY_RUN=false时必填。不要提交到 git。FUNDER_ADDRESS:Polymarket proxy/funder wallet 地址。实盘签名和下单会用到。SIGNATURE_TYPE:Polymarket CLOB 签名类型。你当前使用1,如果认证失败再按账户类型调整。POLYMARKET_CLOB_HOST:CLOB API 地址,生产环境保持https://clob.polymarket.com。CHAIN_ID:Polygon 主网是137,一般不要改。
MARKET_SOURCE=env:主策略推荐固定使用 env 手动指定市场,减少自动选市场的不确定性。CONDITION_ID:目标市场 condition id。用于撤该市场订单和查询市场信息。TOKEN_ID_YES/TOKEN_ID_NO:YES/NO outcome token id。推荐显式填写,避免自动解析错市场。
说明:QUESTION 只是人类备注,代码不读取,所以已从 .env 移除。需要备注时建议写到单独笔记或 commit message。
DRY_RUN:true只打印拟挂单;false实盘下单。改成实盘前先确认市场、token、风控。ORDER_NOTIONAL_USDC:单笔目标订单名义金额。资金小或盘口薄时建议小一点。REFRESH_INTERVAL_SECONDS:主循环间隔。太小会更频繁查询、撤换和触发 rate pressure;太大会降低响应速度。MIN_PRICE/MAX_PRICE:最终报价硬边界。防止异常预测把订单打到极端价格。
MAX_MARKET_EXPOSURE_USDC:单市场最大持仓风险。达到后不再新增 buy quote。MAX_TOKEN_EXPOSURE_USDC:单 outcome token 最大持仓风险。防止单边库存过大。MAX_GLOBAL_EXPOSURE_USDC:机器人视角的全局风险上限。INVENTORY_SKEW_THRESHOLD_USDC:某 token 持仓超过该值后,报价 reason 会进入库存偏斜状态。INVENTORY_SKEW_BPS:库存越多,买价越保守的强度。STOP_LOSS_PCT:单边仓位回撤超过该比例时触发 risk exit / close-only 逻辑。TAKE_PROFIT_PCT:单边仓位盈利超过该比例时优先挂卖单退出。MAX_MARKET_LOSS_USDC:当前市场未实现亏损超过该美元数时进入 close-only。MAX_MIDPOINT_MOVE_BPS:midpoint 单轮跳变过大时暂停新买单,避免赛况/新闻冲击。CLOSE_ONLY_HOURS_BEFORE_END:临近结束前只减仓不开新仓。填0表示关闭该规则。CLOSE_ONLY_ON_GAME_START:体育市场使用game_start_time时,是否在开赛后禁止新买单。默认true更安全;如果你明确要做 live sports market,设为false。RISK_OFF_AFTER_STOP:触发止损后是否保持 risk-off。true更保守;false会更快恢复。EMERGENCY_EXIT_ENABLED:是否启用紧急 maker 退出。触发后不再给该 token 新增 buy,只挂 aggressive maker sell。EMERGENCY_EXIT_LOSS_PCT:单 token 持仓亏损达到该比例时触发紧急退出。EMERGENCY_EXIT_MIDPOINT_MOVE_BPS:midpoint 单轮向持仓反方向移动达到该 bps 时触发紧急退出。EMERGENCY_EXIT_IMBALANCE_THRESHOLD:盘口深度强烈逆向时触发紧急退出,范围0到1。EMERGENCY_EXIT_MAX_SHARES:单次紧急退出最多挂出的 shares 数。默认很大,等于尽量全仓退出;想拆单可调小。
DIRECTIONAL_SKEW_FACTOR:根据 YES/NO 市场信念调整报价的强度。当前建议0.05。过大容易让报价偏离盘口,导致挂不上或成交质量差。PREDICTION_LATENCY_MS:预测窗口。你当前实测为180,所以保持180。PREDICTION_EDGE_BPS:order book imbalance 对预测价格的影响强度。MIN_PREDICTION_CONFIDENCE:低于该置信度时预测器回到当前 midpoint,不主动偏移。ORDERBOOK_IMBALANCE_LEVELS:计算盘口不平衡时读取前几档深度。
当前默认预测器会记录 horizon=180ms、OBI、trade flow、volatility 和 edge,方便从日志判断预测是否过强或过弱。
CANCEL_ON_START:启动时撤掉该市场旧订单。实盘建议保持true,避免继承旧报价。ORDER_TYPE=GTC:主策略。订单持续挂在簿上等待自然成交。POST_ONLY=true:强制 maker。若报价会 cross book,交易所拒单,bot 记录[POST_ONLY],不会当成成功挂单。LOG_FILE:日志文件路径。
订单同步现在由 order_reconciler.py 负责:目标价格和数量不变时保留原 GTC 单;只有订单缺失、变价、变数量或出现 stale 订单时才撤换。
PRICE_SPREAD_BPS:旧 spread 报价参数;当前 GTC/PostOnly 主路径使用预测 fair value、库存偏斜和 tick-safe 限价。FOK_PRICE_BUFFER_BPS/FOK_MIN_EDGE_BPS:只属于实验 FOK/taker 方案;当前主策略不使用。CANCEL_UNFILLED_AFTER_MS:FOK 或短 TTL 思路的变量;当前 GTC 挂单通过 reconciliation 管理。COUNT_EXISTING_POSITIONS_IN_GLOBAL_LIMIT:高级风控开关。默认代码仍支持,但主配置采用 bot exposure 口径,减少和账户旧仓位互相干扰。AUTO_SELECT_REWARD_MARKET/PREFER_SPORTS:自动选 rewards 市场用。主策略推荐手动指定 token,避免跑错市场。GOOGLE_SHEET_WORKSHEET/GOOGLE_SHEET_LIMIT/SPREADSHEET_URL:Google Sheet/旧工具链使用;当前轻量主策略不需要。BROWSER_ADDRESS:旧工具或 fallback 可读;当前主策略使用FUNDER_ADDRESS。CLOB_API_KEY/CLOB_SECRET/CLOB_PASS_PHRASE:可选 L2 credentials。当前实盘会用PK自动 derive,通常不需要放进.env。QUESTION:人类备注,代码不读取。
ORDER_TYPE和POST_ONLY:主策略必须是GTC + true。GTC + false可能吃单;FOK是实验路径。ORDER_NOTIONAL_USDC、MAX_MARKET_EXPOSURE_USDC、MAX_TOKEN_EXPOSURE_USDC:单笔金额不能大到很快撞上风险上限。STOP_LOSS_PCT、MAX_MARKET_LOSS_USDC、RISK_OFF_AFTER_STOP:三者共同决定何时停止加仓、是否长期停机。DIRECTIONAL_SKEW_FACTOR、INVENTORY_SKEW_BPS、PREDICTION_EDGE_BPS:三者都会移动目标价格,调大时要一个一个调,不要一起加。REFRESH_INTERVAL_SECONDS和 order reconciliation:间隔越短,报价越敏感;reconciliation 会减少不必要撤单,但预测变化过大仍会触发换价。