polymarket-trading
43
总安装量
43
周安装量
#4891
全站排名
安装命令
npx skills add https://github.com/niller2005/polyflup --skill polymarket-trading
Agent 安装分布
claude-code
24
opencode
19
gemini-cli
19
antigravity
16
codex
16
cursor
14
Skill 文档
Terminology & Concepts
- Exit Plan: Automated limit sell at $0.99 placed as soon as position opens.
- Hedged Reversal: Holding both UP and DOWN positions simultaneously when trend flips.
- Midpoint Stop Loss: Market sell triggered by midpoint price dropping to/below $0.30.
- Scale-In: Adding capital to winning positions via Market Orders (FAK).
- Underdog: Side trading below $0.50. Requires >40% confidence for entry.
- Tick Size: Minimum price increment allowed for a market (e.g., 0.01 or 0.001).
Strategy Nuances
Confidence Calculation Methods (v0.5.0+)
The bot supports two confidence calculation methods for A/B testing:
Additive Method (Default):
- Directional voting system with weighted signal aggregation
- Confidence = (winning_total – (losing_total à 0.2)) à lead_lag_bonus
- Trend agreement bonus (1.1x) when Binance and Polymarket momentum align
Bayesian Method (Alternative):
- Statistically principled probability theory using log-odds
- Starts with market prior from Polymarket orderbook
- Accumulates evidence via log-likelihood ratios:
evidence = (score - 0.5) à 2 # Scale to -1 to +1 log_LR = evidence à 3.0 à quality # Quality factor (0.7-1.5x) log_odds += log_LR à weight confidence = 1 / (1 + exp(-log_odds)) - Naturally handles conflicting signals (they cancel out)
- Market prior anchors calculation to Polymarket reality
A/B Testing:
- Both methods calculated simultaneously on every trade
- Results stored in database for comparison
- Toggle via
BAYESIAN_CONFIDENCEenvironment variable (default: NO) - Compare win rates after 100+ trades:
SELECT AVG(CASE WHEN bias='UP' THEN edge ELSE -edge END) as avg_edge, COUNT(*) as total, SUM(CASE WHEN result='WIN' THEN 1 ELSE 0 END) as wins, CAST(wins AS REAL) / COUNT(*) as win_rate FROM trades WHERE settled = 1 GROUP BY method;
Exit Plan Optimization
- Smart Exit Pricing:
- High confidence trades (â¥85%): Use $0.999 exit price for maximum profit
- Standard trades: Use $0.99 exit price (configurable via EXIT_PRICE_TARGET)
- Only apply 0.999 for winning positions (UP side with price ⥠entry OR DOWN side with price ⤠entry)
- Immediate Placement: Exit plans placed immediately after position fill (no age requirement)
- Real-Time Size Validation: Exit order size validated every 1-second cycle
- Repair Logic:
- Automatic repair if exit order size mismatches database size
- Uses 0.05 share threshold to prevent infinite repair loops from exchange rounding
- Cancels incorrect order and places new one with correct size
- Adoption Logic: Discovers and adopts existing SELL orders on exchange to prevent duplicates
Scale-In Strategy (Dynamic)
- Default
SCALE_IN_TIME_LEFT: 450s (7.5 minutes) - Dynamic early entry timing based on confidence (
edge) and midpoint price:- 12m left:
edge>= 90% and price >= $0.80 - 9m left:
edge>= 80% and price >= $0.70 - 7m left:
edge>= 70% and price >= $0.65
- 12m left:
- Uses Market Orders (FAK) to ensure immediate fills
- Multiplier: 1.5x (adds 150% more capital, creating 2.5x total position)
Signal Bonuses
- Trend Agreement Bonus: 1.1x multiplier if Binance and Polymarket trends align
- Lead/Lag Bonus: 1.2x bonus or 0.8x penalty based on cross-exchange consistency
Technical Requirements
- Precision: Use strict 0.0001 threshold for balance syncing
- Minimum Size: Polymarket enforces a 5.0 share minimum for limit orders
- Rounding: Use
truncate_float(value, 2)for all order sizes to match exchange precision
Fees & Rebates (15-Minute Crypto Markets)
- Taker Fees: Applied ONLY to 15-minute crypto markets.
- Fee Deduction:
- BUY: Fee is taken in Tokens from the proceeds.
- SELL: Fee is taken in USDC from the proceeds.
- Effective Rates:
- Buying: Peaks at ~1.6% at $0.50 price.
- Selling: Peaks at ~3.7% at $0.30 price. Selling is generally more expensive because USDC is taken directly.
- Fee Precision: Rounded to 4 decimal places (min 0.0001 USDC). Small trades at extremes might be fee-free.
- Maker Rebates: Distributed daily in USDC to makers who provide liquidity that gets filled.
- Strategy Implications:
- Prefer Maker orders (Limit orders that add liquidity) to avoid fees and potentially earn rebates.
- Selling at low prices as a taker is particularly costly.
Common Code Patterns
Market Data
from src.trading.orders import get_midpoint, get_spread, check_liquidity
# Get accurate midpoint price
price = get_midpoint(token_id)
# Check if liquidity is good
if check_liquidity(token_id, size=100, warn_threshold=0.05):
# Safe to trade
Order Placement
from src.trading.orders import place_batch_orders, place_market_order
# Batch Orders
results = place_batch_orders(orders)
# Market Sell
result = place_market_order(token_id, amount=10.0, side="SELL", order_type="FAK")
Standard Emoji Guide
Position Monitoring
- ð Monitoring positions
- ð UP side position (winning if PnL positive)
- ð DOWN side position (winning if PnL positive)
- ð¦ Position size display
- ð§® PnL percentage display
Position Status
- â° Exit plan active (limit sell order placed)
- â³ Exit plan pending (waiting for conditions)
- âï¸ Exit skipped (position below MIN_SIZE threshold)
- ð Scaled in position indicator
Order Lifecycle
- ð Trade execution / Entry
- ð¯ Limit order placement
- â Success / Order filled
- ð§¹ Order cancellation
- â Error/Failure
Risk Management
- ð Stop loss triggered
- ð Reversal / Trend flip
- â ï¸ Warning / Validation issue
- ð§ Position repair/sync
System
- ð° Money/Balance/Settlement
- ð Geographic restriction
- ð§ Ghost trade detection