@adaptic/utils 0.0.383 → 0.1.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 (75) hide show
  1. package/dist/index.cjs +10241 -120
  2. package/dist/index.cjs.map +1 -1
  3. package/dist/index.mjs +10057 -121
  4. package/dist/index.mjs.map +1 -1
  5. package/dist/types/alpaca/client.d.ts +95 -0
  6. package/dist/types/alpaca/client.d.ts.map +1 -0
  7. package/dist/types/alpaca/crypto/data.d.ts +281 -0
  8. package/dist/types/alpaca/crypto/data.d.ts.map +1 -0
  9. package/dist/types/alpaca/crypto/index.d.ts +75 -0
  10. package/dist/types/alpaca/crypto/index.d.ts.map +1 -0
  11. package/dist/types/alpaca/crypto/orders.d.ts +221 -0
  12. package/dist/types/alpaca/crypto/orders.d.ts.map +1 -0
  13. package/dist/types/alpaca/index.d.ts +201 -0
  14. package/dist/types/alpaca/index.d.ts.map +1 -0
  15. package/dist/types/alpaca/market-data/bars.d.ts +142 -0
  16. package/dist/types/alpaca/market-data/bars.d.ts.map +1 -0
  17. package/dist/types/alpaca/market-data/index.d.ts +13 -0
  18. package/dist/types/alpaca/market-data/index.d.ts.map +1 -0
  19. package/dist/types/alpaca/market-data/news.d.ts +87 -0
  20. package/dist/types/alpaca/market-data/news.d.ts.map +1 -0
  21. package/dist/types/alpaca/market-data/quotes.d.ts +85 -0
  22. package/dist/types/alpaca/market-data/quotes.d.ts.map +1 -0
  23. package/dist/types/alpaca/market-data/trades.d.ts +98 -0
  24. package/dist/types/alpaca/market-data/trades.d.ts.map +1 -0
  25. package/dist/types/alpaca/options/contracts.d.ts +279 -0
  26. package/dist/types/alpaca/options/contracts.d.ts.map +1 -0
  27. package/dist/types/alpaca/options/data.d.ts +126 -0
  28. package/dist/types/alpaca/options/data.d.ts.map +1 -0
  29. package/dist/types/alpaca/options/index.d.ts +17 -0
  30. package/dist/types/alpaca/options/index.d.ts.map +1 -0
  31. package/dist/types/alpaca/options/orders.d.ts +366 -0
  32. package/dist/types/alpaca/options/orders.d.ts.map +1 -0
  33. package/dist/types/alpaca/options/strategies.d.ts +224 -0
  34. package/dist/types/alpaca/options/strategies.d.ts.map +1 -0
  35. package/dist/types/alpaca/streams/base-stream.d.ts +143 -0
  36. package/dist/types/alpaca/streams/base-stream.d.ts.map +1 -0
  37. package/dist/types/alpaca/streams/crypto-stream.d.ts +173 -0
  38. package/dist/types/alpaca/streams/crypto-stream.d.ts.map +1 -0
  39. package/dist/types/alpaca/streams/index.d.ts +54 -0
  40. package/dist/types/alpaca/streams/index.d.ts.map +1 -0
  41. package/dist/types/alpaca/streams/option-stream.d.ts +167 -0
  42. package/dist/types/alpaca/streams/option-stream.d.ts.map +1 -0
  43. package/dist/types/alpaca/streams/stock-stream.d.ts +176 -0
  44. package/dist/types/alpaca/streams/stock-stream.d.ts.map +1 -0
  45. package/dist/types/alpaca/streams/stream-manager.d.ts +277 -0
  46. package/dist/types/alpaca/streams/stream-manager.d.ts.map +1 -0
  47. package/dist/types/alpaca/streams/trading-stream.d.ts +186 -0
  48. package/dist/types/alpaca/streams/trading-stream.d.ts.map +1 -0
  49. package/dist/types/alpaca/streams.d.ts +88 -0
  50. package/dist/types/alpaca/streams.d.ts.map +1 -0
  51. package/dist/types/alpaca/test-imports.d.ts +7 -0
  52. package/dist/types/alpaca/test-imports.d.ts.map +1 -0
  53. package/dist/types/alpaca/trading/account.d.ts +198 -0
  54. package/dist/types/alpaca/trading/account.d.ts.map +1 -0
  55. package/dist/types/alpaca/trading/bracket-orders.d.ts +162 -0
  56. package/dist/types/alpaca/trading/bracket-orders.d.ts.map +1 -0
  57. package/dist/types/alpaca/trading/index.d.ts +13 -0
  58. package/dist/types/alpaca/trading/index.d.ts.map +1 -0
  59. package/dist/types/alpaca/trading/oco-orders.d.ts +203 -0
  60. package/dist/types/alpaca/trading/oco-orders.d.ts.map +1 -0
  61. package/dist/types/alpaca/trading/order-utils.d.ts +404 -0
  62. package/dist/types/alpaca/trading/order-utils.d.ts.map +1 -0
  63. package/dist/types/alpaca/trading/orders.d.ts +199 -0
  64. package/dist/types/alpaca/trading/orders.d.ts.map +1 -0
  65. package/dist/types/alpaca/trading/oto-orders.d.ts +282 -0
  66. package/dist/types/alpaca/trading/oto-orders.d.ts.map +1 -0
  67. package/dist/types/alpaca/trading/positions.d.ts +389 -0
  68. package/dist/types/alpaca/trading/positions.d.ts.map +1 -0
  69. package/dist/types/alpaca/trading/smart-orders.d.ts +301 -0
  70. package/dist/types/alpaca/trading/smart-orders.d.ts.map +1 -0
  71. package/dist/types/alpaca/trading/trailing-stops.d.ts +240 -0
  72. package/dist/types/alpaca/trading/trailing-stops.d.ts.map +1 -0
  73. package/dist/types/index.d.ts +353 -6
  74. package/dist/types/index.d.ts.map +1 -1
  75. package/package.json +4 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"smart-orders.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/trading/smart-orders.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,240 @@
1
+ /**
2
+ * Native Trailing Stop Orders Module
3
+ *
4
+ * This module provides functions for creating and managing native trailing stop orders
5
+ * using Alpaca's server-side trailing stop functionality. Native trailing stops are
6
+ * handled by Alpaca's servers, eliminating the need for client-side monitoring.
7
+ *
8
+ * Key benefits of native trailing stops:
9
+ * - Server-side execution ensures stops work even if your application is offline
10
+ * - No need for polling or websocket connections to monitor prices
11
+ * - Automatic high water mark (HWM) tracking by Alpaca
12
+ * - Support for both percentage-based and dollar-based trailing
13
+ */
14
+ import { AlpacaClient } from '../client';
15
+ import { AlpacaOrder, OrderSide, TimeInForce } from '../../types/alpaca-types';
16
+ /**
17
+ * Parameters for creating a trailing stop order
18
+ */
19
+ export interface TrailingStopParams {
20
+ /** Stock symbol */
21
+ symbol: string;
22
+ /** Number of shares */
23
+ qty: number;
24
+ /** Order side (usually 'sell' for closing long positions) */
25
+ side: OrderSide;
26
+ /** Trail by percentage (e.g., 1.0 = 1%). Must specify either trailPercent OR trailPrice */
27
+ trailPercent?: number;
28
+ /** Trail by fixed dollar amount. Must specify either trailPercent OR trailPrice */
29
+ trailPrice?: number;
30
+ /** Time in force (default: 'gtc') */
31
+ timeInForce?: TimeInForce;
32
+ /** Extended hours trading */
33
+ extendedHours?: boolean;
34
+ /** Client order ID for tracking */
35
+ clientOrderId?: string;
36
+ }
37
+ /**
38
+ * Result of trailing stop HWM query
39
+ */
40
+ export interface TrailingStopHWMResult {
41
+ /** High water mark - the highest price seen since order placement (for sell stops) */
42
+ hwm: number | null;
43
+ /** Current calculated stop price based on HWM and trail amount */
44
+ currentStop: number | null;
45
+ }
46
+ /**
47
+ * Parameters for creating trailing stops across a portfolio
48
+ */
49
+ export interface PortfolioTrailingStopParams {
50
+ /** Trail by percentage (e.g., 2.0 = 2%) */
51
+ trailPercent: number;
52
+ /** Time in force (default: 'gtc') */
53
+ timeInForce?: TimeInForce;
54
+ /** Symbols to exclude from trailing stop creation */
55
+ excludeSymbols?: string[];
56
+ }
57
+ /**
58
+ * Validation error for trailing stop parameters
59
+ */
60
+ export declare class TrailingStopValidationError extends Error {
61
+ constructor(message: string);
62
+ }
63
+ /**
64
+ * Create a native trailing stop order
65
+ *
66
+ * The trailing stop automatically adjusts based on price movement:
67
+ * - For SELL: Stop rises as price rises, locks in when price falls
68
+ * - For BUY: Stop falls as price falls, triggers when price rises
69
+ *
70
+ * Must specify either trailPercent OR trailPrice (not both)
71
+ *
72
+ * @param client - AlpacaClient instance
73
+ * @param params - Trailing stop parameters
74
+ * @returns The created order
75
+ * @throws {TrailingStopValidationError} If parameters are invalid
76
+ * @throws {Error} If order creation fails
77
+ *
78
+ * @example
79
+ * ```typescript
80
+ * // Trail by 2% on a sell (closing long position)
81
+ * await createTrailingStop(client, {
82
+ * symbol: 'AAPL',
83
+ * qty: 100,
84
+ * side: 'sell',
85
+ * trailPercent: 2.0,
86
+ * });
87
+ *
88
+ * // Trail by $5 on a sell
89
+ * await createTrailingStop(client, {
90
+ * symbol: 'AAPL',
91
+ * qty: 100,
92
+ * side: 'sell',
93
+ * trailPrice: 5.00,
94
+ * });
95
+ * ```
96
+ */
97
+ export declare function createTrailingStop(client: AlpacaClient, params: TrailingStopParams): Promise<AlpacaOrder>;
98
+ /**
99
+ * Update an existing trailing stop order
100
+ *
101
+ * You can update the trail_percent or trail_price of an existing order.
102
+ * Note: Alpaca uses 'trail' parameter for replacements (works for both percent and price).
103
+ *
104
+ * @param client - AlpacaClient instance
105
+ * @param orderId - The ID of the order to update
106
+ * @param updates - New trail parameters (specify one of trailPercent or trailPrice)
107
+ * @returns The updated order
108
+ * @throws {Error} If no update parameters provided or update fails
109
+ *
110
+ * @example
111
+ * ```typescript
112
+ * // Tighten trailing stop to 1.5%
113
+ * await updateTrailingStop(client, 'order-id-123', { trailPercent: 1.5 });
114
+ *
115
+ * // Change to $3 trail
116
+ * await updateTrailingStop(client, 'order-id-123', { trailPrice: 3.00 });
117
+ * ```
118
+ */
119
+ export declare function updateTrailingStop(client: AlpacaClient, orderId: string, updates: {
120
+ trailPercent?: number;
121
+ trailPrice?: number;
122
+ }): Promise<AlpacaOrder>;
123
+ /**
124
+ * Get the current high water mark (HWM) for a trailing stop
125
+ *
126
+ * The HWM is the highest price seen since order placement (for sell stops)
127
+ * or the lowest price (for buy stops). The current stop price is calculated
128
+ * based on the HWM and the trail amount.
129
+ *
130
+ * @param client - AlpacaClient instance
131
+ * @param orderId - The ID of the trailing stop order
132
+ * @returns Object containing HWM and current stop price (null if not yet established)
133
+ * @throws {Error} If order retrieval fails
134
+ *
135
+ * @example
136
+ * ```typescript
137
+ * const { hwm, currentStop } = await getTrailingStopHWM(client, 'order-id-123');
138
+ * console.log(`High water mark: $${hwm}, Current stop: $${currentStop}`);
139
+ * ```
140
+ */
141
+ export declare function getTrailingStopHWM(client: AlpacaClient, orderId: string): Promise<TrailingStopHWMResult>;
142
+ /**
143
+ * Cancel a trailing stop order
144
+ *
145
+ * @param client - AlpacaClient instance
146
+ * @param orderId - The ID of the trailing stop order to cancel
147
+ * @throws {Error} If cancellation fails
148
+ *
149
+ * @example
150
+ * ```typescript
151
+ * await cancelTrailingStop(client, 'order-id-123');
152
+ * ```
153
+ */
154
+ export declare function cancelTrailingStop(client: AlpacaClient, orderId: string): Promise<void>;
155
+ /**
156
+ * Create trailing stops for all positions in a portfolio
157
+ *
158
+ * This function creates trailing stop orders for all long positions in the portfolio,
159
+ * which is useful for applying blanket downside protection. Short positions are skipped.
160
+ *
161
+ * @param client - AlpacaClient instance
162
+ * @param params - Configuration for portfolio-wide trailing stops
163
+ * @returns Map of symbol to created order (symbols that failed are not included)
164
+ *
165
+ * @example
166
+ * ```typescript
167
+ * // Apply 3% trailing stops to all positions except TSLA and NVDA
168
+ * const orders = await createPortfolioTrailingStops(client, {
169
+ * trailPercent: 3.0,
170
+ * excludeSymbols: ['TSLA', 'NVDA'],
171
+ * });
172
+ *
173
+ * console.log(`Created ${orders.size} trailing stops`);
174
+ * for (const [symbol, order] of orders) {
175
+ * console.log(`${symbol}: ${order.id}`);
176
+ * }
177
+ * ```
178
+ */
179
+ export declare function createPortfolioTrailingStops(client: AlpacaClient, params: PortfolioTrailingStopParams): Promise<Map<string, AlpacaOrder>>;
180
+ /**
181
+ * Get all open trailing stop orders
182
+ *
183
+ * @param client - AlpacaClient instance
184
+ * @param symbol - Optional symbol to filter by
185
+ * @returns Array of open trailing stop orders
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * // Get all trailing stops
190
+ * const allStops = await getOpenTrailingStops(client);
191
+ *
192
+ * // Get trailing stops for specific symbol
193
+ * const appleStops = await getOpenTrailingStops(client, 'AAPL');
194
+ * ```
195
+ */
196
+ export declare function getOpenTrailingStops(client: AlpacaClient, symbol?: string): Promise<AlpacaOrder[]>;
197
+ /**
198
+ * Check if a symbol has an active trailing stop order
199
+ *
200
+ * @param client - AlpacaClient instance
201
+ * @param symbol - Stock symbol to check
202
+ * @returns True if an active trailing stop exists for the symbol
203
+ *
204
+ * @example
205
+ * ```typescript
206
+ * if (await hasActiveTrailingStop(client, 'AAPL')) {
207
+ * console.log('AAPL already has a trailing stop');
208
+ * }
209
+ * ```
210
+ */
211
+ export declare function hasActiveTrailingStop(client: AlpacaClient, symbol: string): Promise<boolean>;
212
+ /**
213
+ * Cancel all trailing stop orders for a specific symbol
214
+ *
215
+ * @param client - AlpacaClient instance
216
+ * @param symbol - Stock symbol
217
+ * @returns Number of orders canceled
218
+ *
219
+ * @example
220
+ * ```typescript
221
+ * const canceled = await cancelTrailingStopsForSymbol(client, 'AAPL');
222
+ * console.log(`Canceled ${canceled} trailing stop orders for AAPL`);
223
+ * ```
224
+ */
225
+ export declare function cancelTrailingStopsForSymbol(client: AlpacaClient, symbol: string): Promise<number>;
226
+ /**
227
+ * Default export object with all trailing stop functions
228
+ */
229
+ declare const _default: {
230
+ createTrailingStop: typeof createTrailingStop;
231
+ updateTrailingStop: typeof updateTrailingStop;
232
+ getTrailingStopHWM: typeof getTrailingStopHWM;
233
+ cancelTrailingStop: typeof cancelTrailingStop;
234
+ createPortfolioTrailingStops: typeof createPortfolioTrailingStops;
235
+ getOpenTrailingStops: typeof getOpenTrailingStops;
236
+ hasActiveTrailingStop: typeof hasActiveTrailingStop;
237
+ cancelTrailingStopsForSymbol: typeof cancelTrailingStopsForSymbol;
238
+ };
239
+ export default _default;
240
+ //# sourceMappingURL=trailing-stops.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trailing-stops.d.ts","sourceRoot":"","sources":["../../../../src/alpaca/trading/trailing-stops.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzC,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAkB,MAAM,0BAA0B,CAAC;AAW/F;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,mBAAmB;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,6DAA6D;IAC7D,IAAI,EAAE,SAAS,CAAC;IAChB,2FAA2F;IAC3F,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,mFAAmF;IACnF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,6BAA6B;IAC7B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,mCAAmC;IACnC,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,sFAAsF;IACtF,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,2CAA2C;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,qDAAqD;IACrD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,2BAA4B,SAAQ,KAAK;gBACxC,OAAO,EAAE,MAAM;CAI5B;AA4CD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,kBAAkB,GACzB,OAAO,CAAC,WAAW,CAAC,CAiDtB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE;IACP,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,GACA,OAAO,CAAC,WAAW,CAAC,CA8CtB;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,qBAAqB,CAAC,CA2BhC;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,IAAI,CAAC,CAsBf;AAED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,2BAA2B,GAClC,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAkFnC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,YAAY,EACpB,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,WAAW,EAAE,CAAC,CA4BxB;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,OAAO,CAAC,CAGlB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,4BAA4B,CAChD,MAAM,EAAE,YAAY,EACpB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,MAAM,CAAC,CA2BjB;AAED;;GAEG;;;;;;;;;;;AACH,wBASE"}