@timmeck/trading-brain 2.31.20 → 2.31.22

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.
@@ -8,9 +8,10 @@ export declare class PriceFetcher {
8
8
  private lastOHLCVFetch;
9
9
  private readonly OHLCV_INTERVAL;
10
10
  private logger;
11
- private consecutiveErrors;
11
+ private providerErrors;
12
+ private providerBackoff;
12
13
  private readonly MAX_CONSECUTIVE_ERRORS;
13
- private backoffMs;
14
+ private readonly MAX_BACKOFF_MS;
14
15
  constructor(config: PaperConfig, repo: PaperRepository);
15
16
  /**
16
17
  * Fetch all prices (current spot + OHLCV if stale).
@@ -24,7 +25,8 @@ export declare class PriceFetcher {
24
25
  private fetchOHLCVData;
25
26
  private mergeCandles;
26
27
  private delay;
27
- private recordError;
28
- private recordSuccess;
28
+ private getBackoff;
29
+ private recordProviderError;
30
+ private recordProviderSuccess;
29
31
  private loadCacheFromDb;
30
32
  }
@@ -7,10 +7,11 @@ export class PriceFetcher {
7
7
  lastOHLCVFetch = 0;
8
8
  OHLCV_INTERVAL = 900_000; // 15 minutes
9
9
  logger = getLogger();
10
- // Rate limiting
11
- consecutiveErrors = 0;
12
- MAX_CONSECUTIVE_ERRORS = 5;
13
- backoffMs = 0;
10
+ // Per-provider rate limiting
11
+ providerErrors = new Map();
12
+ providerBackoff = new Map();
13
+ MAX_CONSECUTIVE_ERRORS = 3;
14
+ MAX_BACKOFF_MS = 30_000;
14
15
  constructor(config, repo) {
15
16
  this.config = config;
16
17
  this.repo = repo;
@@ -46,14 +47,15 @@ export class PriceFetcher {
46
47
  async fetchCryptoPrices() {
47
48
  if (this.config.cryptoIds.length === 0)
48
49
  return;
49
- if (this.backoffMs > 0)
50
- await this.delay(this.backoffMs);
50
+ const backoff = this.getBackoff('coingecko');
51
+ if (backoff > 0)
52
+ await this.delay(backoff);
51
53
  try {
52
54
  const ids = this.config.cryptoIds.join(',');
53
55
  const url = `https://api.coingecko.com/api/v3/simple/price?ids=${ids}&vs_currencies=usd`;
54
56
  const response = await fetch(url);
55
57
  if (!response.ok) {
56
- this.recordError();
58
+ this.recordProviderError('coingecko');
57
59
  this.logger.warn(`CoinGecko price fetch failed: ${response.status}`);
58
60
  return;
59
61
  }
@@ -63,19 +65,22 @@ export class PriceFetcher {
63
65
  this.priceCache.set(id, priceData.usd);
64
66
  }
65
67
  }
66
- this.recordSuccess();
68
+ this.recordProviderSuccess('coingecko');
67
69
  this.logger.debug(`Fetched ${Object.keys(data).length} crypto prices`);
68
70
  }
69
71
  catch (err) {
70
- this.recordError();
72
+ this.recordProviderError('coingecko');
71
73
  this.logger.warn(`CoinGecko price error: ${err instanceof Error ? err.message : String(err)}`);
72
74
  }
73
75
  }
74
76
  async fetchStockPrices() {
75
77
  if (this.config.stockSymbols.length === 0)
76
78
  return;
77
- if (this.backoffMs > 0)
78
- await this.delay(this.backoffMs);
79
+ const backoff = this.getBackoff('yahoo');
80
+ if (backoff > 0)
81
+ await this.delay(backoff);
82
+ let successes = 0;
83
+ let failures = 0;
79
84
  for (const symbol of this.config.stockSymbols) {
80
85
  try {
81
86
  // Rate limit: 500ms between Yahoo calls
@@ -85,8 +90,8 @@ export class PriceFetcher {
85
90
  headers: { 'User-Agent': 'TradingBrain/1.0' },
86
91
  });
87
92
  if (!response.ok) {
88
- this.recordError();
89
- this.logger.warn(`Yahoo Finance ${symbol}: ${response.status}`);
93
+ failures++;
94
+ this.logger.debug(`Yahoo Finance ${symbol}: ${response.status}`);
90
95
  continue;
91
96
  }
92
97
  const data = await response.json();
@@ -102,64 +107,74 @@ export class PriceFetcher {
102
107
  }
103
108
  }
104
109
  }
105
- this.recordSuccess();
110
+ successes++;
106
111
  }
107
112
  catch (err) {
108
- this.recordError();
109
- this.logger.warn(`Yahoo ${symbol} error: ${err instanceof Error ? err.message : String(err)}`);
113
+ failures++;
114
+ this.logger.debug(`Yahoo ${symbol} error: ${err instanceof Error ? err.message : String(err)}`);
110
115
  }
111
116
  }
112
- this.logger.debug(`Fetched stock prices for ${this.config.stockSymbols.length} symbols`);
117
+ // Track provider-level success/failure (not per-symbol)
118
+ if (successes > 0) {
119
+ this.recordProviderSuccess('yahoo');
120
+ }
121
+ else if (failures > 0) {
122
+ this.recordProviderError('yahoo');
123
+ }
124
+ this.logger.debug(`Stock prices: ${successes} ok, ${failures} failed`);
113
125
  }
114
126
  async fetchOHLCVData() {
115
- if (this.backoffMs > 0)
116
- await this.delay(this.backoffMs);
117
127
  // Crypto OHLCV from CoinGecko
128
+ const cgBackoff = this.getBackoff('coingecko');
129
+ if (cgBackoff > 0)
130
+ await this.delay(cgBackoff);
131
+ let cgOk = 0, cgFail = 0;
118
132
  for (const id of this.config.cryptoIds) {
119
133
  try {
120
- // Rate limit: 1.5s between CoinGecko OHLCV calls
121
134
  await this.delay(1500);
122
135
  const url = `https://api.coingecko.com/api/v3/coins/${id}/ohlc?vs_currency=usd&days=1`;
123
136
  const response = await fetch(url);
124
137
  if (!response.ok) {
125
- this.recordError();
126
- this.logger.warn(`CoinGecko OHLCV ${id}: ${response.status}`);
138
+ cgFail++;
139
+ this.logger.debug(`CoinGecko OHLCV ${id}: ${response.status}`);
127
140
  continue;
128
141
  }
129
142
  const data = await response.json();
130
143
  if (!Array.isArray(data))
131
144
  continue;
132
145
  const candles = data.map(d => ({
133
- timestamp: d[0],
134
- open: d[1],
135
- high: d[2],
136
- low: d[3],
137
- close: d[4],
138
- volume: 0,
146
+ timestamp: d[0], open: d[1], high: d[2], low: d[3], close: d[4], volume: 0,
139
147
  }));
140
148
  if (candles.length > 0) {
141
149
  this.candleCache.set(id, this.mergeCandles(id, candles));
142
150
  this.repo.savePrices(id, candles);
143
151
  }
144
- this.recordSuccess();
152
+ cgOk++;
145
153
  }
146
154
  catch (err) {
147
- this.recordError();
148
- this.logger.warn(`CoinGecko OHLCV ${id} error: ${err instanceof Error ? err.message : String(err)}`);
155
+ cgFail++;
156
+ this.logger.debug(`CoinGecko OHLCV ${id} error: ${err instanceof Error ? err.message : String(err)}`);
149
157
  }
150
158
  }
159
+ if (cgOk > 0)
160
+ this.recordProviderSuccess('coingecko');
161
+ else if (cgFail > 0)
162
+ this.recordProviderError('coingecko');
151
163
  // Stock OHLCV from Yahoo
164
+ const yhBackoff = this.getBackoff('yahoo');
165
+ if (yhBackoff > 0)
166
+ await this.delay(yhBackoff);
167
+ let yhOk = 0, yhFail = 0;
152
168
  for (const symbol of this.config.stockSymbols) {
153
169
  try {
154
- // Rate limit: 500ms between Yahoo calls
155
170
  await this.delay(500);
156
171
  const url = `https://query1.finance.yahoo.com/v8/finance/chart/${symbol}?range=5d&interval=5m`;
157
172
  const response = await fetch(url, {
158
173
  headers: { 'User-Agent': 'TradingBrain/1.0' },
159
174
  });
160
175
  if (!response.ok) {
161
- this.recordError();
162
- this.logger.warn(`Yahoo OHLCV ${symbol}: ${response.status}`);
176
+ yhFail++;
177
+ this.logger.debug(`Yahoo OHLCV ${symbol}: ${response.status}`);
163
178
  continue;
164
179
  }
165
180
  const data = await response.json();
@@ -187,13 +202,17 @@ export class PriceFetcher {
187
202
  this.candleCache.set(symbol, this.mergeCandles(symbol, candles));
188
203
  this.repo.savePrices(symbol, candles);
189
204
  }
190
- this.recordSuccess();
205
+ yhOk++;
191
206
  }
192
207
  catch (err) {
193
- this.recordError();
194
- this.logger.warn(`Yahoo OHLCV ${symbol} error: ${err instanceof Error ? err.message : String(err)}`);
208
+ yhFail++;
209
+ this.logger.debug(`Yahoo OHLCV ${symbol} error: ${err instanceof Error ? err.message : String(err)}`);
195
210
  }
196
211
  }
212
+ if (yhOk > 0)
213
+ this.recordProviderSuccess('yahoo');
214
+ else if (yhFail > 0)
215
+ this.recordProviderError('yahoo');
197
216
  // Prune old cache
198
217
  const twoDaysAgo = Date.now() - 2 * 24 * 60 * 60 * 1000;
199
218
  this.repo.pruneOldPrices(twoDaysAgo);
@@ -210,16 +229,21 @@ export class PriceFetcher {
210
229
  delay(ms) {
211
230
  return new Promise(resolve => setTimeout(resolve, ms));
212
231
  }
213
- recordError() {
214
- this.consecutiveErrors++;
215
- if (this.consecutiveErrors >= this.MAX_CONSECUTIVE_ERRORS) {
216
- this.backoffMs = Math.min(30_000, 2_000 * Math.pow(2, this.consecutiveErrors - this.MAX_CONSECUTIVE_ERRORS));
217
- this.logger.warn(`API rate limit backoff: ${this.backoffMs}ms after ${this.consecutiveErrors} consecutive errors`);
232
+ getBackoff(provider) {
233
+ return this.providerBackoff.get(provider) ?? 0;
234
+ }
235
+ recordProviderError(provider) {
236
+ const errors = (this.providerErrors.get(provider) ?? 0) + 1;
237
+ this.providerErrors.set(provider, errors);
238
+ if (errors >= this.MAX_CONSECUTIVE_ERRORS) {
239
+ const backoff = Math.min(this.MAX_BACKOFF_MS, 2_000 * Math.pow(2, errors - this.MAX_CONSECUTIVE_ERRORS));
240
+ this.providerBackoff.set(provider, backoff);
241
+ this.logger.warn(`${provider} backoff: ${backoff}ms after ${errors} consecutive failures`);
218
242
  }
219
243
  }
220
- recordSuccess() {
221
- this.consecutiveErrors = 0;
222
- this.backoffMs = 0;
244
+ recordProviderSuccess(provider) {
245
+ this.providerErrors.set(provider, 0);
246
+ this.providerBackoff.set(provider, 0);
223
247
  }
224
248
  loadCacheFromDb() {
225
249
  const allSymbols = this.getAllSymbols();
@@ -1 +1 @@
1
- {"version":3,"file":"price-fetcher.js","sourceRoot":"","sources":["../../src/paper/price-fetcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"price-fetcher.js","sourceRoot":"","sources":["../../src/paper/price-fetcher.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timmeck/trading-brain",
3
- "version": "2.31.20",
3
+ "version": "2.31.22",
4
4
  "description": "Adaptive trading intelligence system with Hebbian synapses, spreading activation, Wilson Score confidence, and adaptive calibration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",