clodds 1.2.9 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/skills/bundled/acp/SKILL.md +188 -0
  2. package/dist/skills/bundled/acp/index.d.ts +0 -3
  3. package/dist/skills/bundled/acp/index.js +1 -1
  4. package/dist/skills/bundled/acp/index.js.map +1 -1
  5. package/dist/skills/bundled/agentbets/SKILL.md +19 -0
  6. package/dist/skills/bundled/agentbets/index.js +1 -1
  7. package/dist/skills/bundled/agentbets/index.js.map +1 -1
  8. package/dist/skills/bundled/ai-strategy/SKILL.md +111 -0
  9. package/dist/skills/bundled/ai-strategy/index.js +1 -1
  10. package/dist/skills/bundled/ai-strategy/index.js.map +1 -1
  11. package/dist/skills/bundled/alerts/SKILL.md +87 -0
  12. package/dist/skills/bundled/analytics/SKILL.md +252 -0
  13. package/dist/skills/bundled/analytics/index.js +2 -2
  14. package/dist/skills/bundled/analytics/index.js.map +1 -1
  15. package/dist/skills/bundled/arbitrage/SKILL.md +287 -0
  16. package/dist/skills/bundled/arbitrage/index.js +6 -1
  17. package/dist/skills/bundled/arbitrage/index.js.map +1 -1
  18. package/dist/skills/bundled/auto-reply/SKILL.md +285 -0
  19. package/dist/skills/bundled/auto-reply/index.js +2 -2
  20. package/dist/skills/bundled/auto-reply/index.js.map +1 -1
  21. package/dist/skills/bundled/automation/SKILL.md +242 -0
  22. package/dist/skills/bundled/automation/index.js +2 -2
  23. package/dist/skills/bundled/automation/index.js.map +1 -1
  24. package/dist/skills/bundled/backtest/SKILL.md +225 -0
  25. package/dist/skills/bundled/bags/SKILL.md +131 -0
  26. package/dist/skills/bundled/bankr/SKILL.md +114 -0
  27. package/dist/skills/bundled/betfair/SKILL.md +113 -0
  28. package/dist/skills/bundled/binance-futures/SKILL.md +84 -0
  29. package/dist/skills/bundled/binance-futures/index.d.ts +0 -3
  30. package/dist/skills/bundled/binance-futures/index.js +1 -2
  31. package/dist/skills/bundled/binance-futures/index.js.map +1 -1
  32. package/dist/skills/bundled/botchan/SKILL.md +66 -0
  33. package/dist/skills/bundled/botchan/index.d.ts +0 -3
  34. package/dist/skills/bundled/botchan/index.js +0 -1
  35. package/dist/skills/bundled/botchan/index.js.map +1 -1
  36. package/dist/skills/bundled/bridge/SKILL.md +215 -0
  37. package/dist/skills/bundled/bridge/index.js +6 -0
  38. package/dist/skills/bundled/bridge/index.js.map +1 -1
  39. package/dist/skills/bundled/bybit-futures/SKILL.md +84 -0
  40. package/dist/skills/bundled/bybit-futures/index.d.ts +0 -3
  41. package/dist/skills/bundled/bybit-futures/index.js +0 -1
  42. package/dist/skills/bundled/bybit-futures/index.js.map +1 -1
  43. package/dist/skills/bundled/clanker/SKILL.md +125 -0
  44. package/dist/skills/bundled/clanker/index.d.ts +0 -3
  45. package/dist/skills/bundled/clanker/index.js +0 -1
  46. package/dist/skills/bundled/clanker/index.js.map +1 -1
  47. package/dist/skills/bundled/copy-trading/SKILL.md +285 -0
  48. package/dist/skills/bundled/copy-trading/index.js +15 -8
  49. package/dist/skills/bundled/copy-trading/index.js.map +1 -1
  50. package/dist/skills/bundled/copy-trading-solana/SKILL.md +66 -0
  51. package/dist/skills/bundled/credentials/SKILL.md +261 -0
  52. package/dist/skills/bundled/credentials/index.js +4 -0
  53. package/dist/skills/bundled/credentials/index.js.map +1 -1
  54. package/dist/skills/bundled/crypto-hft/SKILL.md +121 -0
  55. package/dist/skills/bundled/crypto-hft/index.js +18 -3
  56. package/dist/skills/bundled/crypto-hft/index.js.map +1 -1
  57. package/dist/skills/bundled/dca/SKILL.md +27 -0
  58. package/dist/skills/bundled/dex/SKILL.md +92 -0
  59. package/dist/skills/bundled/dex/index.js +77 -29
  60. package/dist/skills/bundled/dex/index.js.map +1 -1
  61. package/dist/skills/bundled/divergence/SKILL.md +83 -0
  62. package/dist/skills/bundled/doctor/SKILL.md +267 -0
  63. package/dist/skills/bundled/doctor/index.js +2 -8
  64. package/dist/skills/bundled/doctor/index.js.map +1 -1
  65. package/dist/skills/bundled/drift/SKILL.md +53 -0
  66. package/dist/skills/bundled/drift-sdk/SKILL.md +103 -0
  67. package/dist/skills/bundled/drift-sdk/index.d.ts +0 -3
  68. package/dist/skills/bundled/drift-sdk/index.js +0 -1
  69. package/dist/skills/bundled/drift-sdk/index.js.map +1 -1
  70. package/dist/skills/bundled/edge/SKILL.md +84 -0
  71. package/dist/skills/bundled/embeddings/SKILL.md +244 -0
  72. package/dist/skills/bundled/endaoment/SKILL.md +65 -0
  73. package/dist/skills/bundled/endaoment/index.d.ts +0 -3
  74. package/dist/skills/bundled/endaoment/index.js +0 -1
  75. package/dist/skills/bundled/endaoment/index.js.map +1 -1
  76. package/dist/skills/bundled/ens/SKILL.md +63 -0
  77. package/dist/skills/bundled/ens/index.d.ts +0 -3
  78. package/dist/skills/bundled/ens/index.js +0 -1
  79. package/dist/skills/bundled/ens/index.js.map +1 -1
  80. package/dist/skills/bundled/erc8004/SKILL.md +79 -0
  81. package/dist/skills/bundled/erc8004/index.d.ts +0 -3
  82. package/dist/skills/bundled/erc8004/index.js +0 -1
  83. package/dist/skills/bundled/erc8004/index.js.map +1 -1
  84. package/dist/skills/bundled/execution/SKILL.md +278 -0
  85. package/dist/skills/bundled/farcaster/SKILL.md +80 -0
  86. package/dist/skills/bundled/farcaster/index.js +12 -0
  87. package/dist/skills/bundled/farcaster/index.js.map +1 -1
  88. package/dist/skills/bundled/features/SKILL.md +20 -0
  89. package/dist/skills/bundled/feeds/SKILL.md +288 -0
  90. package/dist/skills/bundled/harden/SKILL.md +74 -0
  91. package/dist/skills/bundled/history/SKILL.md +257 -0
  92. package/dist/skills/bundled/hyperliquid/SKILL.md +200 -0
  93. package/dist/skills/bundled/hyperliquid/index.d.ts +0 -3
  94. package/dist/skills/bundled/hyperliquid/index.js +0 -1
  95. package/dist/skills/bundled/hyperliquid/index.js.map +1 -1
  96. package/dist/skills/bundled/identity/SKILL.md +228 -0
  97. package/dist/skills/bundled/identity/index.js +2 -2
  98. package/dist/skills/bundled/identity/index.js.map +1 -1
  99. package/dist/skills/bundled/integrations/SKILL.md +321 -0
  100. package/dist/skills/bundled/integrations/index.js +2 -2
  101. package/dist/skills/bundled/integrations/index.js.map +1 -1
  102. package/dist/skills/bundled/jupiter/SKILL.md +163 -0
  103. package/dist/skills/bundled/jupiter/index.js +2 -2
  104. package/dist/skills/bundled/kamino/SKILL.md +69 -0
  105. package/dist/skills/bundled/ledger/SKILL.md +20 -0
  106. package/dist/skills/bundled/lighter/SKILL.md +83 -0
  107. package/dist/skills/bundled/lighter/index.d.ts +0 -3
  108. package/dist/skills/bundled/lighter/index.js +0 -1
  109. package/dist/skills/bundled/lighter/index.js.map +1 -1
  110. package/dist/skills/bundled/marginfi/SKILL.md +62 -0
  111. package/dist/skills/bundled/market-index/SKILL.md +242 -0
  112. package/dist/skills/bundled/market-index/index.js +1 -3
  113. package/dist/skills/bundled/market-index/index.js.map +1 -1
  114. package/dist/skills/bundled/markets/SKILL.md +49 -0
  115. package/dist/skills/bundled/mcp/SKILL.md +235 -0
  116. package/dist/skills/bundled/mcp/index.js +1 -3
  117. package/dist/skills/bundled/mcp/index.js.map +1 -1
  118. package/dist/skills/bundled/memory/SKILL.md +209 -0
  119. package/dist/skills/bundled/metaculus/SKILL.md +62 -0
  120. package/dist/skills/bundled/metaculus/index.js +4 -1
  121. package/dist/skills/bundled/metaculus/index.js.map +1 -1
  122. package/dist/skills/bundled/meteora/SKILL.md +28 -0
  123. package/dist/skills/bundled/meteora-dbc/SKILL.md +25 -0
  124. package/dist/skills/bundled/metrics/SKILL.md +338 -0
  125. package/dist/skills/bundled/mev/SKILL.md +239 -0
  126. package/dist/skills/bundled/mev/index.js +2 -2
  127. package/dist/skills/bundled/mev/index.js.map +1 -1
  128. package/dist/skills/bundled/mexc-futures/SKILL.md +86 -0
  129. package/dist/skills/bundled/mexc-futures/index.d.ts +0 -3
  130. package/dist/skills/bundled/mexc-futures/index.js +0 -1
  131. package/dist/skills/bundled/mexc-futures/index.js.map +1 -1
  132. package/dist/skills/bundled/mm/SKILL.md +142 -0
  133. package/dist/skills/bundled/mm/index.js +28 -27
  134. package/dist/skills/bundled/mm/index.js.map +1 -1
  135. package/dist/skills/bundled/monitoring/SKILL.md +249 -0
  136. package/dist/skills/bundled/news/SKILL.md +95 -0
  137. package/dist/skills/bundled/news/index.js +1 -2
  138. package/dist/skills/bundled/news/index.js.map +1 -1
  139. package/dist/skills/bundled/onchainkit/SKILL.md +83 -0
  140. package/dist/skills/bundled/opinion/SKILL.md +87 -0
  141. package/dist/skills/bundled/opportunity/SKILL.md +308 -0
  142. package/dist/skills/bundled/orca/SKILL.md +28 -0
  143. package/dist/skills/bundled/orca/index.js +11 -7
  144. package/dist/skills/bundled/orca/index.js.map +1 -1
  145. package/dist/skills/bundled/pairing/SKILL.md +275 -0
  146. package/dist/skills/bundled/pancakeswap/SKILL.md +93 -0
  147. package/dist/skills/bundled/pancakeswap/index.d.ts +0 -3
  148. package/dist/skills/bundled/pancakeswap/index.js +0 -1
  149. package/dist/skills/bundled/pancakeswap/index.js.map +1 -1
  150. package/dist/skills/bundled/percolator/SKILL.md +22 -0
  151. package/dist/skills/bundled/permissions/SKILL.md +269 -0
  152. package/dist/skills/bundled/permissions/index.js +2 -2
  153. package/dist/skills/bundled/permissions/index.js.map +1 -1
  154. package/dist/skills/bundled/plugins/SKILL.md +263 -0
  155. package/dist/skills/bundled/plugins/index.js +2 -2
  156. package/dist/skills/bundled/plugins/index.js.map +1 -1
  157. package/dist/skills/bundled/portfolio/SKILL.md +161 -0
  158. package/dist/skills/bundled/portfolio/index.js +1 -1
  159. package/dist/skills/bundled/portfolio/index.js.map +1 -1
  160. package/dist/skills/bundled/portfolio-sync/SKILL.md +466 -0
  161. package/dist/skills/bundled/positions/SKILL.md +262 -0
  162. package/dist/skills/bundled/predictfun/SKILL.md +109 -0
  163. package/dist/skills/bundled/predictfun/index.js +1 -1
  164. package/dist/skills/bundled/predictfun/index.js.map +1 -1
  165. package/dist/skills/bundled/predictit/SKILL.md +66 -0
  166. package/dist/skills/bundled/predictit/index.js +4 -1
  167. package/dist/skills/bundled/predictit/index.js.map +1 -1
  168. package/dist/skills/bundled/presence/SKILL.md +217 -0
  169. package/dist/skills/bundled/presence/index.js +2 -2
  170. package/dist/skills/bundled/presence/index.js.map +1 -1
  171. package/dist/skills/bundled/processes/SKILL.md +254 -0
  172. package/dist/skills/bundled/pump-swarm/SKILL.md +309 -0
  173. package/dist/skills/bundled/pumpfun/SKILL.md +145 -0
  174. package/dist/skills/bundled/pumpfun/index.js +82 -8
  175. package/dist/skills/bundled/pumpfun/index.js.map +1 -1
  176. package/dist/skills/bundled/qmd/SKILL.md +129 -0
  177. package/dist/skills/bundled/qrcoin/SKILL.md +60 -0
  178. package/dist/skills/bundled/qrcoin/index.d.ts +0 -3
  179. package/dist/skills/bundled/qrcoin/index.js +0 -1
  180. package/dist/skills/bundled/qrcoin/index.js.map +1 -1
  181. package/dist/skills/bundled/raydium/SKILL.md +198 -0
  182. package/dist/skills/bundled/remote/SKILL.md +201 -0
  183. package/dist/skills/bundled/research/SKILL.md +83 -0
  184. package/dist/skills/bundled/research/index.js +2 -2
  185. package/dist/skills/bundled/research/index.js.map +1 -1
  186. package/dist/skills/bundled/risk/SKILL.md +323 -0
  187. package/dist/skills/bundled/router/SKILL.md +233 -0
  188. package/dist/skills/bundled/routing/SKILL.md +258 -0
  189. package/dist/skills/bundled/sandbox/SKILL.md +257 -0
  190. package/dist/skills/bundled/search-config/SKILL.md +257 -0
  191. package/dist/skills/bundled/search-config/index.js +2 -2
  192. package/dist/skills/bundled/search-config/index.js.map +1 -1
  193. package/dist/skills/bundled/sessions/SKILL.md +251 -0
  194. package/dist/skills/bundled/sessions/index.js +1 -1
  195. package/dist/skills/bundled/sessions/index.js.map +1 -1
  196. package/dist/skills/bundled/setup/SKILL.md +53 -0
  197. package/dist/skills/bundled/shield/SKILL.md +21 -0
  198. package/dist/skills/bundled/signals/SKILL.md +106 -0
  199. package/dist/skills/bundled/signals/index.d.ts +0 -3
  200. package/dist/skills/bundled/signals/index.js +3 -4
  201. package/dist/skills/bundled/signals/index.js.map +1 -1
  202. package/dist/skills/bundled/sizing/SKILL.md +238 -0
  203. package/dist/skills/bundled/slippage/SKILL.md +306 -0
  204. package/dist/skills/bundled/smarkets/SKILL.md +107 -0
  205. package/dist/skills/bundled/smarkets/index.js +3 -3
  206. package/dist/skills/bundled/smarkets/index.js.map +1 -1
  207. package/dist/skills/bundled/solend/SKILL.md +63 -0
  208. package/dist/skills/bundled/strategy/SKILL.md +266 -0
  209. package/dist/skills/bundled/streaming/SKILL.md +150 -0
  210. package/dist/skills/bundled/streaming/index.js +2 -2
  211. package/dist/skills/bundled/streaming/index.js.map +1 -1
  212. package/dist/skills/bundled/tailscale/SKILL.md +249 -0
  213. package/dist/skills/bundled/tailscale/index.js +2 -2
  214. package/dist/skills/bundled/tailscale/index.js.map +1 -1
  215. package/dist/skills/bundled/ticks/SKILL.md +61 -0
  216. package/dist/skills/bundled/token-security/SKILL.md +18 -0
  217. package/dist/skills/bundled/trading-evm/SKILL.md +329 -0
  218. package/dist/skills/bundled/trading-futures/SKILL.md +865 -0
  219. package/dist/skills/bundled/trading-kalshi/SKILL.md +629 -0
  220. package/dist/skills/bundled/trading-kalshi/index.js +2 -0
  221. package/dist/skills/bundled/trading-kalshi/index.js.map +1 -1
  222. package/dist/skills/bundled/trading-manifold/SKILL.md +387 -0
  223. package/dist/skills/bundled/trading-polymarket/SKILL.md +1080 -0
  224. package/dist/skills/bundled/trading-polymarket/index.js +28 -19
  225. package/dist/skills/bundled/trading-polymarket/index.js.map +1 -1
  226. package/dist/skills/bundled/trading-solana/SKILL.md +418 -0
  227. package/dist/skills/bundled/trading-solana/index.js +1 -1
  228. package/dist/skills/bundled/trading-solana/index.js.map +1 -1
  229. package/dist/skills/bundled/trading-system/SKILL.md +290 -0
  230. package/dist/skills/bundled/triggers/SKILL.md +433 -0
  231. package/dist/skills/bundled/tts/SKILL.md +220 -0
  232. package/dist/skills/bundled/tweet-ideas/SKILL.md +77 -0
  233. package/dist/skills/bundled/usage/SKILL.md +239 -0
  234. package/dist/skills/bundled/usage/index.js +2 -2
  235. package/dist/skills/bundled/usage/index.js.map +1 -1
  236. package/dist/skills/bundled/veil/SKILL.md +76 -0
  237. package/dist/skills/bundled/veil/index.d.ts +0 -3
  238. package/dist/skills/bundled/veil/index.js +0 -1
  239. package/dist/skills/bundled/veil/index.js.map +1 -1
  240. package/dist/skills/bundled/verify/SKILL.md +199 -0
  241. package/dist/skills/bundled/verify/index.d.ts +0 -3
  242. package/dist/skills/bundled/verify/index.js +0 -1
  243. package/dist/skills/bundled/verify/index.js.map +1 -1
  244. package/dist/skills/bundled/virtuals/SKILL.md +82 -0
  245. package/dist/skills/bundled/voice/SKILL.md +217 -0
  246. package/dist/skills/bundled/voice/index.js +2 -2
  247. package/dist/skills/bundled/voice/index.js.map +1 -1
  248. package/dist/skills/bundled/weather/SKILL.md +80 -0
  249. package/dist/skills/bundled/weather/index.js +3 -0
  250. package/dist/skills/bundled/weather/index.js.map +1 -1
  251. package/dist/skills/bundled/webhooks/SKILL.md +297 -0
  252. package/dist/skills/bundled/webhooks/index.js +2 -2
  253. package/dist/skills/bundled/webhooks/index.js.map +1 -1
  254. package/dist/skills/bundled/whale-tracking/SKILL.md +287 -0
  255. package/dist/skills/bundled/whale-tracking/index.js +2 -2
  256. package/dist/skills/bundled/whale-tracking/index.js.map +1 -1
  257. package/dist/skills/bundled/yoink/SKILL.md +54 -0
  258. package/dist/skills/bundled/yoink/index.d.ts +0 -3
  259. package/dist/skills/bundled/yoink/index.js +0 -1
  260. package/dist/skills/bundled/yoink/index.js.map +1 -1
  261. package/dist/skills/executor.js +5 -3
  262. package/dist/skills/executor.js.map +1 -1
  263. package/package.json +2 -2
@@ -0,0 +1,290 @@
1
+ ---
2
+ name: trading-system
3
+ description: "Unified trading system with auto-logging, bots, and performance analytics"
4
+ emoji: "🤖"
5
+ gates:
6
+ envs:
7
+ anyOf:
8
+ - POLY_API_KEY
9
+ - KALSHI_API_KEY
10
+ ---
11
+
12
+ # Trading System - Complete API Reference
13
+
14
+ Unified trading system with auto-logging to SQLite, bot management, and performance analytics.
15
+
16
+ ---
17
+
18
+ ## Chat Commands
19
+
20
+ ### Portfolio
21
+
22
+ ```
23
+ /trading portfolio # View all positions
24
+ /trading portfolio poly # Positions on Polymarket
25
+ /trading portfolio --value # Include current values
26
+ ```
27
+
28
+ ### Performance
29
+
30
+ ```
31
+ /trading stats # Overall statistics
32
+ /trading stats --period 30d # Last 30 days
33
+ /trading daily-pnl # Daily P&L breakdown
34
+ /trading weekly-pnl # Weekly P&L
35
+ /trading monthly-pnl # Monthly P&L
36
+ ```
37
+
38
+ ### Trade History
39
+
40
+ ```
41
+ /trading history # Recent trades
42
+ /trading history --limit 50 # Last 50 trades
43
+ /trading history --platform poly # Polymarket only
44
+ /trading export # Export to CSV
45
+ /trading export --format json # Export as JSON
46
+ ```
47
+
48
+ ### Bot Management
49
+
50
+ ```
51
+ /bot list # List all bots
52
+ /bot register <name> <strategy> # Register new bot
53
+ /bot start <name> # Start bot
54
+ /bot stop <name> # Stop bot
55
+ /bot status <name> # Bot status
56
+ /bot delete <name> # Delete bot
57
+ ```
58
+
59
+ ### Bot Strategies
60
+
61
+ ```
62
+ /bot strategies # List available strategies
63
+ /bot create mean-reversion --config {...} # Create with config
64
+ /bot create momentum --lookback 14 # Momentum strategy
65
+ /bot create arbitrage --min-spread 1 # Arbitrage strategy
66
+ ```
67
+
68
+ ---
69
+
70
+ ## TypeScript API Reference
71
+
72
+ ### Create Trading System
73
+
74
+ ```typescript
75
+ import { createTradingSystem } from 'clodds/trading';
76
+
77
+ const trading = createTradingSystem({
78
+ // Execution service
79
+ execution: executionService,
80
+
81
+ // Auto-logging
82
+ autoLog: true,
83
+ logPath: './trades.db',
84
+
85
+ // Bot configuration
86
+ bots: {
87
+ enabled: true,
88
+ maxConcurrent: 5,
89
+ },
90
+ });
91
+ ```
92
+
93
+ ### Portfolio
94
+
95
+ ```typescript
96
+ // Get portfolio
97
+ const portfolio = await trading.getPortfolio();
98
+
99
+ console.log(`Total value: $${portfolio.totalValue.toLocaleString()}`);
100
+ console.log(`Unrealized P&L: $${portfolio.unrealizedPnl.toLocaleString()}`);
101
+
102
+ for (const position of portfolio.positions) {
103
+ console.log(`[${position.platform}] ${position.market}`);
104
+ console.log(` Side: ${position.side}`);
105
+ console.log(` Size: ${position.size}`);
106
+ console.log(` Avg price: ${position.avgPrice}`);
107
+ console.log(` Current: ${position.currentPrice}`);
108
+ console.log(` P&L: $${position.unrealizedPnl.toFixed(2)}`);
109
+ }
110
+ ```
111
+
112
+ ### Statistics
113
+
114
+ ```typescript
115
+ // Get trading statistics
116
+ const stats = await trading.getStats({ period: '30d' });
117
+
118
+ console.log(`Total trades: ${stats.totalTrades}`);
119
+ console.log(`Win rate: ${(stats.winRate * 100).toFixed(1)}%`);
120
+ console.log(`Profit factor: ${stats.profitFactor.toFixed(2)}`);
121
+ console.log(`Total P&L: $${stats.totalPnl.toLocaleString()}`);
122
+ console.log(`Avg trade: $${stats.avgTrade.toFixed(2)}`);
123
+ console.log(`Largest win: $${stats.largestWin.toFixed(2)}`);
124
+ console.log(`Largest loss: $${stats.largestLoss.toFixed(2)}`);
125
+ console.log(`Sharpe ratio: ${stats.sharpeRatio.toFixed(2)}`);
126
+ console.log(`Max drawdown: ${(stats.maxDrawdown * 100).toFixed(1)}%`);
127
+ ```
128
+
129
+ ### Daily P&L
130
+
131
+ ```typescript
132
+ // Get daily P&L
133
+ const dailyPnl = await trading.getDailyPnL({ days: 30 });
134
+
135
+ for (const day of dailyPnl) {
136
+ const sign = day.pnl >= 0 ? '+' : '';
137
+ console.log(`${day.date}: ${sign}$${day.pnl.toFixed(2)} (${day.trades} trades)`);
138
+ }
139
+ ```
140
+
141
+ ### Export Trades
142
+
143
+ ```typescript
144
+ // Export to CSV
145
+ await trading.exportTrades({
146
+ format: 'csv',
147
+ path: './trades.csv',
148
+ from: '2024-01-01',
149
+ to: '2024-12-31',
150
+ });
151
+
152
+ // Export to JSON
153
+ const trades = await trading.exportTrades({
154
+ format: 'json',
155
+ from: '2024-01-01',
156
+ });
157
+ ```
158
+
159
+ ### Bot Management
160
+
161
+ ```typescript
162
+ // List bots
163
+ const bots = trading.bots.list();
164
+
165
+ // Register a bot
166
+ await trading.bots.register({
167
+ name: 'my-arb-bot',
168
+ strategy: 'arbitrage',
169
+ config: {
170
+ minSpread: 1,
171
+ maxPositionSize: 500,
172
+ platforms: ['polymarket', 'kalshi'],
173
+ },
174
+ });
175
+
176
+ // Start bot
177
+ await trading.bots.start('my-arb-bot');
178
+
179
+ // Get status
180
+ const status = trading.bots.getStatus('my-arb-bot');
181
+ console.log(`Running: ${status.isRunning}`);
182
+ console.log(`Trades today: ${status.tradesToday}`);
183
+ console.log(`P&L today: $${status.pnlToday}`);
184
+
185
+ // Stop bot
186
+ await trading.bots.stop('my-arb-bot');
187
+
188
+ // Delete bot
189
+ await trading.bots.delete('my-arb-bot');
190
+ ```
191
+
192
+ ### Built-in Strategies
193
+
194
+ ```typescript
195
+ // Mean Reversion
196
+ await trading.bots.register({
197
+ name: 'mean-rev',
198
+ strategy: 'mean-reversion',
199
+ config: {
200
+ lookbackPeriod: 20,
201
+ deviationThreshold: 2,
202
+ positionSize: 100,
203
+ },
204
+ });
205
+
206
+ // Momentum
207
+ await trading.bots.register({
208
+ name: 'momentum',
209
+ strategy: 'momentum',
210
+ config: {
211
+ lookbackPeriod: 14,
212
+ entryThreshold: 0.6,
213
+ exitThreshold: 0.4,
214
+ positionSize: 100,
215
+ },
216
+ });
217
+
218
+ // Arbitrage
219
+ await trading.bots.register({
220
+ name: 'arb',
221
+ strategy: 'arbitrage',
222
+ config: {
223
+ minSpread: 1,
224
+ minLiquidity: 500,
225
+ maxPositionSize: 1000,
226
+ },
227
+ });
228
+ ```
229
+
230
+ ### Custom Strategy
231
+
232
+ ```typescript
233
+ // Register custom strategy
234
+ trading.bots.registerStrategy('my-strategy', {
235
+ init: async (ctx) => {
236
+ // Initialize state
237
+ },
238
+
239
+ evaluate: async (ctx) => {
240
+ // Return signals
241
+ return [
242
+ {
243
+ platform: 'polymarket',
244
+ marketId: 'market-123',
245
+ action: 'buy',
246
+ side: 'YES',
247
+ size: 100,
248
+ reason: 'Signal triggered',
249
+ },
250
+ ];
251
+ },
252
+
253
+ onTrade: (trade) => {
254
+ console.log(`Trade executed: ${trade.orderId}`);
255
+ },
256
+
257
+ cleanup: async () => {
258
+ // Cleanup
259
+ },
260
+ });
261
+ ```
262
+
263
+ ---
264
+
265
+ ## Auto-Logging
266
+
267
+ All trades are automatically logged to SQLite:
268
+
269
+ ```sql
270
+ -- trades table
271
+ SELECT * FROM trades
272
+ WHERE platform = 'polymarket'
273
+ ORDER BY timestamp DESC
274
+ LIMIT 10;
275
+
276
+ -- Get win rate
277
+ SELECT
278
+ COUNT(CASE WHEN pnl > 0 THEN 1 END) * 100.0 / COUNT(*) as win_rate
279
+ FROM trades;
280
+ ```
281
+
282
+ ---
283
+
284
+ ## Best Practices
285
+
286
+ 1. **Start with paper trading** - Use dry-run mode first
287
+ 2. **Set position limits** - Prevent overexposure
288
+ 3. **Monitor bots regularly** - Don't set and forget
289
+ 4. **Review performance weekly** - Adjust strategies
290
+ 5. **Export data regularly** - Backup your trade history
@@ -0,0 +1,433 @@
1
+ ---
2
+ name: triggers
3
+ description: "Conditional orders that auto-execute when price thresholds are met"
4
+ emoji: "⚡"
5
+ ---
6
+
7
+ # Triggers - Complete API Reference
8
+
9
+ Set up conditional orders that automatically execute trades when price conditions are met. Works across prediction markets, futures, and crypto spot.
10
+
11
+ ---
12
+
13
+ ## Chat Commands
14
+
15
+ ### Create Trigger Orders
16
+
17
+ ```
18
+ /trigger buy poly "Trump 2028" YES below 0.40 size 100
19
+ /trigger buy poly "Fed rate" NO above 0.60 size 50
20
+ /trigger sell poly "Trump 2028" YES above 0.55 size all
21
+ ```
22
+
23
+ ### Futures Triggers
24
+
25
+ ```
26
+ /trigger long binance BTCUSDT below 95000 size 0.1 leverage 10x
27
+ /trigger short binance ETHUSDT above 4000 size 1 leverage 20x
28
+ /trigger close binance BTCUSDT above 105000
29
+ ```
30
+
31
+ ### Crypto Spot Triggers
32
+
33
+ ```
34
+ /trigger buy sol SOL below 180 size 100usdc
35
+ /trigger sell eth ETH above 4000 size 0.5
36
+ /trigger swap arb USDC to ARB below 1.50 size 500
37
+ ```
38
+
39
+ ### Manage Triggers
40
+
41
+ ```
42
+ /triggers List all active triggers
43
+ /triggers pending Show pending only
44
+ /triggers history Triggered order history
45
+ /trigger cancel <id> Cancel trigger
46
+ /trigger cancel all Cancel all triggers
47
+ ```
48
+
49
+ ### Stop-Loss & Take-Profit
50
+
51
+ ```
52
+ /sl poly "Trump" at 0.35 Stop-loss on position
53
+ /tp poly "Trump" at 0.65 Take-profit on position
54
+ /trailing-stop poly "Trump" 10% Trailing stop (% from high)
55
+ ```
56
+
57
+ ---
58
+
59
+ ## TypeScript API Reference
60
+
61
+ ### Create Trigger Service
62
+
63
+ ```typescript
64
+ import { createTriggerService } from 'clodds/triggers';
65
+
66
+ const triggers = createTriggerService({
67
+ // Price monitoring
68
+ checkIntervalMs: 5000, // Check every 5 seconds
69
+
70
+ // Execution
71
+ maxSlippagePercent: 2,
72
+ retryAttempts: 3,
73
+
74
+ // Storage
75
+ storage: 'sqlite',
76
+ dbPath: './triggers.db',
77
+ });
78
+
79
+ // Start monitoring
80
+ await triggers.start();
81
+ ```
82
+
83
+ ### Create Prediction Market Trigger
84
+
85
+ ```typescript
86
+ // Buy YES when price drops below threshold
87
+ const trigger = await triggers.create({
88
+ type: 'entry',
89
+ platform: 'polymarket',
90
+ market: 'will-trump-win-2028',
91
+ side: 'YES',
92
+ direction: 'below',
93
+ triggerPrice: 0.40,
94
+ size: 100, // $100
95
+ orderType: 'limit', // 'market' | 'limit'
96
+ limitPrice: 0.41, // Optional: max price for limit
97
+ });
98
+
99
+ console.log(`Trigger ID: ${trigger.id}`);
100
+ console.log(`Status: ${trigger.status}`); // 'pending'
101
+
102
+ // Sell when price rises above threshold
103
+ await triggers.create({
104
+ type: 'exit',
105
+ platform: 'polymarket',
106
+ market: 'will-trump-win-2028',
107
+ side: 'YES',
108
+ direction: 'above',
109
+ triggerPrice: 0.55,
110
+ size: 'all', // Sell entire position
111
+ });
112
+ ```
113
+
114
+ ### Create Futures Trigger
115
+
116
+ ```typescript
117
+ // Long entry when BTC drops below support
118
+ await triggers.create({
119
+ type: 'entry',
120
+ platform: 'binance',
121
+ symbol: 'BTCUSDT',
122
+ side: 'long',
123
+ direction: 'below',
124
+ triggerPrice: 95000,
125
+ size: 0.1,
126
+ leverage: 10,
127
+
128
+ // Auto-set SL/TP on fill
129
+ stopLoss: 93000,
130
+ takeProfit: 105000,
131
+ });
132
+
133
+ // Short entry when ETH breaks above resistance
134
+ await triggers.create({
135
+ type: 'entry',
136
+ platform: 'bybit',
137
+ symbol: 'ETHUSDT',
138
+ side: 'short',
139
+ direction: 'above',
140
+ triggerPrice: 4000,
141
+ size: 1,
142
+ leverage: 20,
143
+ });
144
+
145
+ // Close position when price target hit
146
+ await triggers.create({
147
+ type: 'exit',
148
+ platform: 'binance',
149
+ symbol: 'BTCUSDT',
150
+ direction: 'above',
151
+ triggerPrice: 105000,
152
+ size: 'all',
153
+ });
154
+ ```
155
+
156
+ ### Create Crypto Spot Trigger
157
+
158
+ ```typescript
159
+ // Buy SOL when price drops
160
+ await triggers.create({
161
+ type: 'entry',
162
+ platform: 'jupiter', // Solana DEX
163
+ tokenIn: 'USDC',
164
+ tokenOut: 'SOL',
165
+ direction: 'below',
166
+ triggerPrice: 180,
167
+ size: 100, // 100 USDC
168
+ slippagePercent: 1,
169
+ });
170
+
171
+ // Sell ETH when price rises
172
+ await triggers.create({
173
+ type: 'exit',
174
+ platform: 'uniswap', // EVM DEX
175
+ chain: 'ethereum',
176
+ tokenIn: 'ETH',
177
+ tokenOut: 'USDC',
178
+ direction: 'above',
179
+ triggerPrice: 4000,
180
+ size: 0.5,
181
+ });
182
+ ```
183
+
184
+ ### Stop-Loss & Take-Profit
185
+
186
+ ```typescript
187
+ // Set stop-loss on existing position
188
+ await triggers.setStopLoss({
189
+ platform: 'polymarket',
190
+ market: 'will-trump-win-2028',
191
+ side: 'YES',
192
+ triggerPrice: 0.35,
193
+ size: 'all',
194
+ });
195
+
196
+ // Set take-profit
197
+ await triggers.setTakeProfit({
198
+ platform: 'polymarket',
199
+ market: 'will-trump-win-2028',
200
+ side: 'YES',
201
+ triggerPrice: 0.65,
202
+ size: 'all',
203
+ });
204
+
205
+ // Trailing stop (follows price up, triggers on pullback)
206
+ await triggers.setTrailingStop({
207
+ platform: 'polymarket',
208
+ market: 'will-trump-win-2028',
209
+ side: 'YES',
210
+ trailPercent: 10, // Trigger if drops 10% from high
211
+ size: 'all',
212
+ });
213
+ ```
214
+
215
+ ### Multi-Condition Triggers
216
+
217
+ ```typescript
218
+ // Trigger only when multiple conditions met
219
+ await triggers.create({
220
+ type: 'entry',
221
+ platform: 'polymarket',
222
+ market: 'will-trump-win-2028',
223
+ side: 'YES',
224
+
225
+ conditions: [
226
+ { type: 'price', direction: 'below', value: 0.40 },
227
+ { type: 'volume24h', direction: 'above', value: 100000 },
228
+ { type: 'spread', direction: 'below', value: 0.02 },
229
+ ],
230
+
231
+ // All conditions must be true
232
+ conditionLogic: 'AND', // 'AND' | 'OR'
233
+
234
+ size: 100,
235
+ });
236
+ ```
237
+
238
+ ### One-Cancels-Other (OCO)
239
+
240
+ ```typescript
241
+ // OCO: Either SL or TP triggers, other cancels
242
+ const oco = await triggers.createOCO({
243
+ platform: 'binance',
244
+ symbol: 'BTCUSDT',
245
+
246
+ stopLoss: {
247
+ direction: 'below',
248
+ triggerPrice: 93000,
249
+ size: 'all',
250
+ },
251
+
252
+ takeProfit: {
253
+ direction: 'above',
254
+ triggerPrice: 105000,
255
+ size: 'all',
256
+ },
257
+ });
258
+ ```
259
+
260
+ ### List & Manage Triggers
261
+
262
+ ```typescript
263
+ // List all triggers
264
+ const all = await triggers.list();
265
+
266
+ for (const t of all) {
267
+ console.log(`${t.id}: ${t.platform} ${t.market || t.symbol}`);
268
+ console.log(` ${t.direction} ${t.triggerPrice}`);
269
+ console.log(` Status: ${t.status}`);
270
+ console.log(` Created: ${t.createdAt}`);
271
+ }
272
+
273
+ // Get pending only
274
+ const pending = await triggers.list({ status: 'pending' });
275
+
276
+ // Get history (triggered)
277
+ const history = await triggers.list({ status: 'triggered' });
278
+
279
+ // Cancel trigger
280
+ await triggers.cancel(triggerId);
281
+
282
+ // Cancel all
283
+ await triggers.cancelAll();
284
+ ```
285
+
286
+ ### Event Handlers
287
+
288
+ ```typescript
289
+ // Trigger activated
290
+ triggers.on('triggered', async (trigger, result) => {
291
+ console.log(`Trigger ${trigger.id} activated!`);
292
+ console.log(`Order: ${result.orderId}`);
293
+ console.log(`Fill price: ${result.fillPrice}`);
294
+ console.log(`Size: ${result.filledSize}`);
295
+ });
296
+
297
+ // Trigger failed
298
+ triggers.on('failed', (trigger, error) => {
299
+ console.error(`Trigger ${trigger.id} failed: ${error.message}`);
300
+ });
301
+
302
+ // Price approaching trigger
303
+ triggers.on('approaching', (trigger, currentPrice) => {
304
+ console.log(`Price ${currentPrice} approaching trigger at ${trigger.triggerPrice}`);
305
+ });
306
+ ```
307
+
308
+ ---
309
+
310
+ ## Supported Platforms
311
+
312
+ ### Prediction Markets
313
+
314
+ | Platform | Entry Triggers | Exit Triggers | SL/TP |
315
+ |----------|---------------|---------------|-------|
316
+ | **Polymarket** | ✓ | ✓ | ✓ |
317
+ | **Kalshi** | ✓ | ✓ | ✓ |
318
+ | **Manifold** | ✓ | ✓ | ✓ |
319
+
320
+ ### Futures
321
+
322
+ | Platform | Entry Triggers | Native Triggers | SL/TP |
323
+ |----------|---------------|-----------------|-------|
324
+ | **Binance** | ✓ | ✓ | ✓ |
325
+ | **Bybit** | ✓ | ✓ | ✓ |
326
+ | **MEXC** | ✓ | ✓ Native | ✓ |
327
+ | **Hyperliquid** | ✓ | ✓ | ✓ |
328
+
329
+ ### Crypto Spot
330
+
331
+ | Platform | Entry Triggers | Exit Triggers |
332
+ |----------|---------------|---------------|
333
+ | **Jupiter** (Solana) | ✓ | ✓ |
334
+ | **Raydium** | ✓ | ✓ |
335
+ | **Uniswap** (EVM) | ✓ | ✓ |
336
+ | **1inch** (EVM) | ✓ | ✓ |
337
+
338
+ ---
339
+
340
+ ## Trigger Types
341
+
342
+ | Type | Description |
343
+ |------|-------------|
344
+ | **entry** | Open new position when triggered |
345
+ | **exit** | Close position when triggered |
346
+ | **stop-loss** | Exit to limit losses |
347
+ | **take-profit** | Exit to lock in gains |
348
+ | **trailing-stop** | Dynamic stop that follows price |
349
+ | **oco** | One-cancels-other (SL + TP pair) |
350
+
351
+ ---
352
+
353
+ ## Price Sources
354
+
355
+ | Platform | Price Source |
356
+ |----------|-------------|
357
+ | Polymarket | WebSocket mid price |
358
+ | Kalshi | REST API best bid/ask |
359
+ | Binance | WebSocket mark price |
360
+ | Bybit | WebSocket last price |
361
+ | Jupiter | On-chain oracle |
362
+
363
+ ---
364
+
365
+ ## Examples
366
+
367
+ ### Prediction Market Strategy
368
+
369
+ ```typescript
370
+ // Buy the dip, sell the rip
371
+ await triggers.create({
372
+ platform: 'polymarket',
373
+ market: 'trump-2028',
374
+ side: 'YES',
375
+ direction: 'below',
376
+ triggerPrice: 0.40,
377
+ size: 200,
378
+ });
379
+
380
+ await triggers.create({
381
+ platform: 'polymarket',
382
+ market: 'trump-2028',
383
+ side: 'YES',
384
+ direction: 'above',
385
+ triggerPrice: 0.55,
386
+ size: 'all',
387
+ });
388
+ ```
389
+
390
+ ### Futures Breakout Strategy
391
+
392
+ ```typescript
393
+ // Enter long on breakout above resistance
394
+ await triggers.create({
395
+ platform: 'binance',
396
+ symbol: 'BTCUSDT',
397
+ side: 'long',
398
+ direction: 'above',
399
+ triggerPrice: 100000,
400
+ size: 0.5,
401
+ leverage: 10,
402
+ stopLoss: 98000,
403
+ takeProfit: 110000,
404
+ });
405
+ ```
406
+
407
+ ### DCA on Dips
408
+
409
+ ```typescript
410
+ // Buy more as price drops
411
+ const levels = [180, 170, 160, 150];
412
+ for (const price of levels) {
413
+ await triggers.create({
414
+ platform: 'jupiter',
415
+ tokenOut: 'SOL',
416
+ tokenIn: 'USDC',
417
+ direction: 'below',
418
+ triggerPrice: price,
419
+ size: 50, // $50 at each level
420
+ });
421
+ }
422
+ ```
423
+
424
+ ---
425
+
426
+ ## Best Practices
427
+
428
+ 1. **Use limit orders** — Avoid slippage on triggers
429
+ 2. **Set expiration** — Don't leave triggers forever
430
+ 3. **Monitor execution** — Check fill prices
431
+ 4. **Use OCO for exits** — SL + TP together
432
+ 5. **Test with small size** — Verify triggers work
433
+ 6. **Account for fees** — Include in trigger price