codifx 0.1.3 → 0.1.4
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 +131 -0
- package/dist/cli/commands/scan.d.ts +2 -0
- package/dist/cli/commands/scan.d.ts.map +1 -1
- package/dist/cli/commands/scan.js +38 -4
- package/dist/cli/commands/scan.js.map +1 -1
- package/dist/cli/index.js +4 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/config/loader.d.ts +13 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +41 -0
- package/dist/config/loader.js.map +1 -1
- package/dist/data/provider.d.ts +1 -1
- package/dist/data/provider.d.ts.map +1 -1
- package/dist/data/provider.js.map +1 -1
- package/dist/data/yahoo.d.ts +2 -1
- package/dist/data/yahoo.d.ts.map +1 -1
- package/dist/data/yahoo.js +16 -4
- package/dist/data/yahoo.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -62,6 +62,137 @@ codifx scan --symbols BBCA TLKM --html
|
|
|
62
62
|
codifx scan --symbols BBCA TLKM --log
|
|
63
63
|
```
|
|
64
64
|
|
|
65
|
+
### Custom Profiles & Watchlists
|
|
66
|
+
|
|
67
|
+
Create custom trading strategies with your own profiles and symbol lists.
|
|
68
|
+
|
|
69
|
+
#### Creating a Custom Profile
|
|
70
|
+
|
|
71
|
+
Create a JSON file (e.g., `my-strategy.profile.json`):
|
|
72
|
+
|
|
73
|
+
```json
|
|
74
|
+
{
|
|
75
|
+
"tradingType": "day",
|
|
76
|
+
"timeframes": {
|
|
77
|
+
"primary": "5m",
|
|
78
|
+
"confirmation": "15m"
|
|
79
|
+
},
|
|
80
|
+
"indicators": {
|
|
81
|
+
"trend": ["EMA10", "EMA20", "EMA50"],
|
|
82
|
+
"oscillators": ["RSI", "Stochastic", "MACD", "ADX"]
|
|
83
|
+
},
|
|
84
|
+
"weights": {
|
|
85
|
+
"trend": 40,
|
|
86
|
+
"oscillator": 60
|
|
87
|
+
},
|
|
88
|
+
"filters": {
|
|
89
|
+
"minVolume": 1000000,
|
|
90
|
+
"minADX": 20,
|
|
91
|
+
"atrMinPercent": 1.0,
|
|
92
|
+
"atrMaxPercent": 4.0
|
|
93
|
+
},
|
|
94
|
+
"scoring": {
|
|
95
|
+
"minScore": 70
|
|
96
|
+
},
|
|
97
|
+
"dataSource": {
|
|
98
|
+
"market": "IDX",
|
|
99
|
+
"provider": "yahoo"
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
**Key Parameters:**
|
|
105
|
+
|
|
106
|
+
- `weights.trend` / `weights.oscillator` - Must total 100
|
|
107
|
+
- `scoring.minScore` - Higher = more selective (60-80 recommended)
|
|
108
|
+
- `filters.minVolume` - Daily volume threshold
|
|
109
|
+
- `filters.minADX` - Trend strength (15-25 typical)
|
|
110
|
+
|
|
111
|
+
#### Creating a Custom Watchlist
|
|
112
|
+
|
|
113
|
+
**Simple Array Format:**
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
["BBCA", "TLKM", "ASII", "UNVR", "ICBP"]
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
**Object Format with Metadata:**
|
|
120
|
+
|
|
121
|
+
```json
|
|
122
|
+
{
|
|
123
|
+
"name": "Banking Sector",
|
|
124
|
+
"market": "IDX",
|
|
125
|
+
"symbols": ["BBCA", "BBNI", "BBRI", "BMRI", "BDMN", "BNGA"]
|
|
126
|
+
}
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
**Multi-Market Format:**
|
|
130
|
+
|
|
131
|
+
```json
|
|
132
|
+
[
|
|
133
|
+
{
|
|
134
|
+
"name": "IDX Blue Chips",
|
|
135
|
+
"market": "IDX",
|
|
136
|
+
"symbols": ["BBCA", "TLKM", "ASII", "UNVR"]
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
"name": "US Tech",
|
|
140
|
+
"market": "NASDAQ",
|
|
141
|
+
"symbols": ["AAPL", "MSFT", "GOOGL", "NVDA"]
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
#### Usage Examples
|
|
147
|
+
|
|
148
|
+
```bash
|
|
149
|
+
# Use custom profile only
|
|
150
|
+
codifx scan --profile aggressive-day.json --symbols BBCA TLKM
|
|
151
|
+
|
|
152
|
+
# Use custom watchlist only
|
|
153
|
+
codifx scan --watchlist banking-sector.json --html
|
|
154
|
+
|
|
155
|
+
# Combine custom profile + watchlist
|
|
156
|
+
codifx scan \
|
|
157
|
+
--profile scalp.json \
|
|
158
|
+
--watchlist high-volume.json \
|
|
159
|
+
--date 2025-12-22 \
|
|
160
|
+
--html
|
|
161
|
+
|
|
162
|
+
# Built-in trade type + custom watchlist
|
|
163
|
+
codifx scan --trade-type swing --watchlist my-stocks.json
|
|
164
|
+
|
|
165
|
+
# All options combined
|
|
166
|
+
codifx scan \
|
|
167
|
+
--profile my-strategy.json \
|
|
168
|
+
--watchlist tech-stocks.json \
|
|
169
|
+
--direction buy \
|
|
170
|
+
--date 2025-12-20 \
|
|
171
|
+
--html \
|
|
172
|
+
--log
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**Symbol Priority:** `--symbol` > `--symbols` > `--watchlist` > profile default
|
|
176
|
+
|
|
177
|
+
### Historical Backtesting
|
|
178
|
+
|
|
179
|
+
Test your strategy with historical data (max 7 days back):
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
# Scan as of specific date
|
|
183
|
+
codifx scan --symbols BBCA TLKM --date 2025-12-22
|
|
184
|
+
|
|
185
|
+
# Backtest with HTML dashboard
|
|
186
|
+
codifx scan --symbols BBCA --date 2025-12-20 --html --log
|
|
187
|
+
|
|
188
|
+
# Compare historical vs current
|
|
189
|
+
codifx scan --symbols BBCA --date 2025-12-20 --log
|
|
190
|
+
codifx scan --symbols BBCA --log # Today's scan
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
**Date Format**: `YYYY-MM-DD` (e.g., `2025-12-22`)
|
|
194
|
+
**Limitation**: Maximum 7 days back, cannot be in the future
|
|
195
|
+
|
|
65
196
|
### Profile Management
|
|
66
197
|
|
|
67
198
|
```bash
|
|
@@ -6,6 +6,7 @@ import { type Market } from "../../utils/symbols.js";
|
|
|
6
6
|
export declare function scanCommand(options: {
|
|
7
7
|
tradeType?: TradingType;
|
|
8
8
|
profile?: string;
|
|
9
|
+
watchlist?: string;
|
|
9
10
|
symbol?: string;
|
|
10
11
|
symbols?: string[];
|
|
11
12
|
market?: Market;
|
|
@@ -13,5 +14,6 @@ export declare function scanCommand(options: {
|
|
|
13
14
|
verbose?: boolean;
|
|
14
15
|
log?: string | boolean;
|
|
15
16
|
html?: string | boolean;
|
|
17
|
+
date?: string;
|
|
16
18
|
}): Promise<void>;
|
|
17
19
|
//# sourceMappingURL=scan.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAOvD,OAAO,EAAoB,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAMtE,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACvC,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"scan.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAOvD,OAAO,EAAoB,KAAK,MAAM,EAAE,MAAM,wBAAwB,CAAA;AAMtE,wBAAsB,WAAW,CAAC,OAAO,EAAE;IACvC,SAAS,CAAC,EAAE,WAAW,CAAA;IACvB,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACtB,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAA;IACvB,IAAI,CAAC,EAAE,MAAM,CAAA;CAChB,iBAyXA"}
|
|
@@ -15,6 +15,27 @@ import { HTMLGenerator } from "../../utils/html-generator.js";
|
|
|
15
15
|
export async function scanCommand(options) {
|
|
16
16
|
const spinner = ora("Initializing scanner").start();
|
|
17
17
|
try {
|
|
18
|
+
// Validate and parse date parameter
|
|
19
|
+
let targetDate;
|
|
20
|
+
if (options.date) {
|
|
21
|
+
targetDate = new Date(options.date);
|
|
22
|
+
// Validate date format
|
|
23
|
+
if (isNaN(targetDate.getTime())) {
|
|
24
|
+
throw new Error("Invalid date format. Use YYYY-MM-DD (e.g., 2025-12-22)");
|
|
25
|
+
}
|
|
26
|
+
// Validate max 7 days back
|
|
27
|
+
const today = new Date();
|
|
28
|
+
today.setHours(0, 0, 0, 0); // Reset to start of day
|
|
29
|
+
targetDate.setHours(23, 59, 59, 999); // Set to end of day
|
|
30
|
+
const daysDiff = Math.floor((today.getTime() - targetDate.getTime()) / (1000 * 60 * 60 * 24));
|
|
31
|
+
if (daysDiff < 0) {
|
|
32
|
+
throw new Error("Date cannot be in the future");
|
|
33
|
+
}
|
|
34
|
+
if (daysDiff > 7) {
|
|
35
|
+
throw new Error("Date cannot be more than 7 days back");
|
|
36
|
+
}
|
|
37
|
+
spinner.info(`Historical scan for date: ${options.date}`);
|
|
38
|
+
}
|
|
18
39
|
// Validate direction parameter
|
|
19
40
|
const directionFilter = options.direction?.toLowerCase() || "both";
|
|
20
41
|
if (!["buy", "sell", "both"].includes(directionFilter)) {
|
|
@@ -40,13 +61,28 @@ export async function scanCommand(options) {
|
|
|
40
61
|
}
|
|
41
62
|
spinner.succeed("Data provider ready");
|
|
42
63
|
// Get symbols to scan
|
|
64
|
+
// Priority: --symbol > --symbols > --watchlist > profile.dataSource
|
|
43
65
|
let symbols = [];
|
|
66
|
+
let market = options.market || profile.dataSource?.market || "NASDAQ";
|
|
44
67
|
if (options.symbol) {
|
|
45
68
|
symbols = [options.symbol];
|
|
46
69
|
}
|
|
47
70
|
else if (options.symbols) {
|
|
48
71
|
symbols = options.symbols;
|
|
49
72
|
}
|
|
73
|
+
else if (options.watchlist) {
|
|
74
|
+
// Load from watchlist file
|
|
75
|
+
const { loadWatchlist } = await import("../../config/loader.js");
|
|
76
|
+
const watchlist = await loadWatchlist(options.watchlist);
|
|
77
|
+
symbols = watchlist.symbols;
|
|
78
|
+
// Use market from watchlist if not specified via --market
|
|
79
|
+
if (!options.market && watchlist.market) {
|
|
80
|
+
market = watchlist.market;
|
|
81
|
+
}
|
|
82
|
+
if (watchlist.name) {
|
|
83
|
+
spinner.info(`Loaded watchlist: ${watchlist.name} (${symbols.length} symbols)`);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
50
86
|
else {
|
|
51
87
|
// Use default symbols from profile or fallback
|
|
52
88
|
symbols = profile.dataSource?.defaultSymbols || [
|
|
@@ -59,8 +95,6 @@ export async function scanCommand(options) {
|
|
|
59
95
|
if (!symbols || symbols.length === 0) {
|
|
60
96
|
symbols = ["AAPL", "MSFT", "GOOGL", "AMZN", "TSLA"];
|
|
61
97
|
}
|
|
62
|
-
// Get market from options or profile
|
|
63
|
-
const market = options.market || profile.dataSource?.market || "NASDAQ";
|
|
64
98
|
// Normalize symbols with market suffix
|
|
65
99
|
symbols = normalizeSymbols(symbols, market);
|
|
66
100
|
if (market !== "NASDAQ") {
|
|
@@ -109,8 +143,8 @@ export async function scanCommand(options) {
|
|
|
109
143
|
progressBar.update(i, { status: `Analyzing ${symbol}...` });
|
|
110
144
|
try {
|
|
111
145
|
// Fetch data
|
|
112
|
-
const primaryData = await provider.fetchOHLCV(symbol, primaryTF, dataCount);
|
|
113
|
-
const confirmationData = await provider.fetchOHLCV(symbol, confirmationTF, dataCount);
|
|
146
|
+
const primaryData = await provider.fetchOHLCV(symbol, primaryTF, dataCount, targetDate);
|
|
147
|
+
const confirmationData = await provider.fetchOHLCV(symbol, confirmationTF, dataCount, targetDate);
|
|
114
148
|
// Analyze
|
|
115
149
|
const analysis = await ScannerEngine.analyze(symbol, primaryData, confirmationData, profile);
|
|
116
150
|
if (analysis.signal) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"scan.js","sourceRoot":"","sources":["../../../src/cli/commands/scan.ts"],"names":[],"mappings":"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"}
|
package/dist/cli/index.js
CHANGED
|
@@ -29,8 +29,12 @@ program
|
|
|
29
29
|
.description("Scan live market data for trading signals")
|
|
30
30
|
.option("-s, --symbol <symbol>", "Single symbol to scan")
|
|
31
31
|
.option("-l, --symbols <symbols...>", "Multiple symbols to scan")
|
|
32
|
+
.option("-t, --trade-type <type>", "Trading type: scalp, day, or swing")
|
|
33
|
+
.option("-p, --profile <path>", "Path to custom profile configuration")
|
|
34
|
+
.option("-w, --watchlist <path>", "Path to custom watchlist JSON file")
|
|
32
35
|
.option("-m, --market <market>", "Market: IDX, NASDAQ, NYSE, CRYPTO", "IDX")
|
|
33
36
|
.option("-d, --direction <direction>", "Filter by signal direction: buy, sell, or both", "both")
|
|
37
|
+
.option("--date <date>", "Historical date for backtesting (YYYY-MM-DD, max 7 days back)")
|
|
34
38
|
.option("--log [filepath]", "Save detailed scan log to file (auto-location if no path specified)")
|
|
35
39
|
.option("--html [filepath]", "Generate HTML dashboard and open in browser")
|
|
36
40
|
.action(async (options) => {
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/config/loader.d.ts
CHANGED
|
@@ -2,6 +2,11 @@
|
|
|
2
2
|
* Configuration profile loader
|
|
3
3
|
*/
|
|
4
4
|
import type { Profile } from "../types/index.js";
|
|
5
|
+
export interface WatchlistFile {
|
|
6
|
+
name?: string;
|
|
7
|
+
market?: string;
|
|
8
|
+
symbols: string[];
|
|
9
|
+
}
|
|
5
10
|
/**
|
|
6
11
|
* Load and validate a configuration profile
|
|
7
12
|
*/
|
|
@@ -14,4 +19,12 @@ export declare function validateProfile(profilePath: string): Promise<boolean>;
|
|
|
14
19
|
* Get profile path by trading type
|
|
15
20
|
*/
|
|
16
21
|
export declare function getProfilePathByType(tradingType: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* Load watchlist from JSON file
|
|
24
|
+
* Supports multiple formats:
|
|
25
|
+
* - Simple array: ["BBCA", "TLKM"]
|
|
26
|
+
* - Object: { "market": "IDX", "symbols": [...] }
|
|
27
|
+
* - Multi-market array: [{ "market": "IDX", "symbols": [...] }, ...]
|
|
28
|
+
*/
|
|
29
|
+
export declare function loadWatchlist(path: string): Promise<WatchlistFile>;
|
|
17
30
|
//# sourceMappingURL=loader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAEhD,MAAM,WAAW,aAAa;IAC1B,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,EAAE,CAAA;CACpB;AAKD;;GAEG;AACH,wBAAsB,WAAW,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CA4DxE;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAO3E;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAGhE;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAwCxE"}
|
package/dist/config/loader.js
CHANGED
|
@@ -80,4 +80,45 @@ export function getProfilePathByType(tradingType) {
|
|
|
80
80
|
const packageRoot = new URL("../../", import.meta.url).pathname;
|
|
81
81
|
return join(packageRoot, PROFILE_DIR, `${tradingType}.profile.json`);
|
|
82
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Load watchlist from JSON file
|
|
85
|
+
* Supports multiple formats:
|
|
86
|
+
* - Simple array: ["BBCA", "TLKM"]
|
|
87
|
+
* - Object: { "market": "IDX", "symbols": [...] }
|
|
88
|
+
* - Multi-market array: [{ "market": "IDX", "symbols": [...] }, ...]
|
|
89
|
+
*/
|
|
90
|
+
export async function loadWatchlist(path) {
|
|
91
|
+
try {
|
|
92
|
+
const content = await readFile(path, "utf-8");
|
|
93
|
+
const data = JSON.parse(content);
|
|
94
|
+
// Simple array format
|
|
95
|
+
if (Array.isArray(data) && typeof data[0] === "string") {
|
|
96
|
+
return { symbols: data };
|
|
97
|
+
}
|
|
98
|
+
// Multi-market array (use first watchlist)
|
|
99
|
+
if (Array.isArray(data) && data[0]?.symbols) {
|
|
100
|
+
const first = data[0];
|
|
101
|
+
return {
|
|
102
|
+
name: first.name,
|
|
103
|
+
market: first.market,
|
|
104
|
+
symbols: first.symbols,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
// Single watchlist object
|
|
108
|
+
if (data.symbols && Array.isArray(data.symbols)) {
|
|
109
|
+
return {
|
|
110
|
+
name: data.name,
|
|
111
|
+
market: data.market,
|
|
112
|
+
symbols: data.symbols,
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
throw new Error("Invalid watchlist format. Expected array of symbols or object with 'symbols' property");
|
|
116
|
+
}
|
|
117
|
+
catch (error) {
|
|
118
|
+
if (error instanceof Error) {
|
|
119
|
+
throw new Error(`Failed to load watchlist from ${path}: ${error.message}`);
|
|
120
|
+
}
|
|
121
|
+
throw error;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
83
124
|
//# sourceMappingURL=loader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AACpC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"loader.js","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"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"}
|
package/dist/data/provider.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ export { DataProvider };
|
|
|
8
8
|
*/
|
|
9
9
|
export declare abstract class BaseDataProvider implements DataProvider {
|
|
10
10
|
abstract name: string;
|
|
11
|
-
abstract fetchOHLCV(symbol: string, timeframe: Timeframe, limit: number): Promise<OHLCV[]>;
|
|
11
|
+
abstract fetchOHLCV(symbol: string, timeframe: Timeframe, limit: number, targetDate?: Date): Promise<OHLCV[]>;
|
|
12
12
|
abstract isAvailable(): Promise<boolean>;
|
|
13
13
|
/**
|
|
14
14
|
* Validate OHLCV data integrity
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/data/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB;;GAEG;AACH,8BAAsB,gBAAiB,YAAW,YAAY;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,QAAQ,CAAC,UAAU,CACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/data/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAEvE,OAAO,EAAE,YAAY,EAAE,CAAA;AAEvB;;GAEG;AACH,8BAAsB,gBAAiB,YAAW,YAAY;IAC1D,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IAErB,QAAQ,CAAC,UAAU,CACf,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,IAAI,GAClB,OAAO,CAAC,KAAK,EAAE,CAAC;IAEnB,QAAQ,CAAC,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAExC;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO;IAe9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE;CAG7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/data/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,OAAgB,gBAAgB;
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/data/provider.ts"],"names":[],"mappings":"AAAA;;GAEG;AAMH;;GAEG;AACH,MAAM,OAAgB,gBAAgB;IAYlC;;OAEG;IACO,YAAY,CAAC,IAAa;QAChC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,KAAK,CAAA;QAE5C,OAAO,IAAI,CAAC,KAAK,CACb,CAAC,MAAM,EAAE,EAAE,CACP,MAAM,CAAC,SAAS,GAAG,CAAC;YACpB,MAAM,CAAC,IAAI,GAAG,CAAC;YACf,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI;YAC1B,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK;YAC3B,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,IAAI;YACzB,MAAM,CAAC,GAAG,IAAI,MAAM,CAAC,KAAK;YAC1B,MAAM,CAAC,MAAM,IAAI,CAAC,CACzB,CAAA;IACL,CAAC;IAED;;OAEG;IACO,QAAQ,CAAC,IAAa;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAA;IACzD,CAAC;CACJ"}
|
package/dist/data/yahoo.d.ts
CHANGED
|
@@ -6,7 +6,7 @@ import { BaseDataProvider } from "./provider.js";
|
|
|
6
6
|
export declare class YahooFinanceProvider extends BaseDataProvider {
|
|
7
7
|
name: string;
|
|
8
8
|
private baseUrl;
|
|
9
|
-
fetchOHLCV(symbol: string, timeframe: Timeframe, limit?: number): Promise<OHLCV[]>;
|
|
9
|
+
fetchOHLCV(symbol: string, timeframe: Timeframe, limit?: number, targetDate?: Date): Promise<OHLCV[]>;
|
|
10
10
|
isAvailable(): Promise<boolean>;
|
|
11
11
|
/**
|
|
12
12
|
* Convert our timeframe format to Yahoo Finance interval
|
|
@@ -14,6 +14,7 @@ export declare class YahooFinanceProvider extends BaseDataProvider {
|
|
|
14
14
|
private convertTimeframe;
|
|
15
15
|
/**
|
|
16
16
|
* Calculate appropriate period range based on timeframe and limit
|
|
17
|
+
* If targetDate is provided, calculate from that date instead of today
|
|
17
18
|
*/
|
|
18
19
|
private calculatePeriod;
|
|
19
20
|
}
|
package/dist/data/yahoo.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yahoo.d.ts","sourceRoot":"","sources":["../../src/data/yahoo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,qBAAa,oBAAqB,SAAQ,gBAAgB;IACtD,IAAI,SAAU;IACd,OAAO,CAAC,OAAO,CAAsD;IAE/D,UAAU,CACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,GAAE,MAAY,
|
|
1
|
+
{"version":3,"file":"yahoo.d.ts","sourceRoot":"","sources":["../../src/data/yahoo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,qBAAa,oBAAqB,SAAQ,gBAAgB;IACtD,IAAI,SAAU;IACd,OAAO,CAAC,OAAO,CAAsD;IAE/D,UAAU,CACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,GAAE,MAAY,EACnB,UAAU,CAAC,EAAE,IAAI,GAClB,OAAO,CAAC,KAAK,EAAE,CAAC;IA0Db,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;IAarC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAWxB;;;OAGG;IACH,OAAO,CAAC,eAAe;CA0D1B"}
|
package/dist/data/yahoo.js
CHANGED
|
@@ -6,10 +6,10 @@ import { BaseDataProvider } from "./provider.js";
|
|
|
6
6
|
export class YahooFinanceProvider extends BaseDataProvider {
|
|
7
7
|
name = "yahoo";
|
|
8
8
|
baseUrl = "https://query1.finance.yahoo.com/v8/finance/chart";
|
|
9
|
-
async fetchOHLCV(symbol, timeframe, limit = 200) {
|
|
9
|
+
async fetchOHLCV(symbol, timeframe, limit = 200, targetDate) {
|
|
10
10
|
try {
|
|
11
11
|
const interval = this.convertTimeframe(timeframe);
|
|
12
|
-
const period = this.calculatePeriod(timeframe, limit);
|
|
12
|
+
const period = this.calculatePeriod(timeframe, limit, targetDate);
|
|
13
13
|
const url = `${this.baseUrl}/${symbol}`;
|
|
14
14
|
const response = await axios.get(url, {
|
|
15
15
|
params: {
|
|
@@ -30,10 +30,15 @@ export class YahooFinanceProvider extends BaseDataProvider {
|
|
|
30
30
|
volume: quote.volume[index],
|
|
31
31
|
}));
|
|
32
32
|
// Filter out null values and validate
|
|
33
|
-
|
|
33
|
+
let validData = data.filter((candle) => candle.open !== null &&
|
|
34
34
|
candle.high !== null &&
|
|
35
35
|
candle.low !== null &&
|
|
36
36
|
candle.close !== null);
|
|
37
|
+
// Filter by targetDate if provided
|
|
38
|
+
if (targetDate) {
|
|
39
|
+
const maxTimestamp = targetDate.getTime();
|
|
40
|
+
validData = validData.filter((candle) => candle.timestamp <= maxTimestamp);
|
|
41
|
+
}
|
|
37
42
|
if (!this.validateData(validData)) {
|
|
38
43
|
throw new Error("Invalid data received from Yahoo Finance");
|
|
39
44
|
}
|
|
@@ -74,8 +79,9 @@ export class YahooFinanceProvider extends BaseDataProvider {
|
|
|
74
79
|
}
|
|
75
80
|
/**
|
|
76
81
|
* Calculate appropriate period range based on timeframe and limit
|
|
82
|
+
* If targetDate is provided, calculate from that date instead of today
|
|
77
83
|
*/
|
|
78
|
-
calculatePeriod(timeframe, limit) {
|
|
84
|
+
calculatePeriod(timeframe, limit, targetDate) {
|
|
79
85
|
// Estimate trading hours per day (Indonesian market: ~6.5 hours)
|
|
80
86
|
const tradingHoursPerDay = 6.5;
|
|
81
87
|
// Calculate approximate days needed based on timeframe
|
|
@@ -106,6 +112,12 @@ export class YahooFinanceProvider extends BaseDataProvider {
|
|
|
106
112
|
}
|
|
107
113
|
// Add 50% buffer for weekends, holidays, and data gaps
|
|
108
114
|
daysNeeded = Math.ceil(daysNeeded * 1.5);
|
|
115
|
+
// If targetDate provided, add days from targetDate to today
|
|
116
|
+
if (targetDate) {
|
|
117
|
+
const today = new Date();
|
|
118
|
+
const daysSinceTarget = Math.floor((today.getTime() - targetDate.getTime()) / (1000 * 60 * 60 * 24));
|
|
119
|
+
daysNeeded += daysSinceTarget;
|
|
120
|
+
}
|
|
109
121
|
// Map to Yahoo Finance period strings
|
|
110
122
|
if (daysNeeded <= 1)
|
|
111
123
|
return "1d";
|
package/dist/data/yahoo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"yahoo.js","sourceRoot":"","sources":["../../src/data/yahoo.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,OAAO,oBAAqB,SAAQ,gBAAgB;IACtD,IAAI,GAAG,OAAO,CAAA;IACN,OAAO,GAAG,mDAAmD,CAAA;IAErE,KAAK,CAAC,UAAU,CACZ,MAAc,EACd,SAAoB,EACpB,QAAgB,GAAG;
|
|
1
|
+
{"version":3,"file":"yahoo.js","sourceRoot":"","sources":["../../src/data/yahoo.ts"],"names":[],"mappings":"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"}
|