| | |
| | | 教程中所有的实例中使用的数据都来自互联网,或测试数据。仅用于学习HQChart图形使用. 教程禁止用于商业产品 |
| | | */ |
| | | |
| | | import $ from 'jquery' |
| | | import $ from "jquery"; |
| | | // import $, { hasData } from 'jquery' |
| | | import HQChart from 'hqchart' |
| | | import moment from 'moment' |
| | | import HQChart from "hqchart"; |
| | | import moment from "moment"; |
| | | import apiRrl from "@/axios/api.url"; |
| | | |
| | | // 源码调试用 |
| | | // import Chart from '../../jscommon/umychart.vue/umychart.vue.js' |
| | | // var HQChart={ Chart:Chart }; |
| | | |
| | | function HQData () { } |
| | | window.globalVar = 'https://api.jumptalk.net/' |
| | | HQData.Explain = '东财财富网接口' |
| | | function HQData() {} |
| | | window.globalVar = apiRrl.baseURL; |
| | | HQData.Explain = "东财财富网接口"; |
| | | |
| | | HQChart.Chart.JSConsole.Chart.Log = () => { } |
| | | HQChart.Chart.JSConsole.Complier.Log = () => { } |
| | | HQChart.Chart.JSConsole.Chart.Log = () => {}; |
| | | HQChart.Chart.JSConsole.Complier.Log = () => {}; |
| | | |
| | | HQData.Log = HQChart.Chart.JSConsole.Chart.Log |
| | | HQData.Log = HQChart.Chart.JSConsole.Chart.Log; |
| | | |
| | | HQData.SetMinuteChartCoordinate = function () { |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsShowAvPrice = (upperSymbol) => { return HQData.IsShowAvPrice(upperSymbol) } |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsEnableRight = (period, symbol) => { return HQData.IsEnableRight(period, symbol) } |
| | | HQData.SetMinuteChartCoordinate = function() { |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsShowAvPrice = upperSymbol => { |
| | | return HQData.IsShowAvPrice(upperSymbol); |
| | | }; |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsEnableRight = (period, symbol) => { |
| | | return HQData.IsEnableRight(period, symbol); |
| | | }; |
| | | |
| | | // 美股分时图坐标 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateUSAData = () => { return HQData.CreateUSAData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetUSAData = (upperSymbol, width) => { return HQData.GetUSAData(upperSymbol, width) } // 替换X轴刻度信息 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateUSAData = () => { |
| | | return HQData.CreateUSAData( |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData() |
| | | ); |
| | | }; // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetUSAData = ( |
| | | upperSymbol, |
| | | width |
| | | ) => { |
| | | return HQData.GetUSAData(upperSymbol, width); |
| | | }; // 替换X轴刻度信息 |
| | | |
| | | // A股分时图坐标 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateSHSZData = () => { return HQData.CreateSHSZData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetSHSZData = (upperSymbol, width) => { return HQData.GetSHSZData(upperSymbol, width) } // 替换X轴刻度信息 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateSHSZData = () => { |
| | | return HQData.CreateSHSZData( |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData() |
| | | ); |
| | | }; // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetSHSZData = ( |
| | | upperSymbol, |
| | | width |
| | | ) => { |
| | | return HQData.GetSHSZData(upperSymbol, width); |
| | | }; // 替换X轴刻度信息 |
| | | |
| | | // 北交所 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateBJData = () => { return HQData.CreateSHSZData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetBJData = (upperSymbol, width) => { return HQData.GetSHSZData(upperSymbol, width) } // 替换X轴刻度信息 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateBJData = () => { |
| | | return HQData.CreateSHSZData( |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData() |
| | | ); |
| | | }; // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetBJData = ( |
| | | upperSymbol, |
| | | width |
| | | ) => { |
| | | return HQData.GetSHSZData(upperSymbol, width); |
| | | }; // 替换X轴刻度信息 |
| | | |
| | | // 港股分时图坐标 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateHKData = () => { return HQData.CreateHKData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetHKData = (upperSymbol, width) => { return HQData.GetHKData(upperSymbol, width) } // 替换X轴刻度信息 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateHKData = () => { |
| | | return HQData.CreateHKData(HQChart.Chart.JSChart.GetMinuteTimeStringData()); |
| | | }; // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetHKData = ( |
| | | upperSymbol, |
| | | width |
| | | ) => { |
| | | return HQData.GetHKData(upperSymbol, width); |
| | | }; // 替换X轴刻度信息 |
| | | |
| | | // 外汇分时图坐标 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateForeignExchangeData = () => { return HQData.CreateForeignExchangeData(HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetForeignExchangeData = (upperSymbol, width) => { return HQData.GetForeignExchangeData(upperSymbol, width) } // 替换X轴刻度信息 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().CreateForeignExchangeData = () => { |
| | | return HQData.CreateForeignExchangeData( |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData() |
| | | ); |
| | | }; // 替换交易时间段 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetForeignExchangeData = ( |
| | | upperSymbol, |
| | | width |
| | | ) => { |
| | | return HQData.GetForeignExchangeData(upperSymbol, width); |
| | | }; // 替换X轴刻度信息 |
| | | |
| | | // 期货 |
| | | var chinaFutrues = HQChart.Chart.JSChart.GetChinaFuturesTimeData() |
| | | chinaFutrues.AddNewFutures({ Suffix: '.SHF', Symbol: 'WR', Time: 9, Decimal: 2, Name: '线材' }) // obj= { Suffix:后缀, Symbol:品种代码, Time:交易时间段, Decimal:小数位数, Name:名字 } |
| | | chinaFutrues.AddNewFutures({ Suffix: '.DCE', Symbol: 'BB', Time: 9, Decimal: 2, Name: '胶合板' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.DCE', Symbol: 'JD', Time: 9, Decimal: 2, Name: '鸡蛋' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.DCE', Symbol: 'LH', Time: 9, Decimal: 2, Name: '生猪' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'WH', Time: 9, Decimal: 0, Name: '强麦' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'PM', Time: 9, Decimal: 0, Name: '普麦' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'RI', Time: 9, Decimal: 0, Name: '早籼稻' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'RS', Time: 9, Decimal: 0, Name: '菜籽' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'JR', Time: 9, Decimal: 0, Name: '粳稻' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'LR', Time: 9, Decimal: 0, Name: '晚籼稻' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'LR', Time: 9, Decimal: 0, Name: '晚籼稻' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'SM', Time: 9, Decimal: 0, Name: '锰硅' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'SF', Time: 9, Decimal: 0, Name: '硅铁' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'AP', Time: 9, Decimal: 0, Name: '苹果' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'CJ', Time: 9, Decimal: 0, Name: '红枣' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'UR', Time: 9, Decimal: 0, Name: '尿素' }) |
| | | chinaFutrues.AddNewFutures({ Suffix: '.CZC', Symbol: 'PK', Time: 9, Decimal: 0, Name: '花生' }) |
| | | var chinaFutrues = HQChart.Chart.JSChart.GetChinaFuturesTimeData(); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".SHF", |
| | | Symbol: "WR", |
| | | Time: 9, |
| | | Decimal: 2, |
| | | Name: "线材" |
| | | }); // obj= { Suffix:后缀, Symbol:品种代码, Time:交易时间段, Decimal:小数位数, Name:名字 } |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".DCE", |
| | | Symbol: "BB", |
| | | Time: 9, |
| | | Decimal: 2, |
| | | Name: "胶合板" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".DCE", |
| | | Symbol: "JD", |
| | | Time: 9, |
| | | Decimal: 2, |
| | | Name: "鸡蛋" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".DCE", |
| | | Symbol: "LH", |
| | | Time: 9, |
| | | Decimal: 2, |
| | | Name: "生猪" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "WH", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "强麦" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "PM", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "普麦" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "RI", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "早籼稻" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "RS", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "菜籽" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "JR", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "粳稻" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "LR", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "晚籼稻" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "LR", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "晚籼稻" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "SM", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "锰硅" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "SF", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "硅铁" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "AP", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "苹果" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "CJ", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "红枣" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "UR", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "尿素" |
| | | }); |
| | | chinaFutrues.AddNewFutures({ |
| | | Suffix: ".CZC", |
| | | Symbol: "PK", |
| | | Time: 9, |
| | | Decimal: 0, |
| | | Name: "花生" |
| | | }); |
| | | |
| | | // 芝加哥期货交易所 |
| | | var futrues = HQChart.Chart.JSChart.GetInternalTimeData('CBOTTimeData') |
| | | futrues.AddNewFutures({ Symbol: 'ZW', Time: 3, Decimal: 2, Name: '小麦' }) |
| | | futrues.AddNewFutures({ Symbol: 'XW', Time: 4, Decimal: 2, Name: '迷你小麦' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZC', Time: 3, Decimal: 2, Name: '玉米' }) |
| | | futrues.AddNewFutures({ Symbol: 'XC', Time: 4, Decimal: 2, Name: '迷你玉米' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZS', Time: 3, Decimal: 2, Name: '大豆' }) |
| | | futrues.AddNewFutures({ Symbol: 'XK', Time: 4, Decimal: 2, Name: '迷你大豆' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZL', Time: 3, Decimal: 2, Name: '豆油' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZM', Time: 3, Decimal: 2, Name: '豆粕' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZO', Time: 3, Decimal: 2, Name: '燕麦' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZR', Time: 3, Decimal: 2, Name: '稻谷' }) |
| | | futrues.AddNewFutures({ Symbol: 'ZL', Time: 3, Decimal: 2, Name: '豆油' }) |
| | | futrues.AddNewFutures({ Symbol: 'NQ', Time: 5, Decimal: 2, Name: '小型纳指' }) |
| | | futrues.AddNewFutures({ Symbol: 'ES', Time: 5, Decimal: 2, Name: '小型标普' }) |
| | | futrues.AddNewFutures({ Symbol: 'YM', Time: 5, Decimal: 0, Name: '小型道指' }) |
| | | var futrues = HQChart.Chart.JSChart.GetInternalTimeData("CBOTTimeData"); |
| | | futrues.AddNewFutures({ Symbol: "ZW", Time: 3, Decimal: 2, Name: "小麦" }); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "XW", |
| | | Time: 4, |
| | | Decimal: 2, |
| | | Name: "迷你小麦" |
| | | }); |
| | | futrues.AddNewFutures({ Symbol: "ZC", Time: 3, Decimal: 2, Name: "玉米" }); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "XC", |
| | | Time: 4, |
| | | Decimal: 2, |
| | | Name: "迷你玉米" |
| | | }); |
| | | futrues.AddNewFutures({ Symbol: "ZS", Time: 3, Decimal: 2, Name: "大豆" }); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "XK", |
| | | Time: 4, |
| | | Decimal: 2, |
| | | Name: "迷你大豆" |
| | | }); |
| | | futrues.AddNewFutures({ Symbol: "ZL", Time: 3, Decimal: 2, Name: "豆油" }); |
| | | futrues.AddNewFutures({ Symbol: "ZM", Time: 3, Decimal: 2, Name: "豆粕" }); |
| | | futrues.AddNewFutures({ Symbol: "ZO", Time: 3, Decimal: 2, Name: "燕麦" }); |
| | | futrues.AddNewFutures({ Symbol: "ZR", Time: 3, Decimal: 2, Name: "稻谷" }); |
| | | futrues.AddNewFutures({ Symbol: "ZL", Time: 3, Decimal: 2, Name: "豆油" }); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "NQ", |
| | | Time: 5, |
| | | Decimal: 2, |
| | | Name: "小型纳指" |
| | | }); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "ES", |
| | | Time: 5, |
| | | Decimal: 2, |
| | | Name: "小型标普" |
| | | }); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "YM", |
| | | Time: 5, |
| | | Decimal: 0, |
| | | Name: "小型道指" |
| | | }); |
| | | |
| | | // 美国洲际交易所 |
| | | // var futrues = HQChart.Chart.JSChart.GetInternalTimeData('IPETimeData') |
| | | var lIndex = futrues.TIME_SPLIT.length |
| | | futrues.TIME_SPLIT[lIndex] = HQData.GetCustomTradeTimeData('IPE_G') |
| | | futrues.TIME_SPLIT2[lIndex] = HQData.GetCustomTradeTimeData('IPE_G_2') |
| | | futrues.AddNewFutures({ Symbol: 'G', Time: lIndex, Decimal: 0, Name: '低硫柴油' }) |
| | | var lIndex = futrues.TIME_SPLIT.length; |
| | | futrues.TIME_SPLIT[lIndex] = HQData.GetCustomTradeTimeData("IPE_G"); |
| | | futrues.TIME_SPLIT2[lIndex] = HQData.GetCustomTradeTimeData("IPE_G_2"); |
| | | futrues.AddNewFutures({ |
| | | Symbol: "G", |
| | | Time: lIndex, |
| | | Decimal: 0, |
| | | Name: "低硫柴油" |
| | | }); |
| | | |
| | | // 自定义类型 |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().GetET = (upperSymbol) => { return HQData.GetETTimeData(upperSymbol, HQChart.Chart.JSChart.GetMinuteTimeStringData()) } // 当天所有的交易时间点 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetETData = (upperSymbol) => { return HQData.GetETData(upperSymbol) } // X轴刻度设置 |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.GetETDecimal = (symbol) => { return HQData.GetETDecimal(symbol) } // 不同品种,使用不同小数位数 |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsETShowAvPrice = (symbol) => { return false } // 提示信息是否显示均线数值 |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.GetETMarketStatus = (symbol) => { return 2 } // 获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后 |
| | | } |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData().GetET = upperSymbol => { |
| | | return HQData.GetETTimeData( |
| | | upperSymbol, |
| | | HQChart.Chart.JSChart.GetMinuteTimeStringData() |
| | | ); |
| | | }; // 当天所有的交易时间点 |
| | | HQChart.Chart.JSChart.GetMinuteCoordinateData().GetETData = upperSymbol => { |
| | | return HQData.GetETData(upperSymbol); |
| | | }; // X轴刻度设置 |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.GetETDecimal = symbol => { |
| | | return HQData.GetETDecimal(symbol); |
| | | }; // 不同品种,使用不同小数位数 |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsETShowAvPrice = symbol => { |
| | | return false; |
| | | }; // 提示信息是否显示均线数值 |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.GetETMarketStatus = symbol => { |
| | | return 2; |
| | | }; // 获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后 |
| | | }; |
| | | |
| | | HQData.NetworkFilter = function (data, callback) { |
| | | HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data) |
| | | HQData.NetworkFilter = function(data, callback) { |
| | | HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data); |
| | | |
| | | switch (data.Name) { |
| | | case 'MinuteChartContainer::RequestMinuteData': // 分时图数据对接 |
| | | HQData.RequestMinuteData(data, callback) |
| | | break |
| | | case 'MinuteChartContainer::RequestHistoryMinuteData': |
| | | HQData.RequestMinuteDaysData(data, callback) |
| | | break |
| | | case "MinuteChartContainer::RequestMinuteData": // 分时图数据对接 |
| | | HQData.RequestMinuteData(data, callback); |
| | | break; |
| | | case "MinuteChartContainer::RequestHistoryMinuteData": |
| | | HQData.RequestMinuteDaysData(data, callback); |
| | | break; |
| | | |
| | | case 'KLineChartContainer::RequestHistoryData': // 日线全量数据下载 |
| | | HQData.RequestHistoryData(data, callback) |
| | | break |
| | | case 'KLineChartContainer::RequestRealtimeData': // 日线实时数据更新 |
| | | HQData.RequestRealtimeData(data, callback) |
| | | break |
| | | case 'KLineChartContainer::RequestFlowCapitalData': // 流通股本 |
| | | HQData.RequestFlowCapitalData(data, callback) |
| | | break |
| | | case "KLineChartContainer::RequestHistoryData": // 日线全量数据下载 |
| | | HQData.RequestHistoryData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新 |
| | | HQData.RequestRealtimeData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestFlowCapitalData": // 流通股本 |
| | | HQData.RequestFlowCapitalData(data, callback); |
| | | break; |
| | | |
| | | case 'KLineChartContainer::ReqeustHistoryMinuteData': // 分钟全量数据下载 |
| | | HQData.RequestHistoryMinuteData(data, callback) |
| | | break |
| | | case 'KLineChartContainer::RequestMinuteRealtimeData': // 分钟增量数据更新 |
| | | HQData.RequestMinuteRealtimeData(data, callback) |
| | | break |
| | | case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载 |
| | | HQData.RequestHistoryMinuteData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新 |
| | | HQData.RequestMinuteRealtimeData(data, callback); |
| | | break; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestMinuteData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | HQData.RequestMinuteData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | |
| | | var symbol = data.Request.Data.symbol[0] // 请求的股票代码 |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | // var dayCount = data.Request.Data.daycount |
| | | console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`) |
| | | var obj = HQData.GetMinuteApiUrl(symbol, 1) |
| | | console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`); |
| | | var obj = HQData.GetMinuteApiUrl(symbol, 1); |
| | | console.log(obj, "======"); |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | $.ajax( |
| | | { |
| | | url: obj.Url, |
| | | type: 'GET', |
| | | success: function (recvData) { |
| | | HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | HQData.RecvMinuteData = function (recvData, callback, option) { |
| | | HQData.RecvMinuteData = function(recvData, callback, option) { |
| | | // var data = recvData.data |
| | | var stock = { symbol: option.Obj.Symbol, minute: [] } |
| | | var stock = { symbol: option.Obj.Symbol, minute: [] }; |
| | | // stock.name = data.name |
| | | // stock.yclose = data.preClose |
| | | stock.name = '12312' |
| | | stock.yclose = '123' |
| | | var symbol = option.Obj.Symbol |
| | | var symbolUpper = symbol.toUpperCase() |
| | | var isStockA = HQData.IsSHSZ(symbolUpper) |
| | | stock.name = "12312"; |
| | | stock.yclose = "123"; |
| | | var symbol = option.Obj.Symbol; |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | var isStockA = HQData.IsSHSZ(symbolUpper); |
| | | // var isChinaFutrues = HQData.IsChinaFutures(symbolUpper) |
| | | var isLME = HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(symbolUpper) // 伦敦金属交易所 |
| | | var isLME = HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(symbolUpper); // 伦敦金属交易所 |
| | | // if (isChinaFutrues) stock.yclearing = data.preSettlement // 期货昨结算价 |
| | | // for (var i = 0; i < data.trends.length; ++i) { |
| | | recvData = JSON.parse(recvData) |
| | | recvData = JSON.parse(recvData); |
| | | // var date = moment.unix(strItem.t || strItem.id).format("YYYYMMDD"); |
| | | // // |
| | | // var open = parseFloat(strItem.o || strItem.open); |
| | | // var close = parseFloat(strItem.c || strItem.close); |
| | | // var high = parseFloat(strItem.h || strItem.high); |
| | | // var low = parseFloat(strItem.l || strItem.low); |
| | | // var vol = parseFloat(strItem.v || strItem.vol) * 100; |
| | | for (var i = 0; i < recvData.length; ++i) { |
| | | var strItem = recvData[i] |
| | | var strItem = recvData[i]; |
| | | strItem.t = strItem.t || strItem.id; |
| | | strItem.c = strItem.c || strItem.close; |
| | | strItem.h = strItem.h || strItem.high; |
| | | strItem.l = strItem.l || strItem.low; |
| | | strItem.v = strItem.v || strItem.vol; |
| | | // console.log(strItem) |
| | | // var item = strItem.split(',') |
| | | // console.log('查看', item) |
| | | // var today = new Date(Date.parse(item[0])); // 不兼容 safari 浏览器 |
| | | var today = new Date(strItem.t) // 同时兼容 safari 浏览器 |
| | | var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var time = today.getHours() * 100 + today.getMinutes() |
| | | var stockItem = |
| | | { |
| | | date: date, |
| | | time: time, |
| | | open: parseFloat(strItem.o), |
| | | high: parseFloat(strItem.h), |
| | | low: parseFloat(strItem.l), |
| | | // price: parseFloat(item[4]), |
| | | vol: parseFloat(strItem.vo) |
| | | // amount: parseFloat(item[6]), |
| | | // avprice: parseFloat(item[7]) |
| | | } |
| | | if (isStockA) stockItem.vol *= 100 |
| | | if (isLME) stockItem.avprice = null |
| | | var today = new Date(strItem.t); // 同时兼容 safari 浏览器 |
| | | var date = |
| | | today.getFullYear() * 10000 + |
| | | (today.getMonth() + 1) * 100 + |
| | | today.getDate(); |
| | | var time = today.getHours() * 100 + today.getMinutes(); |
| | | var stockItem = { |
| | | date: date, |
| | | time: time, |
| | | open: parseFloat(strItem.o), |
| | | high: parseFloat(strItem.h), |
| | | low: parseFloat(strItem.l), |
| | | // price: parseFloat(item[4]), |
| | | vol: parseFloat(strItem.vo) |
| | | // amount: parseFloat(item[6]), |
| | | // avprice: parseFloat(item[7]) |
| | | }; |
| | | if (isStockA) stockItem.vol *= 100; |
| | | if (isLME) stockItem.avprice = null; |
| | | |
| | | stock.date = date |
| | | stock.minute.push(stockItem) |
| | | stock.date = date; |
| | | stock.minute.push(stockItem); |
| | | } |
| | | |
| | | var hqchartData = { stock: [stock], code: 0 } |
| | | var hqchartData = { stock: [stock], code: 0 }; |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvMinuteDaysData] hqchartData ', hqchartData) |
| | | callback(hqchartData) |
| | | HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData); |
| | | callback(hqchartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestMinuteDaysData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | var symbol = data.Request.Data.symbol // 请求的股票代码 |
| | | var dayCount = data.Request.Data.daycount |
| | | var symbolUpper = symbol.toUpperCase() |
| | | console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`) |
| | | var obj = HQData.GetMinuteApiUrl(symbol, dayCount) |
| | | HQData.RequestMinuteDaysData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var dayCount = data.Request.Data.daycount; |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`); |
| | | var obj = HQData.GetMinuteApiUrl(symbol, dayCount); |
| | | |
| | | $.ajax( |
| | | { |
| | | url: obj.Url, |
| | | type: 'GET', |
| | | success: function (recvData) { |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHFE(symbolUpper) || HQChart.Chart.MARKET_SUFFIX_NAME.IsDCE(symbolUpper) || |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsCZCE(symbolUpper) || HQChart.Chart.MARKET_SUFFIX_NAME.IsCFFEX(symbolUpper)) { HQData.RecvMinuteDaysDataV2(recvData, callback, { Data: data, Obj: obj }) } else { HQData.RecvMinuteDaysData(recvData, callback, { Data: data, Obj: obj }) } |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | if ( |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsSHFE(symbolUpper) || |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsDCE(symbolUpper) || |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsCZCE(symbolUpper) || |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsCFFEX(symbolUpper) |
| | | ) { |
| | | HQData.RecvMinuteDaysDataV2(recvData, callback, { |
| | | Data: data, |
| | | Obj: obj |
| | | }); |
| | | } else { |
| | | HQData.RecvMinuteDaysData(recvData, callback, { Data: data, Obj: obj }); |
| | | } |
| | | }) |
| | | } |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvMinuteDaysData = function (recvData, callback, option) { |
| | | var data = recvData.data |
| | | var aryDayData = [] |
| | | var itemDay = null |
| | | var yClose = data.preClose |
| | | var symbol = option.Obj.Symbol |
| | | var symbolUpper = symbol.toUpperCase() |
| | | var isStockA = HQData.IsSHSZ(symbolUpper) |
| | | HQData.RecvMinuteDaysData = function(recvData, callback, option) { |
| | | var data = recvData.data; |
| | | var aryDayData = []; |
| | | var itemDay = null; |
| | | var yClose = data.preClose; |
| | | var symbol = option.Obj.Symbol; |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | var isStockA = HQData.IsSHSZ(symbolUpper); |
| | | |
| | | var xDatetime = HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData(symbol) |
| | | var firstTime = xDatetime[0] // 第1个数据的时间 |
| | | var minuteCount = xDatetime.length |
| | | var i = 0 |
| | | var xDatetime = HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData( |
| | | symbol |
| | | ); |
| | | var firstTime = xDatetime[0]; // 第1个数据的时间 |
| | | var minuteCount = xDatetime.length; |
| | | var i = 0; |
| | | for (i = 0; i < data.trends.length; ++i) { |
| | | var strItem = data.trends[i] |
| | | var item = strItem.split(',') |
| | | var strItem = data.trends[i]; |
| | | var item = strItem.split(","); |
| | | // var today = new Date(Date.parse(item[0])); // 不兼容 safari 浏览器 |
| | | var today = new Date(Date.parse(item[0].replace(/-/g, '/'))) // 同时兼容 safari 浏览器 |
| | | var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var time = today.getHours() * 100 + today.getMinutes() |
| | | if (time === firstTime) break |
| | | var today = new Date(Date.parse(item[0].replace(/-/g, "/"))); // 同时兼容 safari 浏览器 |
| | | var date = |
| | | today.getFullYear() * 10000 + |
| | | (today.getMonth() + 1) * 100 + |
| | | today.getDate(); |
| | | var time = today.getHours() * 100 + today.getMinutes(); |
| | | if (time === firstTime) break; |
| | | } |
| | | |
| | | for (var j = 0; i < data.trends.length; ++i, ++j) { |
| | | var strItem = data.trends[i] |
| | | var item = strItem.split(',') |
| | | var strItem = data.trends[i]; |
| | | var item = strItem.split(","); |
| | | // var today = new Date(Date.parse(item[0])); // 不兼容 safari 浏览器 |
| | | var today = new Date(Date.parse(item[0].replace(/-/g, '/'))) // 同时兼容 safari 浏览器 |
| | | var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var time = today.getHours() * 100 + today.getMinutes() |
| | | var today = new Date(Date.parse(item[0].replace(/-/g, "/"))); // 同时兼容 safari 浏览器 |
| | | var date = |
| | | today.getFullYear() * 10000 + |
| | | (today.getMonth() + 1) * 100 + |
| | | today.getDate(); |
| | | var time = today.getHours() * 100 + today.getMinutes(); |
| | | |
| | | if (j % minuteCount === 0) { |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay) |
| | | itemDay = { minute: [], date: date, yclose: yClose } |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay); |
| | | itemDay = { minute: [], date: date, yclose: yClose }; |
| | | } |
| | | |
| | | var price = parseFloat(item[4]) |
| | | var stockItem = |
| | | { |
| | | date: date, |
| | | time: time, |
| | | open: price, |
| | | high: price, |
| | | low: price, |
| | | price: price, |
| | | amount: parseFloat(item[6]), |
| | | vol: parseFloat(item[5]), |
| | | avprice: parseFloat(item[7]) |
| | | } |
| | | var price = parseFloat(item[4]); |
| | | var stockItem = { |
| | | date: date, |
| | | time: time, |
| | | open: price, |
| | | high: price, |
| | | low: price, |
| | | price: price, |
| | | amount: parseFloat(item[6]), |
| | | vol: parseFloat(item[5]), |
| | | avprice: parseFloat(item[7]) |
| | | }; |
| | | |
| | | if (isStockA) stockItem.vol *= 100 |
| | | if (isStockA) stockItem.vol *= 100; |
| | | |
| | | itemDay.minute.push([stockItem.time, stockItem.open, stockItem.high, stockItem.low, stockItem.price, stockItem.vol, stockItem.amount, stockItem.avprice, stockItem.date]) |
| | | itemDay.minute.push([ |
| | | stockItem.time, |
| | | stockItem.open, |
| | | stockItem.high, |
| | | stockItem.low, |
| | | stockItem.price, |
| | | stockItem.vol, |
| | | stockItem.amount, |
| | | stockItem.avprice, |
| | | stockItem.date |
| | | ]); |
| | | } |
| | | |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay) |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay); |
| | | |
| | | aryDayData = aryDayData.reverse() |
| | | aryDayData = aryDayData.reverse(); |
| | | |
| | | var hqchartData = { symbol: option.Obj.Symbol, name: data.name, data: aryDayData, code: 0 } |
| | | var hqchartData = { |
| | | symbol: option.Obj.Symbol, |
| | | name: data.name, |
| | | data: aryDayData, |
| | | code: 0 |
| | | }; |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvMinuteDaysData] hqchartData ', hqchartData) |
| | | callback(hqchartData) |
| | | HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData); |
| | | callback(hqchartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | // 期货模式 |
| | | HQData.RecvMinuteDaysDataV2 = function (recvData, callback, option) { |
| | | var data = recvData.data |
| | | var aryDayData = [] |
| | | var yClose = data.preClose |
| | | var symbol = option.Obj.Symbol |
| | | var symbolUpper = symbol.toUpperCase() |
| | | var yClearing = data.preSettlement // 期货昨结算价 |
| | | HQData.RecvMinuteDaysDataV2 = function(recvData, callback, option) { |
| | | var data = recvData.data; |
| | | var aryDayData = []; |
| | | var yClose = data.preClose; |
| | | var symbol = option.Obj.Symbol; |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | var yClearing = data.preSettlement; // 期货昨结算价 |
| | | |
| | | var xDatetime = HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData(symbol) |
| | | var endTime = xDatetime[xDatetime.length - 1] // 最后个数据的时间 |
| | | var minuteCount = xDatetime.length |
| | | var xDatetime = HQChart.Chart.JSChart.GetMinuteTimeStringData().GetTimeData( |
| | | symbol |
| | | ); |
| | | var endTime = xDatetime[xDatetime.length - 1]; // 最后个数据的时间 |
| | | var minuteCount = xDatetime.length; |
| | | |
| | | var itemDay = { minute: [], date: null, yclose: yClose, yclearing: yClearing } |
| | | var itemDay = { |
| | | minute: [], |
| | | date: null, |
| | | yclose: yClose, |
| | | yclearing: yClearing |
| | | }; |
| | | for (var i = 0; i < data.trends.length; ++i) { |
| | | var strItem = data.trends[i] |
| | | var item = strItem.split(',') |
| | | var today = new Date(Date.parse(item[0])) |
| | | var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var time = today.getHours() * 100 + today.getMinutes() |
| | | var strItem = data.trends[i]; |
| | | var item = strItem.split(","); |
| | | var today = new Date(Date.parse(item[0])); |
| | | var date = |
| | | today.getFullYear() * 10000 + |
| | | (today.getMonth() + 1) * 100 + |
| | | today.getDate(); |
| | | var time = today.getHours() * 100 + today.getMinutes(); |
| | | |
| | | var price = parseFloat(item[4]) |
| | | var stockItem = |
| | | { |
| | | date: date, |
| | | time: time, |
| | | open: price, |
| | | high: price, |
| | | low: price, |
| | | price: price, |
| | | amount: parseFloat(item[6]), |
| | | vol: parseFloat(item[5]), |
| | | avprice: parseFloat(item[7]) |
| | | } |
| | | var price = parseFloat(item[4]); |
| | | var stockItem = { |
| | | date: date, |
| | | time: time, |
| | | open: price, |
| | | high: price, |
| | | low: price, |
| | | price: price, |
| | | amount: parseFloat(item[6]), |
| | | vol: parseFloat(item[5]), |
| | | avprice: parseFloat(item[7]) |
| | | }; |
| | | |
| | | itemDay.date = date |
| | | itemDay.minute.push([stockItem.time, stockItem.open, stockItem.high, stockItem.low, stockItem.price, stockItem.vol, stockItem.amount, stockItem.avprice, stockItem.date]) |
| | | itemDay.date = date; |
| | | itemDay.minute.push([ |
| | | stockItem.time, |
| | | stockItem.open, |
| | | stockItem.high, |
| | | stockItem.low, |
| | | stockItem.price, |
| | | stockItem.vol, |
| | | stockItem.amount, |
| | | stockItem.avprice, |
| | | stockItem.date |
| | | ]); |
| | | |
| | | if (time === endTime) { |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay) |
| | | itemDay = { minute: [], date: null, yclose: yClose, yclearing: yClearing } |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay); |
| | | itemDay = { |
| | | minute: [], |
| | | date: null, |
| | | yclose: yClose, |
| | | yclearing: yClearing |
| | | }; |
| | | } |
| | | } |
| | | |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay) |
| | | if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay); |
| | | |
| | | var preClose = null, preAvprice = null, preDate = null |
| | | var preClose = null, |
| | | preAvprice = null, |
| | | preDate = null; |
| | | for (var i = 0; i < aryDayData.length - 1; ++i) { |
| | | var itemDay = aryDayData[i] |
| | | var newMinuteData = HQData.CorrectMinuteData(itemDay.minute, xDatetime) |
| | | var itemDay = aryDayData[i]; |
| | | var newMinuteData = HQData.CorrectMinuteData(itemDay.minute, xDatetime); |
| | | if (newMinuteData) { |
| | | for (var j = 0; j < newMinuteData.length; ++j) { |
| | | var item = newMinuteData[j] |
| | | var item = newMinuteData[j]; |
| | | if (item.length === 1) { |
| | | item[1] = item[2] = item[3] = item[4] = preClose |
| | | item[5] = item[6] = 0 |
| | | item[7] = preAvprice |
| | | item[8] = preDate |
| | | item[1] = item[2] = item[3] = item[4] = preClose; |
| | | item[5] = item[6] = 0; |
| | | item[7] = preAvprice; |
| | | item[8] = preDate; |
| | | } else { |
| | | preClose = item[4] |
| | | preAvprice = item[7] |
| | | preDate = item[8] |
| | | preClose = item[4]; |
| | | preAvprice = item[7]; |
| | | preDate = item[8]; |
| | | } |
| | | } |
| | | itemDay.minute = newMinuteData |
| | | itemDay.minute = newMinuteData; |
| | | } else { |
| | | var item = itemDay.minute[itemDay.minute.length - 1] |
| | | preClose = item[4] |
| | | preAvprice = item[7] |
| | | preDate = item[8] |
| | | var item = itemDay.minute[itemDay.minute.length - 1]; |
| | | preClose = item[4]; |
| | | preAvprice = item[7]; |
| | | preDate = item[8]; |
| | | } |
| | | } |
| | | |
| | | aryDayData = aryDayData.reverse() |
| | | aryDayData = aryDayData.reverse(); |
| | | |
| | | var hqchartData = { symbol: option.Obj.Symbol, name: data.name, data: aryDayData, code: 0 } |
| | | var hqchartData = { |
| | | symbol: option.Obj.Symbol, |
| | | name: data.name, |
| | | data: aryDayData, |
| | | code: 0 |
| | | }; |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvMinuteDaysData] hqchartData ', hqchartData) |
| | | callback(hqchartData) |
| | | HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData); |
| | | callback(hqchartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.CorrectMinuteData = function (minuteData, xDatetime) { |
| | | if (minuteData.length === xDatetime.length) return null |
| | | HQData.CorrectMinuteData = function(minuteData, xDatetime) { |
| | | if (minuteData.length === xDatetime.length) return null; |
| | | |
| | | var mapData = new Map() |
| | | var mapData = new Map(); |
| | | for (var i = 0; i < xDatetime.length; ++i) { |
| | | var item = xDatetime[i] |
| | | mapData.set(item, { Index: i, Time: item, Data: null }) |
| | | var item = xDatetime[i]; |
| | | mapData.set(item, { Index: i, Time: item, Data: null }); |
| | | } |
| | | |
| | | for (var i = 0; i < minuteData.length; ++i) { |
| | | var item = minuteData[i] |
| | | var time = item[0] |
| | | var item = minuteData[i]; |
| | | var time = item[0]; |
| | | |
| | | var findItem = mapData.get(time) |
| | | findItem.Data = item |
| | | var findItem = mapData.get(time); |
| | | findItem.Data = item; |
| | | } |
| | | |
| | | var newMinuteData = [] |
| | | var newMinuteData = []; |
| | | for (var item of mapData) { |
| | | var value = item[1] |
| | | var value = item[1]; |
| | | |
| | | if (value.Data) newMinuteData[value.Index] = value.Data |
| | | else newMinuteData[value.Index] = [value.Time] |
| | | if (value.Data) newMinuteData[value.Index] = value.Data; |
| | | else newMinuteData[value.Index] = [value.Time]; |
| | | } |
| | | |
| | | return newMinuteData |
| | | } |
| | | return newMinuteData; |
| | | }; |
| | | // HQChart内置代码转成东方财富代码 |
| | | HQData.GetInternalSymbol = function (symbol) { |
| | | var aryData = symbol.split('.') |
| | | var symbolUpper = symbol.toUpperCase() |
| | | var arySymbol = '' |
| | | arySymbol = aryData[0].split('_') |
| | | HQData.GetInternalSymbol = function(symbol) { |
| | | var aryData = symbol.split("."); |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | var arySymbol = ""; |
| | | arySymbol = aryData[0].split("_"); |
| | | // console.log(symbol,aryData,arySymbol,66666666666) |
| | | if (arySymbol.length === 3) { |
| | | arySymbol[0] = arySymbol[0] + '_' + arySymbol[1] |
| | | arySymbol[1] = arySymbol[2] |
| | | arySymbol[0] = arySymbol[0] + "_" + arySymbol[1]; |
| | | arySymbol[1] = arySymbol[2]; |
| | | } |
| | | var market = parseInt(arySymbol[1]) |
| | | var internalSymbol = arySymbol[0] |
| | | var market = parseInt(arySymbol[1]); |
| | | var internalSymbol = arySymbol[0]; |
| | | |
| | | if (internalSymbol.indexOf('-') > 0) { |
| | | var aryValue = internalSymbol.split('-') |
| | | internalSymbol = aryValue[1] |
| | | if (internalSymbol.indexOf("-") > 0) { |
| | | var aryValue = internalSymbol.split("-"); |
| | | internalSymbol = aryValue[1]; |
| | | } |
| | | |
| | | return { Market: market, Symbol: internalSymbol } |
| | | return { Market: market, Symbol: internalSymbol }; |
| | | /* |
| | | |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper)) //美股 |
| | |
| | | return { Market:market, Symbol:aryData[0] }; |
| | | } |
| | | */ |
| | | } |
| | | HQData.GetMinuteApiUrl = function (symbol, dayCount) { |
| | | |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol) |
| | | console.log('查看', internalSymbol) |
| | | }; |
| | | HQData.GetMinuteApiUrl = function(symbol, dayCount) { |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol); |
| | | console.log("查看", internalSymbol); |
| | | // var url=`http://push2his.eastmoney.com/api/qt/stock/trends2/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&ndays=1&iscr=0&iscca=0` |
| | | // var url = `http://api.mifeng.ws/api/futures/kline?time=1&period=day&symbol=FCPO&type=1` // ==== |
| | | var url = '' |
| | | const kLines = JSON.parse(window.localStorage.getItem('kLine')) |
| | | console.log('kLines===', kLines) |
| | | if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}` |
| | | } |
| | | if (kLines.type === 'qh') { |
| | | url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&stockType=${kLines.type}` |
| | | // url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}` |
| | | // url = `http://api-v1-f.js-stock.top/getkine?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&key=jssj2023key` |
| | | } |
| | | var url = ""; |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | console.log("kLines===", kLines); |
| | | // if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`; |
| | | // } |
| | | // if (kLines.type === 'qh') { |
| | | // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&stockType=${kLines.type}` |
| | | // url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}` |
| | | // url = `http://api-v1-f.js-stock.top/getkine?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=1440&key=jssj2023key` |
| | | // } |
| | | // var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}` |
| | | // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}` |
| | | |
| | | return { Url: url, Symbol: symbol, InternalSymbol: internalSymbol, DayCount: dayCount } |
| | | } |
| | | return { |
| | | Url: url, |
| | | Symbol: symbol, |
| | | InternalSymbol: internalSymbol, |
| | | DayCount: dayCount |
| | | }; |
| | | }; |
| | | |
| | | HQData.IsSHSZ = function (symbol) { // 是否是A股 |
| | | return HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZ(symbol) |
| | | } |
| | | HQData.IsSHSZ = function(symbol) { |
| | | // 是否是A股 |
| | | return HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZ(symbol); |
| | | }; |
| | | |
| | | HQData.IsChinaFutures = function (symbol) { // 国内期货 |
| | | return HQChart.Chart.MARKET_SUFFIX_NAME.IsChinaFutures(symbol) |
| | | } |
| | | HQData.IsChinaFutures = function(symbol) { |
| | | // 国内期货 |
| | | return HQChart.Chart.MARKET_SUFFIX_NAME.IsChinaFutures(symbol); |
| | | }; |
| | | |
| | | HQData.IsShowAvPrice = function (upperSymbol) { // 是否显示均价 |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(upperSymbol)) return false |
| | | if (upperSymbol === 'UDI_100.ET') return false |
| | | HQData.IsShowAvPrice = function(upperSymbol) { |
| | | // 是否显示均价 |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(upperSymbol)) return false; |
| | | if (upperSymbol === "UDI_100.ET") return false; |
| | | |
| | | return true |
| | | } |
| | | return true; |
| | | }; |
| | | // 是否显示第2个成交量图 |
| | | HQData.IsShowVolChart = function (upperSymbol) { |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) return false |
| | | if (upperSymbol === 'UDI_100.ET') return false |
| | | HQData.IsShowVolChart = function(upperSymbol) { |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) |
| | | return false; |
| | | if (upperSymbol === "UDI_100.ET") return false; |
| | | |
| | | return true |
| | | } |
| | | return true; |
| | | }; |
| | | |
| | | /// //////////////////////////////////////////////////////////////////////////////////////// |
| | | // |
| | | // 美国洲际交易所 重柴油 |
| | | // |
| | | HQData.GetCustomTradeTimeData = function (key) { |
| | | HQData.GetCustomTradeTimeData = function(key) { |
| | | // 美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗???? |
| | | if (key === 'IPE_G') { |
| | | if (key === "IPE_G") { |
| | | // 7:50-6:00 |
| | | var data = |
| | | { |
| | | Name: '7:50-6:00', |
| | | Data: |
| | | [ |
| | | { Start: 750, End: 2359 }, |
| | | { Start: 0, End: 600 } |
| | | ], |
| | | Coordinate: |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | { Value: 800, Text: '8:00' }, |
| | | { Value: 1000, Text: '10:00' }, |
| | | { Value: 1200, Text: '12:00' }, |
| | | { Value: 1400, Text: '14:00' }, |
| | | { Value: 1600, Text: '16:00' }, |
| | | { Value: 1800, Text: '18:00' }, |
| | | { Value: 2000, Text: '20:00' }, |
| | | { Value: 2200, Text: '22:00' }, |
| | | { Value: 0, Text: '0:00' }, |
| | | { Value: 200, Text: '2:00' }, |
| | | { Value: 400, Text: '4:00' }, |
| | | { Value: 600, Text: '6:00' } |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | { Value: 800, Text: '8:00' }, |
| | | { Value: 1200, Text: '12:00' }, |
| | | { Value: 1600, Text: '16:00' }, |
| | | { Value: 2000, Text: '20:00' }, |
| | | { Value: 0, Text: '0:00' }, |
| | | { Value: 400, Text: '4:00' }, |
| | | { Value: 600, Text: '6:00' } |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | { Value: 800, Text: '8:00' }, |
| | | { Value: 2000, Text: '20:00' }, |
| | | { Value: 600, Text: '6:00' } |
| | | ] |
| | | } |
| | | } |
| | | |
| | | return data |
| | | } else if (key === 'IPE_G_2') { // ID=0 08:50-07:00 |
| | | var data = { |
| | | Name: '08:50-07:00', |
| | | Data: |
| | | [ |
| | | { Start: 850, End: 2359 }, |
| | | { Start: 0, End: 700 } |
| | | ], |
| | | Coordinate: |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | { Value: 900, Text: '9:00' }, |
| | | { Value: 1100, Text: '11:00' }, |
| | | { Value: 1300, Text: '13:00' }, |
| | | { Value: 1500, Text: '15:00' }, |
| | | { Value: 1700, Text: '17:00' }, |
| | | { Value: 1900, Text: '19:00' }, |
| | | { Value: 2100, Text: '21:00' }, |
| | | { Value: 2300, Text: '23:00' }, |
| | | { Value: 1, Text: '1:00' }, |
| | | { Value: 300, Text: '3:00' }, |
| | | { Value: 500, Text: '5:00' }, |
| | | { Value: 700, Text: '7:00' } |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | { Value: 900, Text: '9:00' }, |
| | | { Value: 1300, Text: '13:00' }, |
| | | { Value: 1700, Text: '17:00' }, |
| | | { Value: 2100, Text: '21:00' }, |
| | | { Value: 1, Text: '1:00' }, |
| | | { Value: 500, Text: '5:00' }, |
| | | { Value: 700, Text: '7:00' } |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | { Value: 900, Text: '9:00' }, |
| | | { Value: 2100, Text: '21:00' }, |
| | | { Value: 700, Text: '7:00' } |
| | | ] |
| | | } |
| | | } |
| | | Name: "7:50-6:00", |
| | | Data: [ |
| | | { Start: 750, End: 2359 }, |
| | | { Start: 0, End: 600 } |
| | | ], |
| | | Coordinate: { |
| | | // 完整模式 |
| | | Full: [ |
| | | { Value: 800, Text: "8:00" }, |
| | | { Value: 1000, Text: "10:00" }, |
| | | { Value: 1200, Text: "12:00" }, |
| | | { Value: 1400, Text: "14:00" }, |
| | | { Value: 1600, Text: "16:00" }, |
| | | { Value: 1800, Text: "18:00" }, |
| | | { Value: 2000, Text: "20:00" }, |
| | | { Value: 2200, Text: "22:00" }, |
| | | { Value: 0, Text: "0:00" }, |
| | | { Value: 200, Text: "2:00" }, |
| | | { Value: 400, Text: "4:00" }, |
| | | { Value: 600, Text: "6:00" } |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | { Value: 800, Text: "8:00" }, |
| | | { Value: 1200, Text: "12:00" }, |
| | | { Value: 1600, Text: "16:00" }, |
| | | { Value: 2000, Text: "20:00" }, |
| | | { Value: 0, Text: "0:00" }, |
| | | { Value: 400, Text: "4:00" }, |
| | | { Value: 600, Text: "6:00" } |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | { Value: 800, Text: "8:00" }, |
| | | { Value: 2000, Text: "20:00" }, |
| | | { Value: 600, Text: "6:00" } |
| | | ] |
| | | } |
| | | }; |
| | | |
| | | return data |
| | | return data; |
| | | } else if (key === "IPE_G_2") { |
| | | // ID=0 08:50-07:00 |
| | | var data = { |
| | | Name: "08:50-07:00", |
| | | Data: [ |
| | | { Start: 850, End: 2359 }, |
| | | { Start: 0, End: 700 } |
| | | ], |
| | | Coordinate: { |
| | | // 完整模式 |
| | | Full: [ |
| | | { Value: 900, Text: "9:00" }, |
| | | { Value: 1100, Text: "11:00" }, |
| | | { Value: 1300, Text: "13:00" }, |
| | | { Value: 1500, Text: "15:00" }, |
| | | { Value: 1700, Text: "17:00" }, |
| | | { Value: 1900, Text: "19:00" }, |
| | | { Value: 2100, Text: "21:00" }, |
| | | { Value: 2300, Text: "23:00" }, |
| | | { Value: 1, Text: "1:00" }, |
| | | { Value: 300, Text: "3:00" }, |
| | | { Value: 500, Text: "5:00" }, |
| | | { Value: 700, Text: "7:00" } |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | { Value: 900, Text: "9:00" }, |
| | | { Value: 1300, Text: "13:00" }, |
| | | { Value: 1700, Text: "17:00" }, |
| | | { Value: 2100, Text: "21:00" }, |
| | | { Value: 1, Text: "1:00" }, |
| | | { Value: 500, Text: "5:00" }, |
| | | { Value: 700, Text: "7:00" } |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | { Value: 900, Text: "9:00" }, |
| | | { Value: 2100, Text: "21:00" }, |
| | | { Value: 700, Text: "7:00" } |
| | | ] |
| | | } |
| | | }; |
| | | |
| | | return data; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | /// ///////////////////////////////////////////////////////////////////////// |
| | | // 美股走势图X轴坐标 |
| | | // |
| | | /// ///////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateUSAData = function (minuteStringData) { |
| | | const TIME_SPLIT = |
| | | [ |
| | | { Start: 2130, End: 2359 }, |
| | | { Start: 0, End: 400 } |
| | | ] |
| | | HQData.CreateUSAData = function(minuteStringData) { |
| | | const TIME_SPLIT = [ |
| | | { Start: 2130, End: 2359 }, |
| | | { Start: 0, End: 400 } |
| | | ]; |
| | | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT) |
| | | } |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetUSAData = function (upperSymbol, width) { |
| | | const SHZE_MINUTE_X_COORDINATE = |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | [0, 0, 'rgb(200,200,200)', '21:30'], |
| | | [30, 1, 'RGB(200,200,200)', '22:00'], |
| | | [60, 0, 'RGB(200,200,200)', '22:30'], |
| | | [90, 1, 'RGB(200,200,200)', '23:00'], |
| | | [120, 0, 'RGB(200,200,200)', '23:30'], |
| | | [150, 1, 'RGB(200,200,200)', '00:00'], |
| | | [180, 0, 'RGB(200,200,200)', '00:30'], |
| | | [210, 1, 'RGB(200,200,200)', '01:00'], |
| | | [240, 0, 'RGB(200,200,200)', '01:30'], |
| | | [270, 1, 'RGB(200,200,200)', '02:00'], |
| | | [300, 0, 'RGB(200,200,200)', '02:30'], |
| | | [330, 1, 'RGB(200,200,200)', '03:00'], |
| | | [360, 0, 'RGB(200,200,200)', '03:30'], |
| | | [390, 1, 'RGB(200,200,200)', '04:00'] |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | [0, 0, 'rgb(200,200,200)', '21:30'], |
| | | [90, 1, 'RGB(200,200,200)', '23:00'], |
| | | [150, 1, 'RGB(200,200,200)', '00:00'], |
| | | [270, 1, 'RGB(200,200,200)', '02:00'], |
| | | [390, 1, 'RGB(200,200,200)', '04:00'] |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | [0, 0, 'rgb(200,200,200)', '21:30'], |
| | | [210, 1, 'RGB(200,200,200)', '01:00'], |
| | | [390, 1, 'RGB(200,200,200)', '04:00'] |
| | | ], |
| | | HQData.GetUSAData = function(upperSymbol, width) { |
| | | const SHZE_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | | [0, 0, "rgb(200,200,200)", "21:30"], |
| | | [30, 1, "RGB(200,200,200)", "22:00"], |
| | | [60, 0, "RGB(200,200,200)", "22:30"], |
| | | [90, 1, "RGB(200,200,200)", "23:00"], |
| | | [120, 0, "RGB(200,200,200)", "23:30"], |
| | | [150, 1, "RGB(200,200,200)", "00:00"], |
| | | [180, 0, "RGB(200,200,200)", "00:30"], |
| | | [210, 1, "RGB(200,200,200)", "01:00"], |
| | | [240, 0, "RGB(200,200,200)", "01:30"], |
| | | [270, 1, "RGB(200,200,200)", "02:00"], |
| | | [300, 0, "RGB(200,200,200)", "02:30"], |
| | | [330, 1, "RGB(200,200,200)", "03:00"], |
| | | [360, 0, "RGB(200,200,200)", "03:30"], |
| | | [390, 1, "RGB(200,200,200)", "04:00"] |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | [0, 0, "rgb(200,200,200)", "21:30"], |
| | | [90, 1, "RGB(200,200,200)", "23:00"], |
| | | [150, 1, "RGB(200,200,200)", "00:00"], |
| | | [270, 1, "RGB(200,200,200)", "02:00"], |
| | | [390, 1, "RGB(200,200,200)", "04:00"] |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | [0, 0, "rgb(200,200,200)", "21:30"], |
| | | [210, 1, "RGB(200,200,200)", "01:00"], |
| | | [390, 1, "RGB(200,200,200)", "04:00"] |
| | | ], |
| | | |
| | | Count: 391, //! ! 一共的分钟数据个数,不要填错了 |
| | | MiddleCount: 195, // Count/2 就可以。 |
| | | Count: 391, //! ! 一共的分钟数据个数,不要填错了 |
| | | MiddleCount: 195, // Count/2 就可以。 |
| | | |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min |
| | | else if (width < 400) return this.Simple |
| | | GetData: function(width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 400) return this.Simple; |
| | | |
| | | return this.Full |
| | | } |
| | | return this.Full; |
| | | } |
| | | }; |
| | | |
| | | return SHZE_MINUTE_X_COORDINATE |
| | | } |
| | | return SHZE_MINUTE_X_COORDINATE; |
| | | }; |
| | | |
| | | /// ///////////////////////////////////////////////////////////////////////// |
| | | // A股走势图X轴坐标 |
| | | // |
| | | /// //////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateSHSZData = function (minuteStringData) { |
| | | const TIME_SPLIT = |
| | | [ |
| | | { Start: 930, End: 1130 }, |
| | | { Start: 1301, End: 1500 } |
| | | ] |
| | | HQData.CreateSHSZData = function(minuteStringData) { |
| | | const TIME_SPLIT = [ |
| | | { Start: 930, End: 1130 }, |
| | | { Start: 1301, End: 1500 } |
| | | ]; |
| | | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT) |
| | | } |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetSHSZData = function (upperSymbol, width) { |
| | | const SHZE_MINUTE_X_COORDINATE = |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | [0, 0, 'rgb(200,200,200)', '09:30'], |
| | | [31, 0, 'RGB(200,200,200)', '10:00'], |
| | | [61, 0, 'RGB(200,200,200)', '10:30'], |
| | | [91, 0, 'RGB(200,200,200)', '11:00'], |
| | | [120, 1, 'RGB(200,200,200)', '11:30'], |
| | | [150, 0, 'RGB(200,200,200)', '13:30'], |
| | | [180, 0, 'RGB(200,200,200)', '14:00'], |
| | | [210, 0, 'RGB(200,200,200)', '14:30'], |
| | | [240, 1, 'RGB(200,200,200)', '15:00'] // 15:00 |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | [0, 0, 'rgb(200,200,200)', '09:30'], |
| | | [61, 0, 'RGB(200,200,200)', '10:30'], |
| | | [120, 1, 'RGB(200,200,200)', '11:30'], |
| | | [180, 0, 'RGB(200,200,200)', '14:00'], |
| | | [240, 1, 'RGB(200,200,200)', '15:00'] |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | [0, 0, 'rgb(200,200,200)', '09:30'], |
| | | [120, 1, 'RGB(200,200,200)', '11:30'], |
| | | [240, 1, 'RGB(200,200,200)', '15:00'] |
| | | ], |
| | | HQData.GetSHSZData = function(upperSymbol, width) { |
| | | const SHZE_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | | [0, 0, "rgb(200,200,200)", "09:30"], |
| | | [31, 0, "RGB(200,200,200)", "10:00"], |
| | | [61, 0, "RGB(200,200,200)", "10:30"], |
| | | [91, 0, "RGB(200,200,200)", "11:00"], |
| | | [120, 1, "RGB(200,200,200)", "11:30"], |
| | | [150, 0, "RGB(200,200,200)", "13:30"], |
| | | [180, 0, "RGB(200,200,200)", "14:00"], |
| | | [210, 0, "RGB(200,200,200)", "14:30"], |
| | | [240, 1, "RGB(200,200,200)", "15:00"] // 15:00 |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | [0, 0, "rgb(200,200,200)", "09:30"], |
| | | [61, 0, "RGB(200,200,200)", "10:30"], |
| | | [120, 1, "RGB(200,200,200)", "11:30"], |
| | | [180, 0, "RGB(200,200,200)", "14:00"], |
| | | [240, 1, "RGB(200,200,200)", "15:00"] |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | [0, 0, "rgb(200,200,200)", "09:30"], |
| | | [120, 1, "RGB(200,200,200)", "11:30"], |
| | | [240, 1, "RGB(200,200,200)", "15:00"] |
| | | ], |
| | | |
| | | Count: 241, //! ! 一共的分钟数据个数,不要填错了 |
| | | MiddleCount: 121, // Count/2 就可以。 |
| | | Count: 241, //! ! 一共的分钟数据个数,不要填错了 |
| | | MiddleCount: 121, // Count/2 就可以。 |
| | | |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min |
| | | else if (width < 400) return this.Simple |
| | | GetData: function(width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 400) return this.Simple; |
| | | |
| | | return this.Full |
| | | } |
| | | return this.Full; |
| | | } |
| | | }; |
| | | |
| | | return SHZE_MINUTE_X_COORDINATE |
| | | } |
| | | return SHZE_MINUTE_X_COORDINATE; |
| | | }; |
| | | |
| | | /// //////////////////////////////////////////////////////////////////////////////////// |
| | | // 港股走势图X轴坐标 |
| | | // |
| | | /// //////////////////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateHKData = function (minuteStringData) { |
| | | const TIME_SPLIT = |
| | | [ |
| | | { Start: 930, End: 1200 }, |
| | | { Start: 1301, End: 1600 } |
| | | ] |
| | | HQData.CreateHKData = function(minuteStringData) { |
| | | const TIME_SPLIT = [ |
| | | { Start: 930, End: 1200 }, |
| | | { Start: 1301, End: 1600 } |
| | | ]; |
| | | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT) |
| | | } |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetHKData = function (upperSymbol, width) { |
| | | const HK_MINUTE_X_COORDINATE = |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '09:30'], |
| | | [30, 0, 'RGB(200,200,200)', '10:00'], |
| | | [60, 1, 'RGB(200,200,200)', '10:30'], |
| | | [90, 0, 'RGB(200,200,200)', '11:00'], |
| | | [120, 1, 'RGB(200,200,200)', '11:30'], |
| | | [151, 0, 'RGB(200,200,200)', '13:00'], |
| | | [181, 1, 'RGB(200,200,200)', '13:30'], |
| | | [211, 0, 'RGB(200,200,200)', '14:00'], |
| | | [241, 1, 'RGB(200,200,200)', '14:30'], |
| | | [271, 0, 'RGB(200,200,200)', '15:00'], |
| | | [301, 1, 'RGB(200,200,200)', '15:30'], |
| | | [331, 1, 'RGB(200,200,200)', '16:00'] |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '09:30'], |
| | | [60, 1, 'RGB(200,200,200)', '10:30'], |
| | | [120, 1, 'RGB(200,200,200)', '11:30'], |
| | | [211, 0, 'RGB(200,200,200)', '14:00'], |
| | | [271, 0, 'RGB(200,200,200)', '15:00'], |
| | | [331, 1, 'RGB(200,200,200)', '16:00'] |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '09:30'], |
| | | [151, 0, 'RGB(200,200,200)', '13:00'], |
| | | [331, 1, 'RGB(200,200,200)', '16:00'] |
| | | ], |
| | | HQData.GetHKData = function(upperSymbol, width) { |
| | | const HK_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | | [0, 1, "RGB(200,200,200)", "09:30"], |
| | | [30, 0, "RGB(200,200,200)", "10:00"], |
| | | [60, 1, "RGB(200,200,200)", "10:30"], |
| | | [90, 0, "RGB(200,200,200)", "11:00"], |
| | | [120, 1, "RGB(200,200,200)", "11:30"], |
| | | [151, 0, "RGB(200,200,200)", "13:00"], |
| | | [181, 1, "RGB(200,200,200)", "13:30"], |
| | | [211, 0, "RGB(200,200,200)", "14:00"], |
| | | [241, 1, "RGB(200,200,200)", "14:30"], |
| | | [271, 0, "RGB(200,200,200)", "15:00"], |
| | | [301, 1, "RGB(200,200,200)", "15:30"], |
| | | [331, 1, "RGB(200,200,200)", "16:00"] |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | [0, 1, "RGB(200,200,200)", "09:30"], |
| | | [60, 1, "RGB(200,200,200)", "10:30"], |
| | | [120, 1, "RGB(200,200,200)", "11:30"], |
| | | [211, 0, "RGB(200,200,200)", "14:00"], |
| | | [271, 0, "RGB(200,200,200)", "15:00"], |
| | | [331, 1, "RGB(200,200,200)", "16:00"] |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | [0, 1, "RGB(200,200,200)", "09:30"], |
| | | [151, 0, "RGB(200,200,200)", "13:00"], |
| | | [331, 1, "RGB(200,200,200)", "16:00"] |
| | | ], |
| | | |
| | | Count: 331, |
| | | MiddleCount: 150, |
| | | Count: 331, |
| | | MiddleCount: 150, |
| | | |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min |
| | | else if (width < 450) return this.Simple |
| | | GetData: function(width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 450) return this.Simple; |
| | | |
| | | return this.Full |
| | | } |
| | | return this.Full; |
| | | } |
| | | return HK_MINUTE_X_COORDINATE |
| | | } |
| | | }; |
| | | return HK_MINUTE_X_COORDINATE; |
| | | }; |
| | | |
| | | /// ///////////////////////////////////////////////////////////////////////////////////// |
| | | // 外汇走势图X轴坐标 |
| | | // |
| | | /// ///////////////////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateForeignExchangeData = function (minuteStringData) { |
| | | HQData.CreateForeignExchangeData = function(minuteStringData) { |
| | | // 外汇 5:00 - 4:59 |
| | | const TIME_SPLIT = |
| | | [ |
| | | { Start: 500, End: 2359 }, |
| | | { Start: 0, End: 459 } |
| | | ] |
| | | const TIME_SPLIT = [ |
| | | { Start: 500, End: 2359 }, |
| | | { Start: 0, End: 459 } |
| | | ]; |
| | | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT) |
| | | } |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetForeignExchangeData = function (upperSymbol, width) { |
| | | const FOREX_MINUTE_X_COORDINATE = |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '05:00'], |
| | | [120, 1, 'RGB(200,200,200)', '07:00'], |
| | | [240, 1, 'RGB(200,200,200)', '09:00'], |
| | | [360, 1, 'RGB(200,200,200)', '11:00'], |
| | | [480, 0, 'RGB(200,200,200)', '13:00'], |
| | | [600, 1, 'RGB(200,200,200)', '15:00'], |
| | | [720, 1, 'RGB(200,200,200)', '17:00'], |
| | | [840, 1, 'RGB(200,200,200)', '19:00'], |
| | | [960, 1, 'RGB(200,200,200)', '21:00'], |
| | | [1080, 1, 'RGB(200,200,200)', '23:00'], |
| | | [1200, 1, 'RGB(200,200,200)', '01:00'], |
| | | [1320, 1, 'RGB(200,200,200)', '03:00'], |
| | | [1439, 1, 'RGB(200,200,200)', '04:59'] |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '06:00'], |
| | | [240, 1, 'RGB(200,200,200)', '10:00'], |
| | | [480, 0, 'RGB(200,200,200)', '14:00'], |
| | | [720, 1, 'RGB(200,200,200)', '18:00'], |
| | | [960, 1, 'RGB(200,200,200)', '22:00'], |
| | | [1200, 1, 'RGB(200,200,200)', '02:00'] |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '06:00'], |
| | | [480, 0, 'RGB(200,200,200)', '14:00'], |
| | | [960, 1, 'RGB(200,200,200)', '22:00'] |
| | | ], |
| | | HQData.GetForeignExchangeData = function(upperSymbol, width) { |
| | | const FOREX_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | | [0, 1, "RGB(200,200,200)", "05:00"], |
| | | [120, 1, "RGB(200,200,200)", "07:00"], |
| | | [240, 1, "RGB(200,200,200)", "09:00"], |
| | | [360, 1, "RGB(200,200,200)", "11:00"], |
| | | [480, 0, "RGB(200,200,200)", "13:00"], |
| | | [600, 1, "RGB(200,200,200)", "15:00"], |
| | | [720, 1, "RGB(200,200,200)", "17:00"], |
| | | [840, 1, "RGB(200,200,200)", "19:00"], |
| | | [960, 1, "RGB(200,200,200)", "21:00"], |
| | | [1080, 1, "RGB(200,200,200)", "23:00"], |
| | | [1200, 1, "RGB(200,200,200)", "01:00"], |
| | | [1320, 1, "RGB(200,200,200)", "03:00"], |
| | | [1439, 1, "RGB(200,200,200)", "04:59"] |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | [0, 1, "RGB(200,200,200)", "06:00"], |
| | | [240, 1, "RGB(200,200,200)", "10:00"], |
| | | [480, 0, "RGB(200,200,200)", "14:00"], |
| | | [720, 1, "RGB(200,200,200)", "18:00"], |
| | | [960, 1, "RGB(200,200,200)", "22:00"], |
| | | [1200, 1, "RGB(200,200,200)", "02:00"] |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | [0, 1, "RGB(200,200,200)", "06:00"], |
| | | [480, 0, "RGB(200,200,200)", "14:00"], |
| | | [960, 1, "RGB(200,200,200)", "22:00"] |
| | | ], |
| | | |
| | | Count: 1440, |
| | | MiddleCount: 600, |
| | | Count: 1440, |
| | | MiddleCount: 600, |
| | | |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min |
| | | else if (width < 450) return this.Simple |
| | | GetData: function(width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 450) return this.Simple; |
| | | |
| | | return this.Full |
| | | } |
| | | return this.Full; |
| | | } |
| | | }; |
| | | |
| | | return FOREX_MINUTE_X_COORDINATE |
| | | } |
| | | return FOREX_MINUTE_X_COORDINATE; |
| | | }; |
| | | |
| | | /// ///////////////////////////////////////////////////////////////////// |
| | | // 美元指数 |
| | | // |
| | | /// //////////////////////////////////////////////////////////////////// |
| | | HQData.GetETTimeData = function (upperSymbol, minuteStringData) { |
| | | if (upperSymbol === 'UDI_100.ET') { |
| | | HQData.GetETTimeData = function(upperSymbol, minuteStringData) { |
| | | if (upperSymbol === "UDI_100.ET") { |
| | | // 美元指数 6:00 - 5:59 |
| | | const TIME_SPLIT = |
| | | [ |
| | | { Start: 600, End: 2359 }, |
| | | { Start: 0, End: 559 } |
| | | ] |
| | | const TIME_SPLIT = [ |
| | | { Start: 600, End: 2359 }, |
| | | { Start: 0, End: 559 } |
| | | ]; |
| | | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT) |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.GetETData = function (upperSymbol) { |
| | | if (upperSymbol === 'UDI_100.ET') { |
| | | const data = |
| | | { |
| | | Full: // 完整模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '06:00'], |
| | | [120, 1, 'RGB(200,200,200)', '08:00'], |
| | | [240, 1, 'RGB(200,200,200)', '10:00'], |
| | | [360, 1, 'RGB(200,200,200)', '12:00'], |
| | | [480, 0, 'RGB(200,200,200)', '14:00'], |
| | | [600, 1, 'RGB(200,200,200)', '16:00'], |
| | | [720, 1, 'RGB(200,200,200)', '18:00'], |
| | | [840, 1, 'RGB(200,200,200)', '20:00'], |
| | | [960, 1, 'RGB(200,200,200)', '22:00'], |
| | | [1080, 1, 'RGB(200,200,200)', '0:00'], |
| | | [1200, 1, 'RGB(200,200,200)', '02:00'], |
| | | [1320, 1, 'RGB(200,200,200)', '04:00'], |
| | | [1439, 1, 'RGB(200,200,200)', '05:59'] |
| | | ], |
| | | Simple: // 简洁模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '06:00'], |
| | | [240, 1, 'RGB(200,200,200)', '10:00'], |
| | | [480, 0, 'RGB(200,200,200)', '14:00'], |
| | | [720, 1, 'RGB(200,200,200)', '18:00'], |
| | | [960, 1, 'RGB(200,200,200)', '22:00'], |
| | | [1200, 1, 'RGB(200,200,200)', '02:00'], |
| | | [1439, 1, 'RGB(200,200,200)', '05:59'] |
| | | ], |
| | | Min: // 最小模式 |
| | | [ |
| | | [0, 1, 'RGB(200,200,200)', '06:00'], |
| | | [720, 1, 'RGB(200,200,200)', '18:00'], |
| | | [1439, 1, 'RGB(200,200,200)', '05:59'] |
| | | ], |
| | | HQData.GetETData = function(upperSymbol) { |
| | | if (upperSymbol === "UDI_100.ET") { |
| | | const data = { |
| | | // 完整模式 |
| | | Full: [ |
| | | [0, 1, "RGB(200,200,200)", "06:00"], |
| | | [120, 1, "RGB(200,200,200)", "08:00"], |
| | | [240, 1, "RGB(200,200,200)", "10:00"], |
| | | [360, 1, "RGB(200,200,200)", "12:00"], |
| | | [480, 0, "RGB(200,200,200)", "14:00"], |
| | | [600, 1, "RGB(200,200,200)", "16:00"], |
| | | [720, 1, "RGB(200,200,200)", "18:00"], |
| | | [840, 1, "RGB(200,200,200)", "20:00"], |
| | | [960, 1, "RGB(200,200,200)", "22:00"], |
| | | [1080, 1, "RGB(200,200,200)", "0:00"], |
| | | [1200, 1, "RGB(200,200,200)", "02:00"], |
| | | [1320, 1, "RGB(200,200,200)", "04:00"], |
| | | [1439, 1, "RGB(200,200,200)", "05:59"] |
| | | ], |
| | | // 简洁模式 |
| | | Simple: [ |
| | | [0, 1, "RGB(200,200,200)", "06:00"], |
| | | [240, 1, "RGB(200,200,200)", "10:00"], |
| | | [480, 0, "RGB(200,200,200)", "14:00"], |
| | | [720, 1, "RGB(200,200,200)", "18:00"], |
| | | [960, 1, "RGB(200,200,200)", "22:00"], |
| | | [1200, 1, "RGB(200,200,200)", "02:00"], |
| | | [1439, 1, "RGB(200,200,200)", "05:59"] |
| | | ], |
| | | // 最小模式 |
| | | Min: [ |
| | | [0, 1, "RGB(200,200,200)", "06:00"], |
| | | [720, 1, "RGB(200,200,200)", "18:00"], |
| | | [1439, 1, "RGB(200,200,200)", "05:59"] |
| | | ], |
| | | |
| | | Count: 1440, |
| | | MiddleCount: 600, |
| | | Count: 1440, |
| | | MiddleCount: 600, |
| | | |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min |
| | | else if (width < 450) return this.Simple |
| | | GetData: function(width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 450) return this.Simple; |
| | | |
| | | return this.Full |
| | | } |
| | | } |
| | | return this.Full; |
| | | } |
| | | }; |
| | | |
| | | return data |
| | | return data; |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.GetETDecimal = function (symbol) { |
| | | var upperSymbol = symbol.toUpperCase() |
| | | if (upperSymbol === 'UDI_100.ET') return 2 |
| | | HQData.GetETDecimal = function(symbol) { |
| | | var upperSymbol = symbol.toUpperCase(); |
| | | if (upperSymbol === "UDI_100.ET") return 2; |
| | | |
| | | return 2 |
| | | } |
| | | return 2; |
| | | }; |
| | | |
| | | /// //////////////////////////////////////////////////////////////////////////////// |
| | | // K线数据对接 |
| | | // |
| | | /// ////////////////////////////////////////////////////////////////////////////// |
| | | HQData.GetKLineApiUrl = function (symbol, period, right, option) { |
| | | console.log(111111, symbol, period, right, option) |
| | | HQData.GetKLineApiUrl = function(symbol, period, right, option) { |
| | | console.log(111111, symbol, period, right, option); |
| | | // https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=0&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=0.300059&klt=101&fqt=0 |
| | | |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol) |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol); |
| | | // console.log(internalSymbol,'caonima'); |
| | | // if (!internalSymbol.Market) { |
| | | // internalSymbol.Market = '106' |
| | |
| | | |
| | | // var internalPeriod = HQData.GetInternalPeriod(period) |
| | | // var internalRight = HQData.GetInternalRight(right) |
| | | const kLines = JSON.parse(window.localStorage.getItem('kLine')) |
| | | if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | const interval = ['D', 'W', 'M'][period] |
| | | var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}` |
| | | } |
| | | const interval2 = [1440, 10080, 10080][period] |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | // if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | const interval = ["D", "W", "M"][period]; |
| | | var url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`; |
| | | // } |
| | | const interval2 = [1440, 10080, 10080][period]; |
| | | // const interval2 = [1440, 10080, 43200][period] |
| | | if (kLines.type === 'qh') { |
| | | // var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}` |
| | | url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${interval2}&stockType=${kLines.type}` |
| | | } |
| | | // if (kLines.type === 'qh') { |
| | | // var url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}` |
| | | // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${interval2}&stockType=${kLines.type}` |
| | | // } |
| | | if (option && option.Update === true) { |
| | | var beginDate = option.End |
| | | console.log('这是', beginDate) |
| | | var beginDate = option.End; |
| | | console.log("这是", beginDate); |
| | | // var url = `http://api.mifeng.ws/api/futures/kline?time=1&period=day&symbol=FCPO&type=1` |
| | | // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}` |
| | | } else { |
| | |
| | | // var url = `http://api-in.js-stock.top/kline?interval=D&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}` |
| | | } |
| | | |
| | | return { Url: url, Symbol: symbol, InternalSymbol: internalSymbol, Period: period, Right: right } |
| | | } |
| | | return { |
| | | Url: url, |
| | | Symbol: symbol, |
| | | InternalSymbol: internalSymbol, |
| | | Period: period, |
| | | Right: right |
| | | }; |
| | | }; |
| | | |
| | | HQData.GetMinuteKLineApiUrl = function (symbol, period, right, option) { |
| | | HQData.GetMinuteKLineApiUrl = function(symbol, period, right, option) { |
| | | // https://push2his.eastmoney.com/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=0&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=0.300059&klt=101&fqt=0 |
| | | |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol) |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol); |
| | | // console.log(internalSymbol,'caonima'); |
| | | var internalPeriod = HQData.GetInternalPeriod(period) |
| | | var internalRight = HQData.GetInternalRight(right) |
| | | console.log(internalPeriod) |
| | | var url = '' |
| | | var internalPeriod = HQData.GetInternalPeriod(period); |
| | | var internalRight = HQData.GetInternalRight(right); |
| | | console.log(internalPeriod); |
| | | var url = ""; |
| | | if (option && option.Update === true) { |
| | | var beginDate = option.End |
| | | var beginDate = option.End; |
| | | // url = `https://kline.mitrade.cc11/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=${beginDate}&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}` |
| | | // var url = `https://kline.mitrade.cc11/api/qt/stock/kline/get?fields1=f1,f2,f3,f4,f5,f6,f7,f8,f9,f10,f11,f12,f13&fields2=f51,f52,f53,f54,f55,f56,f57,f58,f59,f60,f61&beg=${beginDate}&end=20500101&ut=fa5fd1943c7b386f172d6893dbfba10b&rtntype=6&secid=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}` |
| | | } else { |
| | | // var url = `http://api-in.js-stock.top/kline?interval=${internalPeriod}&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}` |
| | | // url = `http://api-in.js-stock.top/kline?interval=${internalPeriod}&key=nvmihAoT51LnAWCpDeuw&pid=${internalSymbol.Symbol}` |
| | | const kLines = JSON.parse(window.localStorage.getItem('kLine')) |
| | | if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | url = window.globalVar+`api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}` |
| | | } |
| | | if (kLines.type === 'qh') { |
| | | const internalPe = internalPeriod === 1 ? 5 : internalPeriod |
| | | url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${internalPe}&stockType=${kLines.type}` |
| | | // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${internalPe}&key=jssj2023key` |
| | | } |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | // if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`; |
| | | // } |
| | | // if (kLines.type === 'qh') { |
| | | // const internalPe = internalPeriod === 1 ? 5 : internalPeriod |
| | | // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${internalPe}&stockType=${kLines.type}` |
| | | // url = window.globalVar+`api/stock/getKData.do?symbol=${encodeURIComponent(kLines.pid)}&cmd=history&period=${internalPe}&key=jssj2023key` |
| | | // } |
| | | } |
| | | |
| | | return { Url: url, Symbol: symbol, InternalSymbol: internalSymbol, Period: period, Right: right } |
| | | } |
| | | return { |
| | | Url: url, |
| | | Symbol: symbol, |
| | | InternalSymbol: internalSymbol, |
| | | Period: period, |
| | | Right: right |
| | | }; |
| | | }; |
| | | |
| | | HQData.GetInternalPeriod = function (periodID) { |
| | | var MAP_PERIOD = new Map( |
| | | [ |
| | | [0, 101], // day |
| | | [1, 102], // week |
| | | [2, 103], // month |
| | | HQData.GetInternalPeriod = function(periodID) { |
| | | var MAP_PERIOD = new Map([ |
| | | [0, 101], // day |
| | | [1, 102], // week |
| | | [2, 103], // month |
| | | |
| | | [4, 1], // 1min |
| | | [5, 5], // 5min |
| | | [6, 15], // 15min |
| | | [7, 30], // 30min |
| | | [8, 60] // 60min |
| | | ] |
| | | ) |
| | | [4, 1], // 1min |
| | | [5, 5], // 5min |
| | | [6, 15], // 15min |
| | | [7, 30], // 30min |
| | | [8, 60] // 60min |
| | | ]); |
| | | |
| | | return MAP_PERIOD.get(periodID) |
| | | } |
| | | return MAP_PERIOD.get(periodID); |
| | | }; |
| | | |
| | | HQData.GetInternalRight = function (right) { |
| | | if (right === 0) return 0 |
| | | else if (right === 1) return 1 |
| | | else return 2 |
| | | } |
| | | HQData.GetInternalRight = function(right) { |
| | | if (right === 0) return 0; |
| | | else if (right === 1) return 1; |
| | | else return 2; |
| | | }; |
| | | // 是否支持复权 |
| | | HQData.IsEnableRight = function (period, symbol) { |
| | | var symbolUpper = null |
| | | symbolUpper = symbol.toUpperCase() |
| | | HQData.IsEnableRight = function(period, symbol) { |
| | | var symbolUpper = null; |
| | | symbolUpper = symbol.toUpperCase(); |
| | | // var symbolUpper = symbol.toUpperCase() |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZStockA(symbolUpper)) return true |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZStockA(symbolUpper)) return true; |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true; |
| | | |
| | | var aryData = symbol.split('.') |
| | | symbolUpper = symbol.toUpperCase() |
| | | var aryData = symbol.split("."); |
| | | symbolUpper = symbol.toUpperCase(); |
| | | // var symbolUpper = symbol.toUpperCase() |
| | | var arySymbol = aryData[0].split('_') |
| | | var market = parseInt(arySymbol[1]) |
| | | var arySymbol = aryData[0].split("_"); |
| | | var market = parseInt(arySymbol[1]); |
| | | |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsHK(symbolUpper)) { |
| | | if (market === 100) return false // 指数不支持复权 |
| | | return true |
| | | if (market === 100) return false; // 指数不支持复权 |
| | | return true; |
| | | } |
| | | |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper)) { |
| | | if (market === 100) return false // 指数不支持复权 |
| | | return true |
| | | if (market === 100) return false; // 指数不支持复权 |
| | | return true; |
| | | } |
| | | |
| | | return false |
| | | } |
| | | return false; |
| | | }; |
| | | |
| | | HQData.RequestFlowCapitalData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | var hqChartData = {code: 0, stock: []} // 如果没有数据就填空 |
| | | HQData.RequestFlowCapitalData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | var hqChartData = { code: 0, stock: [] }; // 如果没有数据就填空 |
| | | |
| | | if (data.Self.IsDestroy === false) { |
| | | callback(hqChartData) |
| | | callback(hqChartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestHistoryData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | var symbol = data.Request.Data.symbol // 请求的股票代码 |
| | | var period = data.Self.Period // 周期 |
| | | var right = data.Self.Right // 复权 |
| | | HQData.RequestHistoryData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | |
| | | console.log(`[HQData::RequestHistoryData] Symbol=${symbol}`) |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, null) |
| | | console.log(`[HQData::RequestHistoryData] Symbol=${symbol}`); |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, null); |
| | | |
| | | $.ajax( |
| | | { |
| | | url: obj.Url, |
| | | type: 'GET', |
| | | success: function (recvData) { |
| | | HQData.RecvHistoryData(recvData, callback, { Data: data, Obj: obj }) |
| | | } |
| | | }) |
| | | } |
| | | |
| | | HQData.RecvHistoryData = function (recvData, callback, option) { |
| | | // var data = recvData.data |
| | | console.log(111111212121, recvData) |
| | | var hqChartData = {code: 0, data: []} |
| | | hqChartData.symbol = option.Obj.Symbol |
| | | // hqChartData.name = data.name |
| | | hqChartData.name = '123' |
| | | // console.log('data.name', data.name) |
| | | const kLines = JSON.parse(window.localStorage.getItem('kLine')) |
| | | // var yClose = data.preKPrice |
| | | var yClose = '500' |
| | | recvData = JSON.parse(recvData) |
| | | if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | for (var i = 0; i < recvData.length; ++i) { |
| | | var strItem = recvData[i] |
| | | // var item = strItem.split(',') |
| | | // var today = new Date(strItem.t) |
| | | // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var date = moment.unix(strItem.t).format('YYYYMMDD') |
| | | // |
| | | var open = parseFloat(strItem.o) |
| | | var close = parseFloat(strItem.c) |
| | | var high = parseFloat(strItem.h) |
| | | var low = parseFloat(strItem.l) |
| | | var vol = parseFloat(strItem.v) * 100 |
| | | var amount = parseFloat((Math.random() * 100) + '') |
| | | // |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount] |
| | | hqChartData.data.push(newItem) |
| | | // |
| | | yClose = close |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | HQData.RecvHistoryData(recvData, callback, { Data: data, Obj: obj }); |
| | | } |
| | | } |
| | | if (kLines.type === 'qh') { |
| | | console.log('recvData====', recvData) |
| | | for (var x = 0; x < recvData.list.length; ++x) { |
| | | var strItem2 = recvData.list[x] |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvHistoryData = function(recvData, callback, option) { |
| | | // var data = recvData.data |
| | | |
| | | var hqChartData = { code: 0, data: [] }; |
| | | hqChartData.symbol = option.Obj.Symbol; |
| | | // hqChartData.name = data.name |
| | | hqChartData.name = "123"; |
| | | // console.log('data.name', data.name) |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | // var yClose = data.preKPrice |
| | | var yClose = "500"; |
| | | recvData = JSON.parse(recvData); |
| | | |
| | | if (kLines.type === "SZHB") { |
| | | recvData = recvData.data; |
| | | recvData.reverse(); |
| | | for (var i = 0; i < recvData.length; ++i) { |
| | | var strItem = recvData[i]; |
| | | // var item = strItem.split(',') |
| | | // var today = new Date(strItem.t) |
| | | // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var date2 = moment(strItem2.ctm).format('YYYYMMDD') |
| | | var date = moment.unix(strItem.id).format("YYYYMMDD"); |
| | | // |
| | | var open2 = parseFloat(strItem2.open) |
| | | var close2 = parseFloat(strItem2.close) |
| | | var high2 = parseFloat(strItem2.high) |
| | | var low2 = parseFloat(strItem2.low) |
| | | var vol2 = 100 |
| | | // var vol2 = parseFloat(strItem2.v) * 100 |
| | | var amount2 = parseFloat((Math.random() * 100) + '') |
| | | var open = parseFloat(strItem.open); |
| | | var close = parseFloat(strItem.close); |
| | | var high = parseFloat(strItem.high); |
| | | var low = parseFloat(strItem.low); |
| | | var vol = parseFloat(strItem.vol) * 100; |
| | | var amount = parseFloat(Math.random() * 100 + ""); |
| | | // |
| | | var newItem2 = [date2, yClose, open2, high2, low2, close2, vol2, amount2] |
| | | hqChartData.data.push(newItem2) |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount]; |
| | | |
| | | hqChartData.data.push(newItem); |
| | | // |
| | | yClose = close |
| | | yClose = close; |
| | | } |
| | | } else { |
| | | for (var i = 0; i < recvData.length; ++i) { |
| | | var strItem = recvData[i]; |
| | | strItem.t = strItem.t || strItem.id; |
| | | strItem.c = strItem.c || strItem.close; |
| | | strItem.h = strItem.h || strItem.high; |
| | | strItem.l = strItem.l || strItem.low; |
| | | strItem.v = strItem.v || strItem.vol; |
| | | // var item = strItem.split(',') |
| | | // var today = new Date(strItem.t) |
| | | // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var date = moment.unix(strItem.t).format("YYYYMMDD"); |
| | | // |
| | | var open = parseFloat(strItem.o); |
| | | var close = parseFloat(strItem.c); |
| | | var high = parseFloat(strItem.h); |
| | | var low = parseFloat(strItem.l); |
| | | var vol = parseFloat(strItem.v) * 100; |
| | | var amount = parseFloat(Math.random() * 100 + ""); |
| | | // |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount]; |
| | | |
| | | hqChartData.data.push(newItem); |
| | | // |
| | | yClose = close; |
| | | } |
| | | } |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvHistoryData] hqchartData ', hqChartData) |
| | | callback(hqChartData) |
| | | HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData); |
| | | callback(hqChartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestRealtimeData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | var symbol = data.Request.Data.symbol[0] // 请求的股票代码 |
| | | var period = data.Self.Period // 周期 |
| | | var right = data.Self.Right // 复权 |
| | | var dateRange = data.Self.ChartPaint[0].Data.GetDateRange() |
| | | HQData.RequestRealtimeData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | var dateRange = data.Self.ChartPaint[0].Data.GetDateRange(); |
| | | |
| | | var option = { Update: true } |
| | | if (dateRange && dateRange.End && dateRange.End.Date > 0) option.End = dateRange.End.Date |
| | | var option = { Update: true }; |
| | | if (dateRange && dateRange.End && dateRange.End.Date > 0) |
| | | option.End = dateRange.End.Date; |
| | | |
| | | console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`) |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, option) |
| | | console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`); |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, option); |
| | | |
| | | $.ajax( |
| | | { |
| | | url: obj.Url, |
| | | type: 'GET', |
| | | success: function (recvData) { |
| | | HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj }) |
| | | } |
| | | }) |
| | | } |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvRealtimeData = function (recvData, callback, option) { |
| | | var data = recvData.data |
| | | HQData.RecvRealtimeData = function(recvData, callback, option) { |
| | | var data = recvData.data; |
| | | // var stock = { symbol: option.Obj.Symbol, name: 'K线图' } |
| | | var stock = { symbol: option.Obj.Symbol, name: data.name || '' } |
| | | var stock = { symbol: option.Obj.Symbol, name: data.name || "" }; |
| | | // var yClose = data[0].c |
| | | // for (var i = 0; i < data.length; ++i) { |
| | | // var item = data[i] |
| | |
| | | |
| | | // yClose = close |
| | | // } |
| | | const kLines = JSON.parse(window.localStorage.getItem('kLine')) |
| | | var yClose = data.preKPrice |
| | | console.log('recvDatadata====', data) |
| | | if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | var yClose = data.preKPrice; |
| | | console.log("recvDatadata====", data); |
| | | if (kLines.type === "IN" || kLines.type === "US") { |
| | | for (var i = 0; i < data.klines.length; ++i) { |
| | | var strItem = data.klines[i] |
| | | var item = strItem.split(',') |
| | | var strItem = data.klines[i]; |
| | | var item = strItem.split(","); |
| | | // var today = new Date(Date.parse(item[0])) |
| | | // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var date = moment.unix(Date.parse(item[0])).format('YYYYMMDD') |
| | | var date = moment.unix(Date.parse(item[0])).format("YYYYMMDD"); |
| | | |
| | | var open = parseFloat(item[1]) |
| | | var close = parseFloat(item[2]) |
| | | var high = parseFloat(item[3]) |
| | | var low = parseFloat(item[4]) |
| | | var vol = parseFloat(item[5]) * 100 |
| | | var amount = parseFloat(item[6]) |
| | | var open = parseFloat(item[1]); |
| | | var close = parseFloat(item[2]); |
| | | var high = parseFloat(item[3]); |
| | | var low = parseFloat(item[4]); |
| | | var vol = parseFloat(item[5]) * 100; |
| | | var amount = parseFloat(item[6]); |
| | | |
| | | stock.yclose = yClose |
| | | stock.open = open |
| | | stock.high = high |
| | | stock.low = low |
| | | stock.price = close |
| | | stock.vol = vol |
| | | stock.amount = amount |
| | | stock.date = date |
| | | stock.yclose = yClose; |
| | | stock.open = open; |
| | | stock.high = high; |
| | | stock.low = low; |
| | | stock.price = close; |
| | | stock.vol = vol; |
| | | stock.amount = amount; |
| | | stock.date = date; |
| | | |
| | | yClose = close |
| | | yClose = close; |
| | | } |
| | | } |
| | | // if (kLines.type === 'qh') { |
| | |
| | | // } |
| | | // } |
| | | |
| | | var hqchartData = { code: 0, stock: [stock] } |
| | | var hqchartData = { code: 0, stock: [stock] }; |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvRealtimeData] hqchartData ', hqchartData) |
| | | callback(hqchartData) |
| | | HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData); |
| | | callback(hqchartData); |
| | | } |
| | | } |
| | | HQData.RequestHistoryMinuteData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | var symbol = data.Request.Data.symbol // 请求的股票代码 |
| | | var period = data.Self.Period // 周期 |
| | | var right = data.Self.Right // 复权 |
| | | }; |
| | | HQData.RequestHistoryMinuteData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | |
| | | console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`) |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null) |
| | | console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`); |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null); |
| | | |
| | | $.ajax( |
| | | { |
| | | url: obj.Url, |
| | | type: 'GET', |
| | | success: function (recvData) { |
| | | HQData.RecvHistoryMinuteData(recvData, callback, { Data: data, Obj: obj }) |
| | | } |
| | | }) |
| | | } |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | HQData.RecvHistoryMinuteData(recvData, callback, { |
| | | Data: data, |
| | | Obj: obj |
| | | }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvHistoryMinuteData = function (recvData, callback, option) { |
| | | var hqChartData = {code: 0, data: []} |
| | | hqChartData.symbol = option.Obj.Symbol |
| | | HQData.RecvHistoryMinuteData = function(recvData, callback, option) { |
| | | var hqChartData = { code: 0, data: [] }; |
| | | hqChartData.symbol = option.Obj.Symbol; |
| | | // hqChartData.name = data.name |
| | | const kLines = JSON.parse(window.localStorage.getItem('kLine')) |
| | | hqChartData.name = '123' |
| | | // console.log('data.name', data.name) |
| | | // |
| | | // var yClose = data.preKPrice |
| | | var yClose = '' |
| | | console.log('recvData===data.name22', recvData) |
| | | recvData = JSON.parse(recvData) |
| | | if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | hqChartData.name = "123"; |
| | | |
| | | var yClose = ""; |
| | | console.log("recvData===data.name22", recvData, kLines); |
| | | recvData = JSON.parse(recvData); |
| | | |
| | | if (kLines.type === "SZHB") { |
| | | recvData = recvData.data; |
| | | recvData.reverse(); |
| | | for (var i = 0; i < recvData.length; ++i) { |
| | | var strItem = recvData[i] |
| | | var strItem = recvData[i]; |
| | | // var item = strItem.split(',') |
| | | // var today = new Date(strItem.t) |
| | | // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var date = moment.unix(strItem.t).format('YYYYMMDD') |
| | | var open = parseFloat(strItem.o) |
| | | var close = parseFloat(strItem.c) |
| | | var high = parseFloat(strItem.h) |
| | | var low = parseFloat(strItem.l) |
| | | var vol = parseFloat(strItem.v) * 100 |
| | | var amount = parseFloat((Math.random() * 100) + '') |
| | | var date = moment.unix(strItem.id).format("YYYYMMDD"); |
| | | var time = moment.unix(strItem.id).format("HHmm"); |
| | | var open = parseFloat(strItem.open); |
| | | var close = parseFloat(strItem.close); |
| | | var high = parseFloat(strItem.high); |
| | | var low = parseFloat(strItem.low); |
| | | var vol = parseFloat(strItem.vol) * 100; |
| | | var amount = parseFloat(Math.random() * 100 + ""); |
| | | // |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount] |
| | | hqChartData.data.push(newItem) |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount, time]; |
| | | |
| | | hqChartData.data.push(newItem); |
| | | // |
| | | yClose = close |
| | | yClose = close; |
| | | } |
| | | } |
| | | if (kLines.type === 'qh') { |
| | | for (var x = 0; x < recvData.list.length; ++x) { |
| | | var strItem2 = recvData.list[x] |
| | | var date2 = moment(strItem2.ctm).format('YYYYMMDD') |
| | | } else { |
| | | for (var i = 0; i < recvData.length; ++i) { |
| | | var strItem = recvData[i]; |
| | | // var item = strItem.split(',') |
| | | // var today = new Date(strItem.t) |
| | | // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var date = moment.unix(strItem.t).format("YYYYMMDD"); |
| | | var time = moment.unix(strItem.t).format("HHmm"); |
| | | |
| | | var open = parseFloat(strItem.o); |
| | | var close = parseFloat(strItem.c); |
| | | var high = parseFloat(strItem.h); |
| | | var low = parseFloat(strItem.l); |
| | | var vol = parseFloat(strItem.v) * 100; |
| | | var amount = parseFloat(Math.random() * 100 + ""); |
| | | // |
| | | var open2 = parseFloat(strItem2.open) |
| | | var close2 = parseFloat(strItem2.close) |
| | | var high2 = parseFloat(strItem2.high) |
| | | var low2 = parseFloat(strItem2.low) |
| | | var vol2 = 100 |
| | | // var vol2 = parseFloat(strItem2.v) * 100 |
| | | var amount2 = parseFloat((Math.random() * 100) + '') |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount, time]; |
| | | |
| | | hqChartData.data.push(newItem); |
| | | // |
| | | var newItem2 = [date2, yClose, open2, high2, low2, close2, vol2, amount2] |
| | | hqChartData.data.push(newItem2) |
| | | // |
| | | yClose = close |
| | | yClose = close; |
| | | } |
| | | } |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvHistoryData] hqchartData ', hqChartData) |
| | | callback(hqChartData) |
| | | HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData); |
| | | callback(hqChartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestMinuteRealtimeData = function (data, callback) { |
| | | data.PreventDefault = true |
| | | var symbol = data.Request.Data.symbol[0] // 请求的股票代码 |
| | | var period = data.Self.Period // 周期 |
| | | var right = data.Self.Right // 复权 |
| | | var dateRange = data.Self.ChartPaint[0].Data.GetDateRange() |
| | | HQData.RequestMinuteRealtimeData = function(data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | var dateRange = data.Self.ChartPaint[0].Data.GetDateRange(); |
| | | |
| | | var option = { Update: true } |
| | | if (dateRange && dateRange.End && dateRange.End.Date > 0) option.End = dateRange.End.Date |
| | | var option = { Update: true }; |
| | | if (dateRange && dateRange.End && dateRange.End.Date > 0) |
| | | option.End = dateRange.End.Date; |
| | | |
| | | console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`) |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option) |
| | | console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`); |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option); |
| | | |
| | | $.ajax( |
| | | { |
| | | url: obj.Url, |
| | | type: 'GET', |
| | | success: function (recvData) { |
| | | HQData.RecvMinuteRealtimeData(recvData, callback, { Data: data, Obj: obj }) |
| | | } |
| | | }) |
| | | } |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | HQData.RecvMinuteRealtimeData(recvData, callback, { |
| | | Data: data, |
| | | Obj: obj |
| | | }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvMinuteRealtimeData = function (recvData, callback, option) { |
| | | var data = recvData.data |
| | | var hqChartData = {code: 0, data: [], ver: 2.0, symbol: option.Obj.Symbol, name: data.name} // 更新数据使用2.0版本格式 |
| | | HQData.RecvMinuteRealtimeData = function(recvData, callback, option) { |
| | | var data = recvData.data; |
| | | var hqChartData = { |
| | | code: 0, |
| | | data: [], |
| | | ver: 2.0, |
| | | symbol: option.Obj.Symbol, |
| | | name: data.name |
| | | }; // 更新数据使用2.0版本格式 |
| | | |
| | | var yClose = data.preKPrice |
| | | console.log('212121132', recvData) |
| | | var yClose = data.preKPrice; |
| | | console.log("212121132", recvData); |
| | | for (var i = 0; i < data.klines.length; ++i) { |
| | | var strItem = data.klines[i] |
| | | var item = strItem.split(',') |
| | | var today = new Date(Date.parse(item[0])) |
| | | var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | var time = today.getHours() * 100 + today.getMinutes() |
| | | var strItem = data.klines[i]; |
| | | var item = strItem.split(","); |
| | | |
| | | var open = parseFloat(item[1]) |
| | | var close = parseFloat(item[2]) |
| | | var high = parseFloat(item[3]) |
| | | var low = parseFloat(item[4]) |
| | | var vol = parseFloat(item[5]) * 100 |
| | | var amount = parseFloat(item[6]) |
| | | var time = moment.unix(item[0]).format("HHmm"); |
| | | var open = parseFloat(item[1]); |
| | | var close = parseFloat(item[2]); |
| | | var high = parseFloat(item[3]); |
| | | var low = parseFloat(item[4]); |
| | | var vol = parseFloat(item[5]) * 100; |
| | | var amount = parseFloat(item[6]); |
| | | |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount, time] |
| | | hqChartData.data.push(newItem) |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount, time]; |
| | | hqChartData.data.push(newItem); |
| | | |
| | | yClose = close |
| | | yClose = close; |
| | | } |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log('[HQData.RecvMinuteRealtimeData] hqchartData ', hqChartData) |
| | | callback(hqChartData) |
| | | HQData.Log("[HQData.RecvMinuteRealtimeData] hqchartData ", hqChartData); |
| | | callback(hqChartData); |
| | | } |
| | | } |
| | | }; |
| | | |
| | | export default |
| | | { |
| | | export default { |
| | | HQData: HQData |
| | | } |
| | | }; |