Initial commit: Polymarket Whale Watcher
- Add trade monitoring and whale detection system - Add LLM-powered trade analysis - Add market data fetching from Polymarket API - Include example environment configuration - Add automated report generation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
"""LLM decision models."""
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
from enum import Enum
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class TradeAction(str, Enum):
|
||||
"""Recommended trade action."""
|
||||
|
||||
BUY = "BUY"
|
||||
SELL = "SELL"
|
||||
HOLD = "HOLD" # Do not trade
|
||||
|
||||
|
||||
class TraderCredibility(str, Enum):
|
||||
"""Trader credibility level based on leaderboard ranking."""
|
||||
|
||||
HIGH = "HIGH" # Top 100
|
||||
MEDIUM = "MEDIUM" # 100-500
|
||||
LOW = "LOW" # 500+
|
||||
UNKNOWN = "UNKNOWN" # Not on leaderboard
|
||||
|
||||
|
||||
class TradeRecommendation(BaseModel):
|
||||
"""Trade recommendation from LLM."""
|
||||
|
||||
action: TradeAction
|
||||
outcome: str # Which outcome to trade
|
||||
confidence: float = Field(ge=0.0, le=1.0) # 0-1 confidence score
|
||||
suggested_price: Optional[float] = None
|
||||
suggested_size_percent: float = Field(default=0.1, ge=0.0, le=1.0) # % of balance
|
||||
reasoning: str = ""
|
||||
|
||||
# Insider trading assessment fields
|
||||
insider_trading_likelihood: float = Field(default=0.0, ge=0.0, le=1.0) # 0-1 likelihood
|
||||
trader_credibility: TraderCredibility = TraderCredibility.UNKNOWN
|
||||
insider_evidence: str = "" # Evidence supporting insider trading assessment
|
||||
|
||||
|
||||
class LLMDecision(BaseModel):
|
||||
"""Complete LLM decision for a whale trade."""
|
||||
|
||||
whale_trade_id: str
|
||||
market_id: str
|
||||
analysis: str # Full LLM analysis text
|
||||
recommendation: TradeRecommendation
|
||||
created_at: datetime = Field(default_factory=datetime.utcnow)
|
||||
executed: bool = False
|
||||
execution_result: Optional[str] = None
|
||||
|
||||
@property
|
||||
def should_trade(self) -> bool:
|
||||
"""Check if we should execute this trade."""
|
||||
return (
|
||||
self.recommendation.action != TradeAction.HOLD
|
||||
and self.recommendation.confidence >= 0.6
|
||||
)
|
||||
Reference in New Issue
Block a user