@ebowwa/quant-rust 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.
- package/README.md +161 -0
- package/bun-ffi.d.ts +54 -0
- package/dist/index.js +576 -0
- package/dist/src/index.d.ts +324 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +403 -0
- package/dist/types/index.d.ts.map +1 -0
- package/native/README.md +62 -0
- package/native/darwin-arm64/libquant_rust.dylib +0 -0
- package/package.json +70 -0
- package/scripts/postinstall.cjs +85 -0
- package/src/ffi.rs +496 -0
- package/src/index.ts +1073 -0
- package/src/indicators/ma.rs +222 -0
- package/src/indicators/mod.rs +18 -0
- package/src/indicators/momentum.rs +353 -0
- package/src/indicators/sr.rs +195 -0
- package/src/indicators/trend.rs +351 -0
- package/src/indicators/volatility.rs +270 -0
- package/src/indicators/volume.rs +213 -0
- package/src/lib.rs +130 -0
- package/src/patterns/breakout.rs +431 -0
- package/src/patterns/chart.rs +772 -0
- package/src/patterns/mod.rs +394 -0
- package/src/patterns/sr.rs +423 -0
- package/src/prediction/amm.rs +338 -0
- package/src/prediction/arbitrage.rs +230 -0
- package/src/prediction/calibration.rs +317 -0
- package/src/prediction/kelly.rs +232 -0
- package/src/prediction/lmsr.rs +194 -0
- package/src/prediction/mod.rs +59 -0
- package/src/prediction/odds.rs +229 -0
- package/src/prediction/pnl.rs +254 -0
- package/src/prediction/risk.rs +228 -0
- package/src/risk/beta.rs +257 -0
- package/src/risk/drawdown.rs +256 -0
- package/src/risk/leverage.rs +201 -0
- package/src/risk/mod.rs +388 -0
- package/src/risk/portfolio.rs +287 -0
- package/src/risk/ratios.rs +290 -0
- package/src/risk/sizing.rs +194 -0
- package/src/risk/var.rs +222 -0
- package/src/stats/cdf.rs +257 -0
- package/src/stats/correlation.rs +225 -0
- package/src/stats/distribution.rs +194 -0
- package/src/stats/hypothesis.rs +177 -0
- package/src/stats/matrix.rs +346 -0
- package/src/stats/mod.rs +257 -0
- package/src/stats/regression.rs +239 -0
- package/src/stats/rolling.rs +193 -0
- package/src/stats/timeseries.rs +263 -0
- package/src/types.rs +224 -0
- package/src/utils/mod.rs +215 -0
- package/src/utils/normalize.rs +192 -0
- package/src/utils/price.rs +167 -0
- package/src/utils/quantiles.rs +177 -0
- package/src/utils/returns.rs +158 -0
- package/src/utils/rolling.rs +97 -0
- package/src/utils/stats.rs +154 -0
- package/types/index.ts +513 -0
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Bun FFI wrapper for quant-rust
|
|
3
|
+
*
|
|
4
|
+
* This module provides TypeScript bindings for the Rust quant library
|
|
5
|
+
* using Bun's FFI capabilities.
|
|
6
|
+
*
|
|
7
|
+
* @packageDocumentation
|
|
8
|
+
*/
|
|
9
|
+
import type { OHLCV, AMMState, AMMCostResult, AMMPriceImpactResult, LMSRPriceResult, KellyResult, ArbitrageResult, OddsConversion, VaRResult, DrawdownResult, SharpeResult } from "../types/index.js";
|
|
10
|
+
/**
|
|
11
|
+
* Get the library version
|
|
12
|
+
*/
|
|
13
|
+
export declare function getVersion(): string;
|
|
14
|
+
/**
|
|
15
|
+
* Clear the last error
|
|
16
|
+
*/
|
|
17
|
+
export declare function clearError(): void;
|
|
18
|
+
/**
|
|
19
|
+
* Get the path to the loaded native library
|
|
20
|
+
*/
|
|
21
|
+
export declare function getLibraryPath(): string;
|
|
22
|
+
/**
|
|
23
|
+
* Create an OHLCV candlestick data structure
|
|
24
|
+
*
|
|
25
|
+
* @param timestamp - Unix timestamp in milliseconds
|
|
26
|
+
* @param open - Opening price
|
|
27
|
+
* @param high - High price
|
|
28
|
+
* @param low - Low price
|
|
29
|
+
* @param close - Closing price
|
|
30
|
+
* @param volume - Volume
|
|
31
|
+
* @returns OHLCV object
|
|
32
|
+
*/
|
|
33
|
+
export declare function createOHLCV(timestamp: number, open: number, high: number, low: number, close: number, volume: number): OHLCV;
|
|
34
|
+
/**
|
|
35
|
+
* Create an AMM state for constant-product AMMs
|
|
36
|
+
*
|
|
37
|
+
* @param poolYes - YES pool reserves
|
|
38
|
+
* @param poolNo - NO pool reserves
|
|
39
|
+
* @param fee - Fee as decimal (e.g., 0.003 for 0.3%)
|
|
40
|
+
* @returns AMMState object
|
|
41
|
+
*/
|
|
42
|
+
export declare function createAMM(poolYes: number, poolNo: number, fee: number): AMMState;
|
|
43
|
+
/**
|
|
44
|
+
* Calculate the cost to buy shares from a constant-product AMM
|
|
45
|
+
*
|
|
46
|
+
* Uses the formula: cost = new_pool_no - pool_no where new_pool_no = k / (pool_yes + shares)
|
|
47
|
+
*
|
|
48
|
+
* @param poolYes - Current YES pool reserves
|
|
49
|
+
* @param poolNo - Current NO pool reserves
|
|
50
|
+
* @param outcome - Whether to buy 'yes' or 'no' shares
|
|
51
|
+
* @param shares - Number of shares to buy
|
|
52
|
+
* @returns Cost in currency units (always positive, number for API compatibility)
|
|
53
|
+
*/
|
|
54
|
+
export declare function ammCalculateCost(poolYes: number, poolNo: number, outcome: 'yes' | 'no' | boolean, shares: number): number;
|
|
55
|
+
/**
|
|
56
|
+
* Calculate the cost to buy shares from a constant-product AMM (full result)
|
|
57
|
+
*
|
|
58
|
+
* @param poolYes - Current YES pool reserves
|
|
59
|
+
* @param poolNo - Current NO pool reserves
|
|
60
|
+
* @param outcome - Whether to buy 'yes' or 'no' shares
|
|
61
|
+
* @param shares - Number of shares to buy
|
|
62
|
+
* @returns Full cost calculation result with cost and avg_price (always positive)
|
|
63
|
+
*/
|
|
64
|
+
export declare function ammCalculateCostFull(poolYes: number, poolNo: number, outcome: 'yes' | 'no' | boolean, shares: number): AMMCostResult;
|
|
65
|
+
/**
|
|
66
|
+
* Calculate the price impact for a trade on a constant-product AMM
|
|
67
|
+
*
|
|
68
|
+
* @param poolYes - Current YES pool reserves
|
|
69
|
+
* @param poolNo - Current NO pool reserves
|
|
70
|
+
* @param outcome - Whether to buy 'yes' or 'no' shares
|
|
71
|
+
* @param shares - Number of shares to buy
|
|
72
|
+
* @returns Price impact analysis
|
|
73
|
+
*/
|
|
74
|
+
export declare function ammPriceImpact(poolYes: number, poolNo: number, outcome: 'yes' | 'no' | boolean, shares: number): AMMPriceImpactResult;
|
|
75
|
+
export declare const amm_buy_cost: typeof ammCalculateCost;
|
|
76
|
+
export declare const amm_calculate_cost: typeof ammCalculateCost;
|
|
77
|
+
export declare const amm_price_impact: typeof ammPriceImpact;
|
|
78
|
+
/**
|
|
79
|
+
* Calculate LMSR prices for a prediction market
|
|
80
|
+
*
|
|
81
|
+
* Uses the LMSR formula: price_yes = exp(q_yes/b) / (exp(q_yes/b) + exp(q_no/b))
|
|
82
|
+
*
|
|
83
|
+
* @param yesShares - YES shares outstanding
|
|
84
|
+
* @param noShares - NO shares outstanding
|
|
85
|
+
* @param b - Liquidity parameter (controls price sensitivity)
|
|
86
|
+
* @returns LMSR price result with yes_price and no_price
|
|
87
|
+
*/
|
|
88
|
+
export declare function lmsrPrice(yesShares: number, noShares: number, b: number): LMSRPriceResult;
|
|
89
|
+
/**
|
|
90
|
+
* Calculate the cost to buy shares using LMSR
|
|
91
|
+
*
|
|
92
|
+
* Uses the LMSR cost formula: C(q') - C(q) = b * ln(sum(exp(q'_i/b))) - b * ln(sum(exp(q_i/b)))
|
|
93
|
+
*
|
|
94
|
+
* @param yesShares - Current YES shares outstanding
|
|
95
|
+
* @param noShares - Current NO shares outstanding
|
|
96
|
+
* @param b - Liquidity parameter
|
|
97
|
+
* @param outcome - Whether to buy 'yes' or 'no' shares (or boolean)
|
|
98
|
+
* @param shares - Number of shares to buy
|
|
99
|
+
* @returns Cost calculation result
|
|
100
|
+
*/
|
|
101
|
+
export declare function lmsrCost(yesShares: number, noShares: number, b: number, outcome: 'yes' | 'no' | boolean, shares: number): AMMCostResult;
|
|
102
|
+
/**
|
|
103
|
+
* Calculate LMSR price and cost (unified function)
|
|
104
|
+
*
|
|
105
|
+
* @param yesShares - Current YES shares outstanding
|
|
106
|
+
* @param noShares - Current NO shares outstanding
|
|
107
|
+
* @param liquidityParam - Liquidity parameter (b)
|
|
108
|
+
* @param operation - "price" or "cost"
|
|
109
|
+
* @param outcome - "yes" or "no"
|
|
110
|
+
* @param sharesToBuy - Number of shares (only for cost operation)
|
|
111
|
+
* @returns Price or cost result
|
|
112
|
+
*/
|
|
113
|
+
export declare function lmsrCalculate(yesShares: number, noShares: number, liquidityParam: number, operation: "price" | "cost", outcome: "yes" | "no", sharesToBuy?: number): LMSRPriceResult | AMMCostResult;
|
|
114
|
+
/**
|
|
115
|
+
* Calculate the Kelly criterion for optimal position sizing
|
|
116
|
+
*
|
|
117
|
+
* The Kelly criterion determines the optimal fraction of bankroll to bet
|
|
118
|
+
* based on your estimated probability vs the market price.
|
|
119
|
+
*
|
|
120
|
+
* @param yourProbability - Your estimated probability of winning (0-1)
|
|
121
|
+
* @param marketPrice - Current market price to buy shares (0-1)
|
|
122
|
+
* @param bankroll - Your total bankroll in currency units
|
|
123
|
+
* @returns Kelly criterion result with various bet sizes
|
|
124
|
+
*/
|
|
125
|
+
export declare function kellyCriterion(yourProbability: number, marketPrice: number, bankroll: number): KellyResult;
|
|
126
|
+
export declare const kelly_criterion: typeof kellyCriterion;
|
|
127
|
+
/**
|
|
128
|
+
* Detect arbitrage opportunities in prediction markets
|
|
129
|
+
*
|
|
130
|
+
* If yes_price + no_price < 1, there's an arbitrage opportunity.
|
|
131
|
+
*
|
|
132
|
+
* @param yesPrice - Current YES share price (0-1)
|
|
133
|
+
* @param noPrice - Current NO share price (0-1)
|
|
134
|
+
* @returns Arbitrage analysis with profit field for API compatibility
|
|
135
|
+
*/
|
|
136
|
+
export declare function detectArbitrage(yesPrice: number, noPrice: number): ArbitrageResult & {
|
|
137
|
+
profit: number;
|
|
138
|
+
};
|
|
139
|
+
export declare const detect_arbitrage: typeof detectArbitrage;
|
|
140
|
+
/** Odds input type */
|
|
141
|
+
export type OddsType = "probability" | "decimal" | "american";
|
|
142
|
+
/**
|
|
143
|
+
* Convert between probability, decimal odds, and American odds
|
|
144
|
+
*
|
|
145
|
+
* @param value - The value to convert
|
|
146
|
+
* @param fromType - The type of the input value
|
|
147
|
+
* @param toType - Optional target type (if specified, returns just that value)
|
|
148
|
+
* @returns Converted odds in all formats, or single value if toType specified
|
|
149
|
+
*/
|
|
150
|
+
export declare function convertOdds(value: number, fromType: OddsType, toType?: OddsType): OddsConversion | number;
|
|
151
|
+
export declare const convert_odds: typeof convertOdds;
|
|
152
|
+
/**
|
|
153
|
+
* Calculate the mean (average) of an array of numbers
|
|
154
|
+
*
|
|
155
|
+
* @param data - Array of numbers
|
|
156
|
+
* @returns Mean value, or NaN if array is empty
|
|
157
|
+
*/
|
|
158
|
+
export declare function mean(data: number[]): number;
|
|
159
|
+
/**
|
|
160
|
+
* Calculate the standard deviation of an array of numbers
|
|
161
|
+
*
|
|
162
|
+
* @param data - Array of numbers
|
|
163
|
+
* @returns Standard deviation, or NaN if array is empty
|
|
164
|
+
*/
|
|
165
|
+
export declare function stdDev(data: number[]): number;
|
|
166
|
+
/**
|
|
167
|
+
* Calculate the variance of an array of numbers
|
|
168
|
+
*
|
|
169
|
+
* @param data - Array of numbers
|
|
170
|
+
* @returns Variance, or NaN if array is empty
|
|
171
|
+
*/
|
|
172
|
+
export declare function variance(data: number[]): number;
|
|
173
|
+
/**
|
|
174
|
+
* Calculate the Pearson correlation coefficient between two arrays
|
|
175
|
+
*
|
|
176
|
+
* @param x - First array of numbers
|
|
177
|
+
* @param y - Second array of numbers
|
|
178
|
+
* @returns Correlation coefficient (-1 to 1), or NaN if arrays are invalid
|
|
179
|
+
*/
|
|
180
|
+
export declare function correlation(x: number[], y: number[]): number;
|
|
181
|
+
export declare const std_dev: typeof stdDev;
|
|
182
|
+
/**
|
|
183
|
+
* Simple Moving Average (SMA)
|
|
184
|
+
*
|
|
185
|
+
* @param prices - Array of prices
|
|
186
|
+
* @param period - Number of periods to average
|
|
187
|
+
* @returns Array of SMA values
|
|
188
|
+
*/
|
|
189
|
+
export declare function sma(prices: number[], period: number): number[];
|
|
190
|
+
/**
|
|
191
|
+
* Exponential Moving Average (EMA)
|
|
192
|
+
*
|
|
193
|
+
* @param prices - Array of prices
|
|
194
|
+
* @param period - EMA period
|
|
195
|
+
* @returns Array of EMA values
|
|
196
|
+
*/
|
|
197
|
+
export declare function ema(prices: number[], period: number): number[];
|
|
198
|
+
/**
|
|
199
|
+
* Relative Strength Index (RSI)
|
|
200
|
+
*
|
|
201
|
+
* @param prices - Array of prices
|
|
202
|
+
* @param period - RSI period (default: 14)
|
|
203
|
+
* @returns Array of RSI values (0-100)
|
|
204
|
+
*/
|
|
205
|
+
export declare function rsi(prices: number[], period?: number): number[];
|
|
206
|
+
/**
|
|
207
|
+
* MACD (Moving Average Convergence Divergence)
|
|
208
|
+
*
|
|
209
|
+
* @param prices - Array of prices
|
|
210
|
+
* @param fastPeriod - Fast EMA period (default: 12)
|
|
211
|
+
* @param slowPeriod - Slow EMA period (default: 26)
|
|
212
|
+
* @param signalPeriod - Signal line period (default: 9)
|
|
213
|
+
* @returns Object with macd, signal, and histogram arrays
|
|
214
|
+
*/
|
|
215
|
+
export declare function macd(prices: number[], fastPeriod?: number, slowPeriod?: number, signalPeriod?: number): {
|
|
216
|
+
macd: number[];
|
|
217
|
+
signal: number[];
|
|
218
|
+
histogram: number[];
|
|
219
|
+
};
|
|
220
|
+
/**
|
|
221
|
+
* Calculate Value at Risk (VaR) and Expected Shortfall (CVaR)
|
|
222
|
+
*
|
|
223
|
+
* @param returns - Array of returns
|
|
224
|
+
* @param confidenceLevel - Confidence level (default: 0.95)
|
|
225
|
+
* @returns VaR result
|
|
226
|
+
*/
|
|
227
|
+
export declare function calculateVar(returns: number[], confidenceLevel?: number): VaRResult;
|
|
228
|
+
/**
|
|
229
|
+
* Calculate drawdown analysis from equity curve
|
|
230
|
+
*
|
|
231
|
+
* @param equityCurve - Array of equity values over time
|
|
232
|
+
* @returns Drawdown analysis result
|
|
233
|
+
*/
|
|
234
|
+
export declare function calculateDrawdown(equityCurve: number[]): DrawdownResult;
|
|
235
|
+
/**
|
|
236
|
+
* Calculate Sharpe ratio
|
|
237
|
+
*
|
|
238
|
+
* @param returns - Array of returns
|
|
239
|
+
* @param riskFreeRate - Annual risk-free rate (default: 0.04)
|
|
240
|
+
* @param periodsPerYear - Trading periods per year (default: 252)
|
|
241
|
+
* @returns Annualized Sharpe ratio (number for API compatibility)
|
|
242
|
+
*/
|
|
243
|
+
export declare function calculateSharpeRatio(returns: number[], riskFreeRate?: number, periodsPerYear?: number): number;
|
|
244
|
+
/**
|
|
245
|
+
* Calculate Sharpe ratio with full result
|
|
246
|
+
*
|
|
247
|
+
* @param returns - Array of returns
|
|
248
|
+
* @param riskFreeRate - Annual risk-free rate (default: 0.04)
|
|
249
|
+
* @param periodsPerYear - Trading periods per year (default: 252)
|
|
250
|
+
* @returns Full Sharpe ratio result object
|
|
251
|
+
*/
|
|
252
|
+
export declare function calculateSharpeRatioFull(returns: number[], riskFreeRate?: number, periodsPerYear?: number): SharpeResult;
|
|
253
|
+
export declare const calculate_var: typeof calculateVar;
|
|
254
|
+
export declare const calculate_drawdown: typeof calculateDrawdown;
|
|
255
|
+
export declare const calculate_sharpe_ratio: typeof calculateSharpeRatio;
|
|
256
|
+
export declare const sharpeRatio: typeof calculateSharpeRatio;
|
|
257
|
+
/**
|
|
258
|
+
* Calculate Sortino ratio (only penalizes downside volatility)
|
|
259
|
+
*
|
|
260
|
+
* @param returns - Array of returns
|
|
261
|
+
* @param riskFreeRate - Annual risk-free rate (default: 0.04)
|
|
262
|
+
* @param periodsPerYear - Trading periods per year (default: 252)
|
|
263
|
+
* @returns Sortino ratio
|
|
264
|
+
*/
|
|
265
|
+
export declare function calculateSortinoRatio(returns: number[], riskFreeRate?: number, periodsPerYear?: number): number;
|
|
266
|
+
/**
|
|
267
|
+
* Calculate beta and alpha against a benchmark
|
|
268
|
+
*
|
|
269
|
+
* @param assetReturns - Array of asset returns
|
|
270
|
+
* @param benchmarkReturns - Array of benchmark returns
|
|
271
|
+
* @returns Object with beta and alpha values
|
|
272
|
+
*/
|
|
273
|
+
export declare function calculateBetaAlpha(assetReturns: number[], benchmarkReturns: number[]): {
|
|
274
|
+
beta: number;
|
|
275
|
+
alpha: number;
|
|
276
|
+
};
|
|
277
|
+
export declare const calculate_sortino_ratio: typeof calculateSortinoRatio;
|
|
278
|
+
export declare const calculate_beta_alpha: typeof calculateBetaAlpha;
|
|
279
|
+
export * from "../types/index.js";
|
|
280
|
+
declare const _default: {
|
|
281
|
+
getVersion: typeof getVersion;
|
|
282
|
+
clearError: typeof clearError;
|
|
283
|
+
getLibraryPath: typeof getLibraryPath;
|
|
284
|
+
createOHLCV: typeof createOHLCV;
|
|
285
|
+
createAMM: typeof createAMM;
|
|
286
|
+
ammCalculateCost: typeof ammCalculateCost;
|
|
287
|
+
ammCalculateCostFull: typeof ammCalculateCostFull;
|
|
288
|
+
ammPriceImpact: typeof ammPriceImpact;
|
|
289
|
+
amm_buy_cost: typeof ammCalculateCost;
|
|
290
|
+
amm_calculate_cost: typeof ammCalculateCost;
|
|
291
|
+
amm_price_impact: typeof ammPriceImpact;
|
|
292
|
+
lmsrPrice: typeof lmsrPrice;
|
|
293
|
+
lmsrCost: typeof lmsrCost;
|
|
294
|
+
lmsrCalculate: typeof lmsrCalculate;
|
|
295
|
+
kellyCriterion: typeof kellyCriterion;
|
|
296
|
+
kelly_criterion: typeof kellyCriterion;
|
|
297
|
+
detectArbitrage: typeof detectArbitrage;
|
|
298
|
+
detect_arbitrage: typeof detectArbitrage;
|
|
299
|
+
convertOdds: typeof convertOdds;
|
|
300
|
+
convert_odds: typeof convertOdds;
|
|
301
|
+
mean: typeof mean;
|
|
302
|
+
stdDev: typeof stdDev;
|
|
303
|
+
std_dev: typeof stdDev;
|
|
304
|
+
variance: typeof variance;
|
|
305
|
+
correlation: typeof correlation;
|
|
306
|
+
sma: typeof sma;
|
|
307
|
+
ema: typeof ema;
|
|
308
|
+
rsi: typeof rsi;
|
|
309
|
+
macd: typeof macd;
|
|
310
|
+
calculateVar: typeof calculateVar;
|
|
311
|
+
calculate_var: typeof calculateVar;
|
|
312
|
+
calculateDrawdown: typeof calculateDrawdown;
|
|
313
|
+
calculate_drawdown: typeof calculateDrawdown;
|
|
314
|
+
calculateSharpeRatio: typeof calculateSharpeRatio;
|
|
315
|
+
calculateSharpeRatioFull: typeof calculateSharpeRatioFull;
|
|
316
|
+
calculate_sharpe_ratio: typeof calculateSharpeRatio;
|
|
317
|
+
sharpeRatio: typeof calculateSharpeRatio;
|
|
318
|
+
calculateSortinoRatio: typeof calculateSortinoRatio;
|
|
319
|
+
calculate_sortino_ratio: typeof calculateSortinoRatio;
|
|
320
|
+
calculateBetaAlpha: typeof calculateBetaAlpha;
|
|
321
|
+
calculate_beta_alpha: typeof calculateBetaAlpha;
|
|
322
|
+
};
|
|
323
|
+
export default _default;
|
|
324
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|