@stocksharp/trading-controls 1.2.0 → 1.3.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 +95 -16
- package/dist/esm/black-scholes.js +147 -0
- package/dist/esm/black-scholes.js.map +1 -0
- package/dist/esm/control-types.js +4 -0
- package/dist/esm/control-types.js.map +1 -1
- package/dist/esm/index.js +18 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/log-monitor-widget.js +265 -0
- package/dist/esm/log-monitor-widget.js.map +1 -0
- package/dist/esm/log-tree.js +96 -0
- package/dist/esm/log-tree.js.map +1 -0
- package/dist/esm/option-desk-widget.js +322 -0
- package/dist/esm/option-desk-widget.js.map +1 -0
- package/dist/esm/pnl-curve.js +129 -0
- package/dist/esm/pnl-curve.js.map +1 -0
- package/dist/esm/statistics-widget.js +194 -0
- package/dist/esm/statistics-widget.js.map +1 -0
- package/dist/esm/strategies-widget.js +348 -0
- package/dist/esm/strategies-widget.js.map +1 -0
- package/dist/sstradingcontrols.js +1307 -47
- package/dist/sstradingcontrols.js.map +4 -4
- package/dist/types/black-scholes.d.ts +28 -0
- package/dist/types/black-scholes.d.ts.map +1 -0
- package/dist/types/control-types.d.ts +4 -0
- package/dist/types/control-types.d.ts.map +1 -1
- package/dist/types/index.d.ts +16 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/log-monitor-widget.d.ts +42 -0
- package/dist/types/log-monitor-widget.d.ts.map +1 -0
- package/dist/types/log-tree.d.ts +34 -0
- package/dist/types/log-tree.d.ts.map +1 -0
- package/dist/types/option-desk-widget.d.ts +68 -0
- package/dist/types/option-desk-widget.d.ts.map +1 -0
- package/dist/types/pnl-curve.d.ts +43 -0
- package/dist/types/pnl-curve.d.ts.map +1 -0
- package/dist/types/statistics-widget.d.ts +29 -0
- package/dist/types/statistics-widget.d.ts.map +1 -0
- package/dist/types/strategies-widget.d.ts +63 -0
- package/dist/types/strategies-widget.d.ts.map +1 -0
- package/dist/types/trading-data.d.ts +9 -0
- package/dist/types/trading-data.d.ts.map +1 -1
- package/package.json +27 -2
- package/screenshots/log-monitor.png +0 -0
- package/screenshots/option-desk.png +0 -0
- package/screenshots/panels.jpg +0 -0
- package/screenshots/statistics.png +0 -0
- package/screenshots/strategies.png +0 -0
- package/src/black-scholes.ts +199 -0
- package/src/control-types.ts +4 -0
- package/src/index.ts +41 -0
- package/src/log-monitor-widget.ts +312 -0
- package/src/log-tree.ts +131 -0
- package/src/option-desk-widget.ts +422 -0
- package/src/pnl-curve.ts +204 -0
- package/src/statistics-widget.ts +226 -0
- package/src/strategies-widget.ts +435 -0
- package/src/trading-data.ts +22 -0
- package/styles/trading-controls.css +356 -0
- package/translation-keys.json +70 -1
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
export declare const OptionTypes: {
|
|
2
|
+
readonly Call: "call";
|
|
3
|
+
readonly Put: "put";
|
|
4
|
+
};
|
|
5
|
+
export type OptionType = typeof OptionTypes[keyof typeof OptionTypes];
|
|
6
|
+
export interface OptionInputs {
|
|
7
|
+
assetPrice: number;
|
|
8
|
+
strike: number;
|
|
9
|
+
timeToExpiry: number;
|
|
10
|
+
riskFree: number;
|
|
11
|
+
dividend: number;
|
|
12
|
+
deviation: number;
|
|
13
|
+
}
|
|
14
|
+
export interface Greeks {
|
|
15
|
+
delta: number;
|
|
16
|
+
gamma: number;
|
|
17
|
+
vega: number;
|
|
18
|
+
theta: number;
|
|
19
|
+
rho: number;
|
|
20
|
+
}
|
|
21
|
+
export declare function normalCdf(x: number): number;
|
|
22
|
+
export declare function normalPdf(x: number): number;
|
|
23
|
+
export declare function d1(inputs: OptionInputs): number;
|
|
24
|
+
export declare function d2(inputs: OptionInputs): number;
|
|
25
|
+
export declare function premium(type: OptionType, inputs: OptionInputs): number;
|
|
26
|
+
export declare function greeks(type: OptionType, inputs: OptionInputs): Greeks;
|
|
27
|
+
export declare function impliedVolatility(type: OptionType, inputs: OptionInputs, price: number): number | null;
|
|
28
|
+
//# sourceMappingURL=black-scholes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"black-scholes.d.ts","sourceRoot":"","sources":["../../src/black-scholes.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,WAAW;;;CAGd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,OAAO,WAAW,CAAC,MAAM,OAAO,WAAW,CAAC,CAAC;AAItE,MAAM,WAAW,YAAY;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IAGf,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IAEjB,SAAS,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IAEd,IAAI,EAAE,MAAM,CAAC;IAEb,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,MAAM,CAAC;CACf;AAWD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAsC3C;AAGD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE3C;AAGD,wBAAgB,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAO/C;AAGD,wBAAgB,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAG/C;AAMD,wBAAgB,OAAO,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CActE;AAID,wBAAgB,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM,CAiCrE;AAOD,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAmBtG"}
|
|
@@ -6,6 +6,10 @@ export declare const ControlTypes: {
|
|
|
6
6
|
readonly OrderBook: "orderbook";
|
|
7
7
|
readonly TradeFeed: "tradefeed";
|
|
8
8
|
readonly OrderEntry: "orderEntry";
|
|
9
|
+
readonly Statistics: "statistics";
|
|
10
|
+
readonly LogMonitor: "logMonitor";
|
|
11
|
+
readonly Strategies: "strategies";
|
|
12
|
+
readonly OptionDesk: "optionDesk";
|
|
9
13
|
};
|
|
10
14
|
export type ControlType = typeof ControlTypes[keyof typeof ControlTypes];
|
|
11
15
|
//# sourceMappingURL=control-types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-types.d.ts","sourceRoot":"","sources":["../../src/control-types.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,YAAY
|
|
1
|
+
{"version":3,"file":"control-types.d.ts","sourceRoot":"","sources":["../../src/control-types.ts"],"names":[],"mappings":"AAgBA,eAAO,MAAM,YAAY;;;;;;;;;;;;CAYf,CAAC;AAEX,MAAM,MAAM,WAAW,GAAG,OAAO,YAAY,CAAC,MAAM,OAAO,YAAY,CAAC,CAAC"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
export { MarketDataLevels, PRESENTATION_CLASSES, assertHost } from './trading-host.js';
|
|
2
2
|
export type { HostStore, MarketDataClient, MarketDataLevel, TickerSink, TradingApi, TradingContext, TradingControl, TradingHost, TradingPresentation, } from './trading-host.js';
|
|
3
|
-
export type { BalanceRow, InstrumentRow, OrderRow, OrderSide, OrderStatus, OrderType, PositionRow, QuoteStats, TradeRow, } from './trading-data.js';
|
|
3
|
+
export type { BalanceRow, InstrumentRow, OrderRow, OrderSide, OrderStatus, OrderType, PositionRow, QuoteStats, StatisticRow, TradeRow, } from './trading-data.js';
|
|
4
4
|
export { ControlTypes } from './control-types.js';
|
|
5
5
|
export type { ControlType } from './control-types.js';
|
|
6
6
|
export { cleanRejectReason, formatPnl, formatPrice, formatQty, formatTime } from './formatters.js';
|
|
@@ -20,10 +20,25 @@ export { OrderBookWidget } from './orderbook-widget.js';
|
|
|
20
20
|
export type { OrderBookDeps, OrderBookView } from './orderbook-widget.js';
|
|
21
21
|
export type { BookLevel, OrderBookFrame, QuoteLevel } from './trading-data.js';
|
|
22
22
|
export type { CanvasPalette } from './trading-host.js';
|
|
23
|
+
export { compressPnl, drawPnlCurve, pnlCurve } from './pnl-curve.js';
|
|
24
|
+
export type { PnlBox, PnlCurve, PnlCurveContext, PnlCurveStyle, PnlPoint } from './pnl-curve.js';
|
|
25
|
+
export { OptionDeskWidget, greekPlaces, greekScales, scaleChain, sideGreeks } from './option-desk-widget.js';
|
|
26
|
+
export type { OptionChainContext, OptionDeskDeps, OptionSide, OptionStrike } from './option-desk-widget.js';
|
|
27
|
+
export { OptionTypes, d1, d2, greeks, impliedVolatility, normalCdf, normalPdf, premium } from './black-scholes.js';
|
|
28
|
+
export type { Greeks, OptionInputs, OptionType } from './black-scholes.js';
|
|
29
|
+
export { StrategiesWidget, StrategyStates } from './strategies-widget.js';
|
|
30
|
+
export type { StrategiesActions, StrategiesDeps, StrategyRow, StrategyState } from './strategies-widget.js';
|
|
31
|
+
export { LogMonitorWidget } from './log-monitor-widget.js';
|
|
32
|
+
export type { LogMonitorDeps } from './log-monitor-widget.js';
|
|
33
|
+
export { LogLevels, buildLogTree, keepLog, subtreeOf } from './log-tree.js';
|
|
34
|
+
export type { LogLevel, LogMessageRow, LogSourceNode, LogTreeNode, LogView } from './log-tree.js';
|
|
35
|
+
export { StatisticsWidget, formatStatistic } from './statistics-widget.js';
|
|
36
|
+
export type { StatisticsDeps } from './statistics-widget.js';
|
|
23
37
|
export { TradeFeedWidget } from './tradefeed-widget.js';
|
|
24
38
|
export type { TradeFeedDeps } from './tradefeed-widget.js';
|
|
25
39
|
export { aggregateBubbles } from './tradefeed-aggregator.js';
|
|
26
40
|
export type { FeedBubble, FeedTick } from './tradefeed-aggregator.js';
|
|
27
41
|
export { layoutBubbles } from './tradefeed-bubbles.js';
|
|
28
42
|
export type { BubbleAxisTick, BubbleLane, BubbleLaneShape, BubbleLayout, BubbleLayoutInput, BubbleShape } from './tradefeed-bubbles.js';
|
|
43
|
+
export { makeGridMenu } from './grid-menu.js';
|
|
29
44
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEvF,YAAY,EACR,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,UAAU,EACV,cAAc,EACd,cAAc,EACd,WAAW,EACX,mBAAmB,GACtB,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EACR,UAAU,EACV,aAAa,EACb,QAAQ,EACR,SAAS,EACT,WAAW,EACX,SAAS,EACT,WAAW,EACX,UAAU,EACV,QAAQ,GACX,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,iBAAiB,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAKnG,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAE7F,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAE5E,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,YAAY,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE3D,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE7F,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAEhH,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,YAAY,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAE1E,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAI/E,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { TradingHost } from './trading-host.js';
|
|
2
|
+
import { type LogMessageRow, type LogSourceNode, type LogTreeNode } from './log-tree.js';
|
|
3
|
+
import { DataGrid, GridColumn } from '@stocksharp/grids/data-grid';
|
|
4
|
+
export interface LogMonitorDeps {
|
|
5
|
+
host: TradingHost;
|
|
6
|
+
maxMessages?: number;
|
|
7
|
+
}
|
|
8
|
+
export declare class LogMonitorWidget {
|
|
9
|
+
static TYPE: "logMonitor";
|
|
10
|
+
rootEl: HTMLElement;
|
|
11
|
+
el: HTMLElement | null;
|
|
12
|
+
_host: TradingHost;
|
|
13
|
+
_max: number;
|
|
14
|
+
_closeBtn: HTMLElement | null;
|
|
15
|
+
_clearBtn: HTMLElement | null;
|
|
16
|
+
_exportBtn: HTMLElement | null;
|
|
17
|
+
_treeEl: HTMLElement | null;
|
|
18
|
+
_filterEl: HTMLInputElement | null;
|
|
19
|
+
_sources: LogSourceNode[];
|
|
20
|
+
_messages: LogMessageRow[];
|
|
21
|
+
_levels: Set<string>;
|
|
22
|
+
_text: string;
|
|
23
|
+
_selected: string | null;
|
|
24
|
+
_grid: DataGrid<LogMessageRow> | null;
|
|
25
|
+
static create(hostEl: HTMLElement, state: Record<string, unknown>, deps: LogMonitorDeps): LogMonitorWidget;
|
|
26
|
+
static _buildRoot(host: TradingHost): HTMLElement;
|
|
27
|
+
constructor(rootEl: HTMLElement, _state: Record<string, unknown>, deps: LogMonitorDeps);
|
|
28
|
+
dispose(): void;
|
|
29
|
+
setSources(sources: LogSourceNode[]): void;
|
|
30
|
+
append(messages: LogMessageRow[]): void;
|
|
31
|
+
clear(): void;
|
|
32
|
+
select(sourceId: string | null): void;
|
|
33
|
+
visible(): LogMessageRow[];
|
|
34
|
+
_render(): void;
|
|
35
|
+
_renderTree(): void;
|
|
36
|
+
_appendNode(into: HTMLElement, node: LogTreeNode): void;
|
|
37
|
+
_treeRow(node: LogTreeNode, id: string | null): HTMLElement;
|
|
38
|
+
_export(): void;
|
|
39
|
+
_columns(): GridColumn<LogMessageRow>[];
|
|
40
|
+
_sourceName(id: string): string;
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=log-monitor-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-monitor-widget.d.ts","sourceRoot":"","sources":["../../src/log-monitor-widget.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAEY,KAAK,aAAa,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAC1E,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAG1E,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,WAAW,CAAC;IAGlB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAmBD,qBAAa,gBAAgB;IACzB,MAAM,CAAC,IAAI,eAA2B;IAEtC,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC;IAEvB,KAAK,EAAE,WAAW,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,OAAO,EAAE,WAAW,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACnC,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,SAAS,EAAE,aAAa,EAAE,CAAC;IAC3B,OAAO,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,QAAQ,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;IAEtC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,gBAAgB;IAW1G,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;gBAwCrC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc;IA0DtF,OAAO,IAAI,IAAI;IAQf,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,IAAI;IAQ1C,MAAM,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI;IASvC,KAAK,IAAI,IAAI;IAMb,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAOrC,OAAO,IAAI,aAAa,EAAE;IAK1B,OAAO,IAAI,IAAI;IAIf,WAAW,IAAI,IAAI;IASnB,WAAW,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,WAAW,GAAG,IAAI;IAOvD,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,WAAW;IAc3D,OAAO,IAAI,IAAI;IAIf,QAAQ,IAAI,UAAU,CAAC,aAAa,CAAC,EAAE;IAsCvC,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;CAGlC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export declare const LogLevels: {
|
|
2
|
+
readonly Error: "error";
|
|
3
|
+
readonly Warning: "warning";
|
|
4
|
+
readonly Info: "info";
|
|
5
|
+
readonly Debug: "debug";
|
|
6
|
+
readonly Verbose: "verbose";
|
|
7
|
+
};
|
|
8
|
+
export type LogLevel = typeof LogLevels[keyof typeof LogLevels];
|
|
9
|
+
export interface LogSourceNode {
|
|
10
|
+
id: string;
|
|
11
|
+
name: string;
|
|
12
|
+
parentId?: string | null;
|
|
13
|
+
}
|
|
14
|
+
export interface LogTreeNode extends LogSourceNode {
|
|
15
|
+
depth: number;
|
|
16
|
+
children: LogTreeNode[];
|
|
17
|
+
}
|
|
18
|
+
export interface LogMessageRow {
|
|
19
|
+
id: number | string;
|
|
20
|
+
time: number | string;
|
|
21
|
+
level: LogLevel | string;
|
|
22
|
+
sourceId: string;
|
|
23
|
+
source?: string;
|
|
24
|
+
message: string;
|
|
25
|
+
}
|
|
26
|
+
export declare function buildLogTree(sources: readonly LogSourceNode[]): LogTreeNode[];
|
|
27
|
+
export declare function subtreeOf(sources: readonly LogSourceNode[], selectedId: string | null): Set<string> | null;
|
|
28
|
+
export interface LogView {
|
|
29
|
+
levels: ReadonlySet<string>;
|
|
30
|
+
text: string;
|
|
31
|
+
sources: ReadonlySet<string> | null;
|
|
32
|
+
}
|
|
33
|
+
export declare function keepLog(message: LogMessageRow, view: LogView): boolean;
|
|
34
|
+
//# sourceMappingURL=log-tree.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"log-tree.d.ts","sourceRoot":"","sources":["../../src/log-tree.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;CAMZ,CAAC;AAEX,MAAM,MAAM,QAAQ,GAAG,OAAO,SAAS,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAGhE,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAGD,MAAM,WAAW,WAAY,SAAQ,aAAa;IAC9C,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,WAAW,EAAE,CAAC;CAC3B;AAGD,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,KAAK,EAAE,QAAQ,GAAG,MAAM,CAAC;IAEzB,QAAQ,EAAE,MAAM,CAAC;IAEjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB;AAQD,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,GAAG,WAAW,EAAE,CAoB7E;AAkBD,wBAAgB,SAAS,CAAC,OAAO,EAAE,SAAS,aAAa,EAAE,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAmB1G;AAGD,MAAM,WAAW,OAAO;IACpB,MAAM,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IAEb,OAAO,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CACvC;AAGD,wBAAgB,OAAO,CAAC,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAQtE"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { TradingHost } from './trading-host.js';
|
|
2
|
+
import { type Greeks } from './black-scholes.js';
|
|
3
|
+
import { DataGrid, GridColumn } from '@stocksharp/grids/data-grid';
|
|
4
|
+
export interface OptionSide {
|
|
5
|
+
symbol?: string;
|
|
6
|
+
bid?: number | null;
|
|
7
|
+
ask?: number | null;
|
|
8
|
+
last?: number | null;
|
|
9
|
+
theoretical?: number | null;
|
|
10
|
+
volume?: number | null;
|
|
11
|
+
openInterest?: number | null;
|
|
12
|
+
ivBid?: number | null;
|
|
13
|
+
ivAsk?: number | null;
|
|
14
|
+
ivLast?: number | null;
|
|
15
|
+
historicalVolatility?: number | null;
|
|
16
|
+
greeks?: Greeks;
|
|
17
|
+
}
|
|
18
|
+
export interface OptionStrike {
|
|
19
|
+
strike: number;
|
|
20
|
+
call: OptionSide;
|
|
21
|
+
put: OptionSide;
|
|
22
|
+
}
|
|
23
|
+
export interface OptionChainContext {
|
|
24
|
+
assetPrice?: number | null;
|
|
25
|
+
timeToExpiry?: number | null;
|
|
26
|
+
riskFree?: number;
|
|
27
|
+
dividend?: number;
|
|
28
|
+
}
|
|
29
|
+
export interface OptionDeskDeps {
|
|
30
|
+
host: TradingHost;
|
|
31
|
+
}
|
|
32
|
+
interface DeskRow extends OptionStrike {
|
|
33
|
+
maxCallVolume: number;
|
|
34
|
+
maxPutVolume: number;
|
|
35
|
+
maxCallOpenInterest: number;
|
|
36
|
+
maxPutOpenInterest: number;
|
|
37
|
+
maxVolatility: number;
|
|
38
|
+
callIntrinsic: number;
|
|
39
|
+
putIntrinsic: number;
|
|
40
|
+
}
|
|
41
|
+
export declare class OptionDeskWidget {
|
|
42
|
+
static TYPE: "optionDesk";
|
|
43
|
+
rootEl: HTMLElement;
|
|
44
|
+
el: HTMLElement | null;
|
|
45
|
+
_host: TradingHost;
|
|
46
|
+
_closeBtn: HTMLElement | null;
|
|
47
|
+
_exportBtn: HTMLElement | null;
|
|
48
|
+
_rows: DeskRow[];
|
|
49
|
+
_context: OptionChainContext;
|
|
50
|
+
_places: Record<keyof Greeks, number>;
|
|
51
|
+
_grid: DataGrid<DeskRow> | null;
|
|
52
|
+
static create(hostEl: HTMLElement, state: Record<string, unknown>, deps: OptionDeskDeps): OptionDeskWidget;
|
|
53
|
+
static _buildRoot(host: TradingHost): HTMLElement;
|
|
54
|
+
constructor(rootEl: HTMLElement, _state: Record<string, unknown>, deps: OptionDeskDeps);
|
|
55
|
+
dispose(): void;
|
|
56
|
+
update(strikes: OptionStrike[], context?: OptionChainContext): void;
|
|
57
|
+
rows(): readonly DeskRow[];
|
|
58
|
+
_export(): void;
|
|
59
|
+
_rowClass(row: DeskRow): string;
|
|
60
|
+
_columns(): GridColumn<DeskRow>[];
|
|
61
|
+
_bar(value: number | null | undefined, max: number, kind: 'call' | 'put' | 'iv', text: string): string | Node;
|
|
62
|
+
}
|
|
63
|
+
export declare function scaleChain(strikes: readonly OptionStrike[], context: OptionChainContext): DeskRow[];
|
|
64
|
+
export declare function sideGreeks(row: OptionStrike, which: 'call' | 'put', context: OptionChainContext): Greeks | null;
|
|
65
|
+
export declare function greekPlaces(values: readonly (number | null | undefined)[]): number;
|
|
66
|
+
export declare function greekScales(rows: readonly OptionStrike[], context: OptionChainContext): Record<keyof Greeks, number>;
|
|
67
|
+
export {};
|
|
68
|
+
//# sourceMappingURL=option-desk-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"option-desk-widget.d.ts","sourceRoot":"","sources":["../../src/option-desk-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
export interface PnlPoint {
|
|
2
|
+
time: number;
|
|
3
|
+
value: number;
|
|
4
|
+
}
|
|
5
|
+
export interface PnlBox {
|
|
6
|
+
width: number;
|
|
7
|
+
height: number;
|
|
8
|
+
padX: number;
|
|
9
|
+
padY: number;
|
|
10
|
+
}
|
|
11
|
+
export interface PnlCurve {
|
|
12
|
+
points: [number, number][];
|
|
13
|
+
area: [number, number][];
|
|
14
|
+
zeroY: number;
|
|
15
|
+
min: number;
|
|
16
|
+
max: number;
|
|
17
|
+
positive: boolean;
|
|
18
|
+
}
|
|
19
|
+
export declare function compressPnl(points: readonly PnlPoint[], count: number): PnlPoint[];
|
|
20
|
+
export declare function pnlCurve(points: readonly PnlPoint[], box: PnlBox): PnlCurve | null;
|
|
21
|
+
export interface PnlCurveStyle {
|
|
22
|
+
up: string;
|
|
23
|
+
down: string;
|
|
24
|
+
baseline: string;
|
|
25
|
+
lineWidth: number;
|
|
26
|
+
fillOpacity: number;
|
|
27
|
+
}
|
|
28
|
+
export interface PnlCurveContext {
|
|
29
|
+
clearRect(x: number, y: number, w: number, h: number): void;
|
|
30
|
+
beginPath(): void;
|
|
31
|
+
moveTo(x: number, y: number): void;
|
|
32
|
+
lineTo(x: number, y: number): void;
|
|
33
|
+
closePath(): void;
|
|
34
|
+
stroke(): void;
|
|
35
|
+
fill(): void;
|
|
36
|
+
setLineDash(segments: number[]): void;
|
|
37
|
+
globalAlpha: number;
|
|
38
|
+
strokeStyle: string | CanvasGradient | CanvasPattern;
|
|
39
|
+
fillStyle: string | CanvasGradient | CanvasPattern;
|
|
40
|
+
lineWidth: number;
|
|
41
|
+
}
|
|
42
|
+
export declare function drawPnlCurve(ctx: PnlCurveContext, curve: PnlCurve, box: PnlBox, style: PnlCurveStyle): void;
|
|
43
|
+
//# sourceMappingURL=pnl-curve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pnl-curve.d.ts","sourceRoot":"","sources":["../../src/pnl-curve.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,MAAM;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,QAAQ;IAErB,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAE3B,IAAI,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC;IAEzB,KAAK,EAAE,MAAM,CAAC;IAEd,GAAG,EAAE,MAAM,CAAC;IACZ,GAAG,EAAE,MAAM,CAAC;IAGZ,QAAQ,EAAE,OAAO,CAAC;CACrB;AAeD,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,QAAQ,EAAE,CAiClF;AAQD,wBAAgB,QAAQ,CAAC,MAAM,EAAE,SAAS,QAAQ,EAAE,EAAE,GAAG,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI,CA+ClF;AAID,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IAEb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAElB,WAAW,EAAE,MAAM,CAAC;CACvB;AAID,MAAM,WAAW,eAAe;IAC5B,SAAS,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5D,SAAS,IAAI,IAAI,CAAC;IAClB,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,SAAS,IAAI,IAAI,CAAC;IAClB,MAAM,IAAI,IAAI,CAAC;IACf,IAAI,IAAI,IAAI,CAAC;IACb,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,CAAC;IAGpB,WAAW,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;IACrD,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,aAAa,CAAC;IACnD,SAAS,EAAE,MAAM,CAAC;CACrB;AAGD,wBAAgB,YAAY,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CA6B3G"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { TradingHost } from './trading-host.js';
|
|
2
|
+
import type { StatisticRow } from './trading-data.js';
|
|
3
|
+
import { DataGrid, GridColumn } from '@stocksharp/grids/data-grid';
|
|
4
|
+
export interface StatisticsDeps {
|
|
5
|
+
host: TradingHost;
|
|
6
|
+
}
|
|
7
|
+
interface RankedRow extends StatisticRow {
|
|
8
|
+
categoryRank: number;
|
|
9
|
+
}
|
|
10
|
+
export declare class StatisticsWidget {
|
|
11
|
+
static TYPE: "statistics";
|
|
12
|
+
rootEl: HTMLElement;
|
|
13
|
+
el: HTMLElement | null;
|
|
14
|
+
_host: TradingHost;
|
|
15
|
+
_closeBtn: HTMLElement | null;
|
|
16
|
+
_exportBtn: HTMLElement | null;
|
|
17
|
+
_rows: RankedRow[];
|
|
18
|
+
_grid: DataGrid<RankedRow> | null;
|
|
19
|
+
static create(hostEl: HTMLElement, state: Record<string, unknown>, deps: StatisticsDeps): StatisticsWidget;
|
|
20
|
+
static _buildRoot(host: TradingHost): HTMLElement;
|
|
21
|
+
constructor(rootEl: HTMLElement, _state: Record<string, unknown>, deps: StatisticsDeps);
|
|
22
|
+
dispose(): void;
|
|
23
|
+
update(rows: StatisticRow[]): void;
|
|
24
|
+
_export(): void;
|
|
25
|
+
_columns(): GridColumn<RankedRow>[];
|
|
26
|
+
}
|
|
27
|
+
export declare function formatStatistic(value: unknown): string;
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=statistics-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"statistics-widget.d.ts","sourceRoot":"","sources":["../../src/statistics-widget.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,WAAW,EAAc,MAAM,mBAAmB,CAAC;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,oCAAoC,CAAC;AAG1E,MAAM,WAAW,cAAc;IAC3B,IAAI,EAAE,WAAW,CAAC;CACrB;AAGD,UAAU,SAAU,SAAQ,YAAY;IACpC,YAAY,EAAE,MAAM,CAAC;CACxB;AAiBD,qBAAa,gBAAgB;IACzB,MAAM,CAAC,IAAI,eAA2B;IAEtC,MAAM,EAAE,WAAW,CAAC;IACpB,EAAE,EAAE,WAAW,GAAG,IAAI,CAAC;IAEvB,KAAK,EAAE,WAAW,CAAC;IACnB,SAAS,EAAE,WAAW,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,WAAW,GAAG,IAAI,CAAC;IAC/B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;IAElC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc,GAAG,gBAAgB;IAU1G,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW;gBAqBrC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,cAAc;IA+CtF,OAAO,IAAI,IAAI;IAQf,MAAM,CAAC,IAAI,EAAE,YAAY,EAAE,GAAG,IAAI;IAKlC,OAAO,IAAI,IAAI;IAMf,QAAQ,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE;CAyCtC;AASD,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAmBtD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { TradingHost } from './trading-host.js';
|
|
2
|
+
import { type PnlPoint } from './pnl-curve.js';
|
|
3
|
+
import { DataGrid, GridColumn } from '@stocksharp/grids/data-grid';
|
|
4
|
+
export declare const StrategyStates: {
|
|
5
|
+
readonly Stopped: "stopped";
|
|
6
|
+
readonly Starting: "starting";
|
|
7
|
+
readonly Started: "started";
|
|
8
|
+
readonly Stopping: "stopping";
|
|
9
|
+
};
|
|
10
|
+
export type StrategyState = typeof StrategyStates[keyof typeof StrategyStates];
|
|
11
|
+
export interface StrategyRow {
|
|
12
|
+
id: string;
|
|
13
|
+
name: string;
|
|
14
|
+
state: StrategyState | string;
|
|
15
|
+
online?: boolean;
|
|
16
|
+
tradingMode?: string;
|
|
17
|
+
portfolio?: string;
|
|
18
|
+
security?: string;
|
|
19
|
+
position?: number | null;
|
|
20
|
+
ordersCount?: number | null;
|
|
21
|
+
tradesCount?: number | null;
|
|
22
|
+
pnlChange?: number | null;
|
|
23
|
+
realized?: number | null;
|
|
24
|
+
unrealized?: number | null;
|
|
25
|
+
pnl?: PnlPoint[];
|
|
26
|
+
error?: string;
|
|
27
|
+
}
|
|
28
|
+
export interface StrategiesActions {
|
|
29
|
+
start?(id: string): void;
|
|
30
|
+
stop?(id: string): void;
|
|
31
|
+
closePosition?(id: string): void;
|
|
32
|
+
openStrategy?(id: string): void;
|
|
33
|
+
riskRules?(id: string): void;
|
|
34
|
+
setTradingMode?(id: string, mode: string): void;
|
|
35
|
+
}
|
|
36
|
+
export interface StrategiesDeps extends StrategiesActions {
|
|
37
|
+
host: TradingHost;
|
|
38
|
+
tradingModes?: readonly string[];
|
|
39
|
+
}
|
|
40
|
+
export declare class StrategiesWidget {
|
|
41
|
+
static TYPE: "strategies";
|
|
42
|
+
rootEl: HTMLElement;
|
|
43
|
+
el: HTMLElement | null;
|
|
44
|
+
_host: TradingHost;
|
|
45
|
+
_deps: StrategiesDeps;
|
|
46
|
+
_closeBtn: HTMLElement | null;
|
|
47
|
+
_exportBtn: HTMLElement | null;
|
|
48
|
+
_rows: StrategyRow[];
|
|
49
|
+
_grid: DataGrid<StrategyRow> | null;
|
|
50
|
+
static create(hostEl: HTMLElement, state: Record<string, unknown>, deps: StrategiesDeps): StrategiesWidget;
|
|
51
|
+
static _buildRoot(host: TradingHost): HTMLElement;
|
|
52
|
+
constructor(rootEl: HTMLElement, _state: Record<string, unknown>, deps: StrategiesDeps);
|
|
53
|
+
dispose(): void;
|
|
54
|
+
update(rows: StrategyRow[]): void;
|
|
55
|
+
_export(): void;
|
|
56
|
+
_columns(): GridColumn<StrategyRow>[];
|
|
57
|
+
_stateCell(row: StrategyRow): string | Node;
|
|
58
|
+
_actionCell(row: StrategyRow): Node;
|
|
59
|
+
_positionCell(row: StrategyRow): string | Node;
|
|
60
|
+
_tradingCell(row: StrategyRow): string | Node;
|
|
61
|
+
_sparkline(row: StrategyRow): string | Node;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=strategies-widget.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"strategies-widget.d.ts","sourceRoot":"","sources":["../../src/strategies-widget.ts"],"names":[],"mappings":"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"}
|
|
@@ -41,6 +41,15 @@ export interface TradeRow {
|
|
|
41
41
|
order?: number | null;
|
|
42
42
|
orderId?: number | null;
|
|
43
43
|
}
|
|
44
|
+
export interface StatisticRow {
|
|
45
|
+
key: string;
|
|
46
|
+
category: string;
|
|
47
|
+
categoryText?: string;
|
|
48
|
+
order: number;
|
|
49
|
+
name: string;
|
|
50
|
+
description?: string;
|
|
51
|
+
value?: number | string | Date | null;
|
|
52
|
+
}
|
|
44
53
|
export interface InstrumentRow {
|
|
45
54
|
symbol?: string;
|
|
46
55
|
name?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trading-data.d.ts","sourceRoot":"","sources":["../../src/trading-data.ts"],"names":[],"mappings":"AA2BA,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAIxC,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAIxC,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,MAAM,CAAC;AAG1C,MAAM,WAAW,WAAW;IACxB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAI5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC/B;AAGD,MAAM,WAAW,UAAU;IACvB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAGD,MAAM,WAAW,QAAQ;IAGrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAIzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IAGrB,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAGD,MAAM,WAAW,QAAQ;IACrB,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAGtB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;
|
|
1
|
+
{"version":3,"file":"trading-data.d.ts","sourceRoot":"","sources":["../../src/trading-data.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@stocksharp/trading-controls",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.3.0",
|
|
4
4
|
"description": "Browser trading controls for StockSharp: order blotters, positions, trade history, watchlist and trade feed, each built against one host port and rendering its own DOM.",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"author": {
|
|
@@ -85,6 +85,26 @@
|
|
|
85
85
|
"types": "./dist/types/tradefeed-widget.d.ts",
|
|
86
86
|
"import": "./dist/esm/tradefeed-widget.js"
|
|
87
87
|
},
|
|
88
|
+
"./statistics-widget": {
|
|
89
|
+
"types": "./dist/types/statistics-widget.d.ts",
|
|
90
|
+
"import": "./dist/esm/statistics-widget.js"
|
|
91
|
+
},
|
|
92
|
+
"./strategies-widget": {
|
|
93
|
+
"types": "./dist/types/strategies-widget.d.ts",
|
|
94
|
+
"import": "./dist/esm/strategies-widget.js"
|
|
95
|
+
},
|
|
96
|
+
"./log-monitor-widget": {
|
|
97
|
+
"types": "./dist/types/log-monitor-widget.d.ts",
|
|
98
|
+
"import": "./dist/esm/log-monitor-widget.js"
|
|
99
|
+
},
|
|
100
|
+
"./option-desk-widget": {
|
|
101
|
+
"types": "./dist/types/option-desk-widget.d.ts",
|
|
102
|
+
"import": "./dist/esm/option-desk-widget.js"
|
|
103
|
+
},
|
|
104
|
+
"./trading-data": {
|
|
105
|
+
"types": "./dist/types/trading-data.d.ts",
|
|
106
|
+
"import": "./dist/esm/trading-data.js"
|
|
107
|
+
},
|
|
88
108
|
"./source": "./src/index.ts",
|
|
89
109
|
"./source/trading-host": "./src/trading-host.ts",
|
|
90
110
|
"./source/control-types": "./src/control-types.ts",
|
|
@@ -97,6 +117,11 @@
|
|
|
97
117
|
"./source/order-entry-widget": "./src/order-entry-widget.ts",
|
|
98
118
|
"./source/orderbook-widget": "./src/orderbook-widget.ts",
|
|
99
119
|
"./source/tradefeed-widget": "./src/tradefeed-widget.ts",
|
|
120
|
+
"./source/statistics-widget": "./src/statistics-widget.ts",
|
|
121
|
+
"./source/strategies-widget": "./src/strategies-widget.ts",
|
|
122
|
+
"./source/log-monitor-widget": "./src/log-monitor-widget.ts",
|
|
123
|
+
"./source/option-desk-widget": "./src/option-desk-widget.ts",
|
|
124
|
+
"./source/trading-data": "./src/trading-data.ts",
|
|
100
125
|
"./styles.css": "./styles/trading-controls.css",
|
|
101
126
|
"./theme.css": "./styles/theme.css",
|
|
102
127
|
"./translation-keys.json": "./translation-keys.json",
|
|
@@ -136,7 +161,7 @@
|
|
|
136
161
|
"release:major": "npm version major -m \"chore: release v%s\""
|
|
137
162
|
},
|
|
138
163
|
"dependencies": {
|
|
139
|
-
"@stocksharp/grids": "^1.
|
|
164
|
+
"@stocksharp/grids": "^1.2.1"
|
|
140
165
|
},
|
|
141
166
|
"devDependencies": {
|
|
142
167
|
"@stocksharp/chart": "^0.2.3",
|
|
Binary file
|
|
Binary file
|
package/screenshots/panels.jpg
CHANGED
|
Binary file
|
|
Binary file
|
|
Binary file
|