@backtest-kit/pinets 0.0.1
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 +218 -0
- package/build/index.cjs +588 -0
- package/build/index.mjs +578 -0
- package/package.json +88 -0
- package/types.d.ts +159 -0
package/types.d.ts
ADDED
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { TPineCtor as TPineCtor$1 } from 'src/interface/Pine.interface';
|
|
2
|
+
import { CandleInterval, ISignalDto } from 'backtest-kit';
|
|
3
|
+
|
|
4
|
+
declare class Code {
|
|
5
|
+
readonly source: string;
|
|
6
|
+
private readonly __type__;
|
|
7
|
+
private constructor();
|
|
8
|
+
static fromString: (source: string) => Code;
|
|
9
|
+
static isCode: (value: unknown) => value is Code;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
declare class File {
|
|
13
|
+
readonly path: string;
|
|
14
|
+
readonly baseDir: string;
|
|
15
|
+
private readonly __type__;
|
|
16
|
+
private constructor();
|
|
17
|
+
static fromPath: (path: string, baseDir?: string) => File;
|
|
18
|
+
static isFile: (value: unknown) => value is File;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare function usePine<T = TPineCtor$1>(ctor: T): void;
|
|
22
|
+
|
|
23
|
+
type PlotData = {
|
|
24
|
+
time: number;
|
|
25
|
+
value: number;
|
|
26
|
+
};
|
|
27
|
+
type PlotEntry = {
|
|
28
|
+
data: PlotData[];
|
|
29
|
+
};
|
|
30
|
+
type PlotModel = Record<string, PlotEntry>;
|
|
31
|
+
type PlotRecord = {
|
|
32
|
+
plots: PlotModel;
|
|
33
|
+
};
|
|
34
|
+
|
|
35
|
+
type PlotExtractConfig<T = number> = {
|
|
36
|
+
plot: string;
|
|
37
|
+
barsBack?: number;
|
|
38
|
+
transform?: (value: number) => T;
|
|
39
|
+
};
|
|
40
|
+
type PlotMapping = {
|
|
41
|
+
[key: string]: string | PlotExtractConfig<any>;
|
|
42
|
+
};
|
|
43
|
+
type ExtractedData<M extends PlotMapping> = {
|
|
44
|
+
[K in keyof M]: M[K] extends PlotExtractConfig<infer R> ? R : M[K] extends string ? number : never;
|
|
45
|
+
};
|
|
46
|
+
declare class PineDataService {
|
|
47
|
+
private readonly loggerService;
|
|
48
|
+
extract<M extends PlotMapping>(plots: PlotModel, mapping: M): ExtractedData<M>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
interface IRunParams<M extends PlotMapping> {
|
|
52
|
+
symbol: string;
|
|
53
|
+
timeframe: CandleInterval;
|
|
54
|
+
limit: number;
|
|
55
|
+
mapping: M;
|
|
56
|
+
}
|
|
57
|
+
declare function run<M extends PlotMapping>(source: File | Code, { symbol, timeframe, mapping, limit }: IRunParams<M>): Promise<ExtractedData<M>>;
|
|
58
|
+
|
|
59
|
+
interface ILogger {
|
|
60
|
+
log(topic: string, ...args: any[]): void;
|
|
61
|
+
debug(topic: string, ...args: any[]): void;
|
|
62
|
+
info(topic: string, ...args: any[]): void;
|
|
63
|
+
warn(topic: string, ...args: any[]): void;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
declare function setLogger(logger: ILogger): void;
|
|
67
|
+
|
|
68
|
+
interface IParams {
|
|
69
|
+
symbol: string;
|
|
70
|
+
timeframe: CandleInterval;
|
|
71
|
+
limit: number;
|
|
72
|
+
}
|
|
73
|
+
declare function getSignal(source: File | Code, { symbol, timeframe, limit }: IParams): Promise<ISignalDto | null>;
|
|
74
|
+
|
|
75
|
+
interface CandleModel {
|
|
76
|
+
openTime: number;
|
|
77
|
+
open: number;
|
|
78
|
+
high: number;
|
|
79
|
+
low: number;
|
|
80
|
+
close: number;
|
|
81
|
+
volume: number;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
interface SymbolInfoModel {
|
|
85
|
+
ticker: string;
|
|
86
|
+
tickerid: string;
|
|
87
|
+
description: string;
|
|
88
|
+
type: string;
|
|
89
|
+
basecurrency: string;
|
|
90
|
+
currency: string;
|
|
91
|
+
timezone: string;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
interface IProvider {
|
|
95
|
+
getMarketData(tickerId: string, timeframe: string, limit?: number, sDate?: number, eDate?: number): Promise<any>;
|
|
96
|
+
getSymbolInfo(tickerId: string): Promise<any>;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
type TPineCtor = (source: IProvider, tickerId: string, timeframe: string, limit: number) => IPine;
|
|
100
|
+
interface IPine {
|
|
101
|
+
ready(): Promise<void>;
|
|
102
|
+
run(code: string): Promise<PlotRecord>;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
declare const AXIS_SYMBOL = "_AXIS";
|
|
106
|
+
declare class AxisProviderService implements IProvider {
|
|
107
|
+
private readonly loggerService;
|
|
108
|
+
getMarketData(_: string, timeframe: string, limit?: number, sDate?: number, eDate?: number): Promise<any[]>;
|
|
109
|
+
getSymbolInfo(): Promise<any>;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
declare class LoggerService implements ILogger {
|
|
113
|
+
private _commonLogger;
|
|
114
|
+
log: (topic: string, ...args: any[]) => Promise<void>;
|
|
115
|
+
debug: (topic: string, ...args: any[]) => Promise<void>;
|
|
116
|
+
info: (topic: string, ...args: any[]) => Promise<void>;
|
|
117
|
+
warn: (topic: string, ...args: any[]) => Promise<void>;
|
|
118
|
+
setLogger: (logger: ILogger) => void;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
declare class CandleProviderService implements IProvider {
|
|
122
|
+
private readonly loggerService;
|
|
123
|
+
getMarketData(tickerId: string, timeframe: string, limit?: number, sDate?: number, eDate?: number): Promise<any[]>;
|
|
124
|
+
getSymbolInfo(tickerId: string): Promise<any>;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
declare class PineConnectionService {
|
|
128
|
+
private readonly loggerService;
|
|
129
|
+
private PineFactory;
|
|
130
|
+
getInstance: (...args: Parameters<TPineCtor>) => Promise<IPine>;
|
|
131
|
+
usePine: (ctor: TPineCtor) => void;
|
|
132
|
+
clear: () => void;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
declare class PineJobService {
|
|
136
|
+
readonly loggerService: LoggerService;
|
|
137
|
+
readonly axisProviderService: AxisProviderService;
|
|
138
|
+
readonly candleProviderService: CandleProviderService;
|
|
139
|
+
readonly pineConnectionService: PineConnectionService;
|
|
140
|
+
run: (code: Code, tickerId: string, timeframe?: CandleInterval, limit?: number) => Promise<PlotRecord>;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
declare class PineCacheService {
|
|
144
|
+
private readonly loggerService;
|
|
145
|
+
readFile: (path: string, baseDir?: string) => Promise<string>;
|
|
146
|
+
clear: (path?: string, baseDir?: string) => Promise<void>;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
declare const pine: {
|
|
150
|
+
pineConnectionService: PineConnectionService;
|
|
151
|
+
pineCacheService: PineCacheService;
|
|
152
|
+
pineDataService: PineDataService;
|
|
153
|
+
pineJobService: PineJobService;
|
|
154
|
+
axisProviderService: AxisProviderService;
|
|
155
|
+
candleProviderService: CandleProviderService;
|
|
156
|
+
loggerService: LoggerService;
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
export { AXIS_SYMBOL, type CandleModel, Code, File, type ILogger, type IPine, type IProvider, type PlotExtractConfig, type PlotMapping, type PlotModel, type PlotRecord, type SymbolInfoModel, type TPineCtor, getSignal, pine as lib, run, setLogger, usePine };
|