
import { ECOption } from '@/components/base/echarts/core'

/**
 * 图表数据集
 */
export interface EchartsDataset {
    invalid: number[]; // 行情历史数据中所有补充数据的索引位置(用于指标计算)
    candlestick: Dataset<Candlestick>;
    macd: Dataset<MACD>;
    vol: Dataset<VOL>;
    kdj: Dataset<KDJ>;
    cci: Dataset<CCI>;
}

/**
 * 图表数据源
 */
export interface Dataset<T> {
    dimensions: (keyof T)[];
    source: T[];
}

/**
 * K线
 */
export type Candlestick = {
    date: string, // xAxis数据，必须是第一个属性
    open: number, // 开盘
    close: number, // 收盘
    lowest: number, // 最低
    highest: number, //最高
    ma5: string,
    ma10: string,
    ma15: string,
}

/**
 * MACD指标
 */
export type MACD = {
    date: string, // xAxis数据，必须是第一个属性
    macd: number,
    dif: number,
    dea: number,
    ema12: number,
    ema26: number,
}

/**
 * VOL指标
 */
export type VOL = {
    date: string, // xAxis数据，必须是第一个属性
    vol: number,
}

/** 
 * KDJ指标
 */
export type KDJ = {
    date: string, // xAxis数据，必须是第一个属性
    k: string,
    d: string,
    j: string,
}

/** 
 * CCI指标
 */
export type CCI = {
    date: string, // xAxis数据，必须是第一个属性
    cci: string,
}

/**
 * 图表配置项
 */
export interface EchartsOptions {
    colors: Colors;
    candlestick: ECOption;
    macd: ECOption;
    vol: ECOption;
    kdj: ECOption;
    cci: ECOption;
}

/**
 * 图表颜色
 */
export interface Colors {
    upColor: string;
    downColor: string;
    xAxisLineColor: string;
    yAxisLineColor: string;
}