UNPKG

@dxfeed/dxlink-indichart

Version:

dxLink INDICHART for receiving candle and indicator data

185 lines (184 loc) 6.64 kB
import type { DXLinkChannelMessage } from '@dxfeed/dxlink-core'; export interface DXLinkIndiChartIndicator { readonly lang: string; readonly content: string; } export interface DXLinkIndiChartIndicators { readonly [key: string]: DXLinkIndiChartIndicator; } export interface DXLinkIndiChartChannelParameters { readonly indicators: DXLinkIndiChartIndicators; } export type JSONNumber = number | 'NaN' | 'Infinity' | '-Infinity'; export interface DXLinkIndiChartSubscription { readonly symbol: string; readonly fromTime: number; } export interface DXLinkIndiChartIndicatorsParameters { readonly [key: string]: { readonly [key: string]: number | string | boolean; }; } export interface DXLinkIndiChartDoubleParameterMeta { readonly name: string; readonly type: 'DOUBLE'; readonly defaultValue: JSONNumber; readonly value?: JSONNumber; readonly options?: (JSONNumber | string)[]; readonly min?: number; readonly max?: number; readonly step?: number; } export interface DXLinkIndiChartStringParameterMeta { readonly name: string; readonly type: 'STRING'; readonly defaultValue: string; readonly value?: string; readonly options?: string[]; } export interface DXLinkIndiChartBoolParameterMeta { readonly name: string; readonly type: 'BOOL'; readonly defaultValue: boolean; readonly value?: boolean; } export interface DXLinkIndiChartColorParameterMeta { readonly name: string; readonly type: 'COLOR'; readonly defaultValue: DXLinkIndiChartColor; readonly value?: DXLinkIndiChartColor; } export interface DXLinkIndiChartSourceParameterMeta { readonly name: string; readonly type: 'SOURCE'; readonly defaultValue: string; readonly value?: string; readonly options?: string[]; } export interface DXLinkIndiChartSessionParameterMeta { readonly name: string; readonly type: 'SESSION'; readonly defaultValue: string; readonly value?: string; readonly options?: string[]; readonly timeZone?: string; } export interface DXLinkIndiChartEnumParameterMeta { readonly name: string; readonly type: 'ENUM'; readonly defaultValue: string; readonly value?: string; readonly options?: string[]; } export type DXLinkIndiChartIndicatorParameterMeta = DXLinkIndiChartDoubleParameterMeta | DXLinkIndiChartStringParameterMeta | DXLinkIndiChartBoolParameterMeta | DXLinkIndiChartColorParameterMeta | DXLinkIndiChartSourceParameterMeta | DXLinkIndiChartSessionParameterMeta | DXLinkIndiChartEnumParameterMeta; export interface DXLinkIndiChartIndicatorEnabled { readonly enabled: true; readonly inParameters: DXLinkIndiChartIndicatorParameterMeta[]; readonly outParameters: DXLinkIndiChartIndicatorParameterMeta[]; } export interface ScriptStackFrame { column: number; functionName: string; line: number; } export interface ScriptError { endColumn: number; endLine: number; message: string; scriptName: string; scriptStack: ScriptStackFrame[]; startColumn: number; startLine: number; type: string; } export interface DXLinkIndiChartIndicatorDisabled { enabled: false; scriptError?: ScriptError; internalErrorMessage?: string; } export type DXLinkIndiChartIndicatorState = DXLinkIndiChartIndicatorEnabled | DXLinkIndiChartIndicatorDisabled; export interface DXLinkIndiChartIndicatorsStates { readonly [key: string]: DXLinkIndiChartIndicatorState; } export interface DXLinkIndiChartIndicatorsMessage { readonly type: 'INDICHART_INDICATORS'; readonly indicators: DXLinkIndiChartIndicatorsStates; } export interface DXLinkIndiChartSubscriptionMessage { readonly type: 'INDICHART_SUBSCRIPTION'; readonly subscription: DXLinkIndiChartSubscription; readonly indicatorsParameters: DXLinkIndiChartIndicatorsParameters; } export interface DXLinkIndiChartSetup { readonly acceptAggregationPeriod: number; readonly acceptDataFormat: 'FULL'; readonly acceptCandleFields: string[]; } export interface DXLinkIndiChartSetupMessage extends DXLinkIndiChartSetup { readonly type: 'INDICHART_SETUP'; } export interface DXLinkIndiChartConfig { readonly aggregationPeriod: number; readonly dataFormat: 'FULL'; readonly candleFields: string[]; } export interface DXLinkIndiChartConfigMessage extends DXLinkIndiChartConfig { readonly type: 'INDICHART_CONFIG'; } export interface DXLinkIndiChartCandle { readonly eventSymbol: string; readonly index: number; readonly time: number; readonly open: JSONNumber; readonly high: JSONNumber; readonly low: JSONNumber; readonly close: JSONNumber; readonly volume: JSONNumber; } export interface DXLinkIndiChartColor { readonly value: string; readonly alpha?: number; } export interface DXLinkIndiChartSplinePoint { readonly value: JSONNumber; readonly type?: string; readonly offset?: number; readonly title?: string; readonly color?: DXLinkIndiChartColor; readonly overlay?: boolean; } export interface DXLinkIndiChartCalculationResult { readonly output?: { [seriesName: string]: JSONNumber[]; }; readonly spline?: { [seriesIndex: string]: DXLinkIndiChartSplinePoint[]; }; } export interface DXLinkIndiChartIndicatorsData { readonly [indicatorName: string]: DXLinkIndiChartCalculationResult; } export interface DXLinkIndiChartCandleSnapshotMessage { readonly type: 'INDICHART_CANDLE_SNAPSHOT'; readonly reset: boolean; readonly pending: boolean; readonly candles: DXLinkIndiChartCandle[]; } export interface DXLinkIndiChartIndicatorsSnapshotMessage { readonly type: 'INDICHART_INDICATORS_SNAPSHOT'; readonly pending: boolean; readonly indicators: DXLinkIndiChartIndicatorsData; } export interface DXLinkIndiChartUpdateMessage { readonly type: 'INDICHART_UPDATE'; readonly pending: boolean; readonly candles: DXLinkIndiChartCandle[]; readonly indicators: DXLinkIndiChartIndicatorsData; } export interface DXLinkIndiChartRemoveIndicatorsMessage { readonly type: 'INDICHART_REMOVE_INDICATORS'; readonly indicators: string[]; } export type ChartInboundMessage = DXLinkIndiChartIndicatorsMessage | DXLinkIndiChartConfigMessage | DXLinkIndiChartUpdateMessage | DXLinkIndiChartCandleSnapshotMessage | DXLinkIndiChartIndicatorsSnapshotMessage; export type ChartOutboundMessage = DXLinkIndiChartSubscriptionMessage | DXLinkIndiChartSetupMessage | DXLinkIndiChartRemoveIndicatorsMessage; export declare const isChartInboundMessage: (message: DXLinkChannelMessage) => message is ChartInboundMessage;