hqchart
Version:
HQChart - H5, 微信小程序 沪深/港股/数字货币/期货/美股 K线图(kline),走势图,缩放,拖拽,十字光标,画图工具,截图,筹码图. 分析家语法,通达信语法,(麦语法),第3方数据对接
1,375 lines (1,090 loc) • 64.8 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var _getIterator2 = require("babel-runtime/core-js/get-iterator");
var _getIterator3 = _interopRequireDefault(_getIterator2);
var _map = require("babel-runtime/core-js/map");
var _map2 = _interopRequireDefault(_map);
var _defineProperty2 = require("babel-runtime/helpers/defineProperty");
var _defineProperty3 = _interopRequireDefault(_defineProperty2);
var _stringify = require("babel-runtime/core-js/json/stringify");
var _stringify2 = _interopRequireDefault(_stringify);
var _hqchart = require("hqchart");
var _hqchart2 = _interopRequireDefault(_hqchart);
var _shDayKline = require("./DayKLine/000001.sh.day.kline.js");
var _szDayKline = require("./DayKLine/000001.sz.day.kline.js");
var _szDayKline2 = require("./DayKLine/000151.sz.day.kline.js");
var _shDayKline2 = require("./DayKLine/000300.sh.day.kline.js");
var _szDayKline3 = require("./DayKLine/399001.sz.day.kline.js");
var _szDayKline4 = require("./DayKLine/399005.sz.day.kline.js");
var _szDayKline5 = require("./DayKLine/399006.sz.day.kline.js");
var _shDayKline3 = require("./DayKLine/600000.sh.day.kline.js");
var _shMinuteKline = require("./M1KLine/000001.sh.minute.kline.js");
var _szMinuteKline = require("./M1KLine/000001.sz.minute.kline.js");
var _szMinuteKline2 = require("./M1KLine/000151.sz.minute.kline.js");
var _shMinuteKline2 = require("./M1KLine/000300.sh.minute.kline.js");
var _szMinuteKline3 = require("./M1KLine/399001.sz.minute.kline.js");
var _szMinuteKline4 = require("./M1KLine/399005.sz.minute.kline.js");
var _szMinuteKline5 = require("./M1KLine/399006.sz.minute.kline.js");
var _shMinuteKline3 = require("./M1KLine/600000.sh.minute.kline.js");
var _sz1dayMinute = require("./DayMinute/000001.sz.1day.minute.js");
var _sz1dayMinute2 = require("./DayMinute/000151.sz.1day.minute.js");
var _sh1dayMinute = require("./DayMinute/600000.sh.1day.minute.js");
var _sz5dayMinute = require("./Day5Minute/000001.sz.5day.minute.js");
var _sz5dayMinute2 = require("./Day5Minute/000151.sz.5day.minute.js");
var _sh5dayMinute = require("./Day5Minute/600000.sh.5day.minute.js");
var _shFinance_ = require("./60000.sh.finance_7.js");
var _shNewsInteract = require("./60000.sh.NewsInteract.js");
var _shTradeDetal = require("./60000.sh.TradeDetal.js");
var _shsz_stock_data = require("./shsz_stock_data.js");
var _symbollist_shsz = require("./symbollist_shsz.js");
var _shCapitalKline = require("./60000.sh.capital.kline.js");
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var JSChart = _hqchart2.default.Chart.JSChart;
var IFrameSplitOperator = _hqchart2.default.Chart.IFrameSplitOperator;
var IExtendChartPainting = _hqchart2.default.Chart.IExtendChartPainting;
var GetDevicePixelRatio = _hqchart2.default.Chart.JSChart.GetDevicePixelRatio;
var ToFixedRect = _hqchart2.default.Chart.JSChart.ToFixedRect;
var ToFixedPoint = _hqchart2.default.Chart.JSChart.ToFixedPoint;
var ChartData = _hqchart2.default.Chart.ChartData;
/////////////////////////////////////////////////////////////////////////////////////////////////////
// 测试数据
//
//
/////////////////////////////////////////////////////////////////////
// 模拟测试数据
//
//
/////////////////////////////////////////////////////////////////////
function HQData() {}
HQData.Explain = "本地测试数据";
HQData.NetworkFilter = function (data, callback) {
console.log("[HQData::NetworkFilter] " + HQData.Explain, data);
switch (data.Name) {
//HQChart使用教程29-走势图如何对接第3方数据1
case 'MinuteChartContainer::RequestMinuteData':
//分时图数据对接
//HQChart使用教程29-走势图如何对接第3方数据2-最新分时数据
HQData.Minute_RequestMinuteData(data, callback);
break;
case "MinuteChartContainer::RequestHistoryMinuteData":
//多日分时图
//HQChart使用教程29-走势图如何对接第3方数据3-多日分时数据
HQData.Minute_RequestHistoryMinuteData(data, callback);
break;
case "MinuteChartContainer::RequestOverlayMinuteData":
//单日叠加
HQData.Minute_RequestOverlayMinuteData(data, callback);
break;
case "MinuteChartContainer::RequestOverlayHistoryMinuteData":
//叠加多日
HQData.Minute_RequestOverlayHistoryMinuteData(data, callback);
break;
case "MinuteChartContainer::RequestPopMinuteData":
//弹出分时图数据
//HQChart使用教程29-走势图如何对接第3方数据2-最新分时数据 格式跟这个一样
HQData.Minute_RequestPopMinuteData(data, callback);
break;
//HQChart使用教程30-K线图如何对接第3方数据1
case 'KLineChartContainer::RequestHistoryData':
//日线全量数据下载
//HQChart使用教程30-K线图如何对接第3方数据2-日K数据
HQData.RequestHistoryData(data, callback);
break;
case 'KLineChartContainer::RequestRealtimeData':
//日线实时数据更新
//HQChart使用教程30-K线图如何对接第3方数据14-轮询增量更新日K数据
HQData.RequestRealtimeData(data, callback);
break;
case 'KLineChartContainer::RequestFlowCapitalData':
//流通股本
//HQChart使用教程30-K线图如何对接第3方数据4-流通股本数据
HQData.RequestFlowCapitalData(data, callback);
break;
case 'KLineChartContainer::ReqeustHistoryMinuteData':
//分钟全量数据下载
//HQChart使用教程30-K线图如何对接第3方数据3-1分钟K数据
HQData.RequestHistoryMinuteData(data, callback);
break;
case 'KLineChartContainer::RequestMinuteRealtimeData':
//分钟增量数据更新
//HQChart使用教程30-K线图如何对接第3方数据15-轮询增量更新1分钟K线数据
HQData.RequestMinuteRealtimeData(data, callback);
break;
case "JSSymbolData::GetVariantData":
//额外的变量数据
//HQChart使用教程30-K线图如何对接第3方数据29-板块字符串函数数据[GNBLOCK,GNBLOCKNUM......]
HQData.RequestIndexVariantData(data, callback);
break;
case "JSSymbolData::GetCustomFunctionData":
//自定义函数数据下载
HQData.CustomFunction_RequestData(data, callback);
break;
case "JSSymbolData::GetCustomVariantData":
//自定义函数数据下载
HQData.CustomVarData_RequestData(data, callback);
break;
case "JSSymbolData::GetOtherSymbolData":
//HQChart使用教程30-K线图如何对接第3方数据31-获取指定品种的K线数据
HQData.RequestOtherSymbolData(data, callback);
break;
case "AnnouncementInfo::RequestData":
//HQChart使用教程30-K线图如何对接第3方数据20-信息地雷公告数据
HQData.AnnouncementInfo_RequestData(data, callback);
break;
case "JSSymbolData::GetLatestData":
//HQChart使用教程30-K线图如何对接第3方数据30-即时行情数据DYNAINFO
HQData.RequestLatestData(data, callback);
break;
case "KLineChartContainer::RequestOverlayHistoryData":
//叠加股票
//HQChart使用教程30-K线图如何对接第3方数据16-日K叠加股票
HQData.RequestOverlayHistoryData(data, callback);
break;
case "KLineChartContainer::RequestOverlayHistoryMinuteData":
//HQChart使用教程30-K线图如何对接第3方数据17- 分钟K叠加股票
HQData.RequestOverlayHistoryMinuteData(data, callback);
break;
case "PforecastInfo::RequestData":
HQData.PforecastInfo_RequestData(data, callback);
break;
case "InvestorInfo::RequestData":
HQData.InvestorInfo_RequestData(data, callback);
break;
case "ResearchInfo::RequestData":
HQData.ResearchInfo_RequestData(data, callback);
break;
case "BlockTrading::RequestData":
HQData.BlockTrading_RequestData(data, callback);
break;
case "TradeDetail::RequestData":
HQData.TradeDetail_RequestData(data, callback);
break;
case "JSSymbolData::GetFinance":
//财务数据
HQData.Finance_RequestData(data, callback);
break;
case "JSSymbolData::GetGPJYValue":
HQData.GPJYValue_RequestData(data, callback);
break;
case "JSSymbolData::GetSCJYValue":
HQData.SCJYValue_RequestData(data, callback);
break;
case "JSSymbolData::GetBKJYValue":
HQData.BKJYValue_RequestData(data, callback);
break;
case "JSSymbolData::GetGPJYOne":
HQData.GPJYOne_RequestData(data, callback);
break;
case "JSSymbolData::GetSCJYOne":
HQData.SCJYOne_RequestData(data, callback);
break;
case "JSSymbolData::GetBKJYOne":
HQData.BKJYOne_RequestData(data, callback);
break;
case "JSSymbolData::GetFinValue":
HQData.FinValue_RequestData(data, callback);
break;
case "JSSymbolData::GetFinOne":
HQData.FinOne_RequestData(data, callback);
break;
case "JSSymbolData::GetIndexData":
HQData.INDEX_RequestData(data, callback);
break;
//////////////////////////////////////////////////////
//报价列表数据
case "JSReportChartContainer::RequestStockListData":
//HQChart使用教程95-报价列表对接第3方数据1-码表数据
HQData.Report_RequestStockListData(data, callback); //码表
break;
case "JSReportChartContainer::RequestMemberListData":
//板块成分
//HQChart使用教程95-报价列表对接第3方数据2-板块成分数据
HQData.Report_RequestMemberListDat(data, callback);
break;
case "JSDealChartContainer::RequestStockData":
//股票数据更新
//HQChart使用教程95-报价列表对接第3方数据3-股票数据
HQData.Report_RequestStockData(data, callback);
break;
case "JSDealChartContainer::RequestStockSortData":
//股票排序数据
//HQChart使用教程95-报价列表对接第3方数据4-股票排序数据
HQData.Report_RequestStockSortData(data, callback);
break;
case "JSDealChartContainer::RequestVirtualStockData":
HQData.Report_RequestVirtualStockData(data, callback); //股票数据 虚拟表格
break;
}
};
HQData.Minute_RequestMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol[0]; //请求的股票代码
var callcation = data.Request.Data.callcation; //集合竞价
console.log("[HQData::RequestMinuteData] Symbol=" + symbol);
setTimeout(function () {
var fullData = HQData.GetDayMinuteDataBySymbol(symbol);
var srcStock = fullData[0];
var stockItem = { date: srcStock.date, minute: srcStock.minute, yclose: srcStock.yclose, symbol: symbol, name: symbol };
if (callcation.Before) {
var before = [
//[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
[915, srcStock.yclose, 0, 0], [916, srcStock.yclose + 0.01, 0, 0], [917, srcStock.yclose + 0.03, 0, 0], [918, srcStock.yclose + 0.02, 0, 0], [919, srcStock.yclose + 0.02, 0, 0], [920, srcStock.yclose + 0.01, 0, 0], [921, srcStock.yclose, 0, 0], [922, srcStock.yclose - 0.02, 0, 0], [923, srcStock.yclose - 0.03, 0, 0], [924, srcStock.yclose, 0, 0], [925, srcStock.yclose, 0, 0]];
var beforeinfo = { totalcount: 11, ver: 1.0 };
stockItem.before = before;
stockItem.beforeinfo = beforeinfo;
}
//测试用 这里可以修改数据
//var lastItem=srcStock.minute[srcStock.minute.length-1];
//lastItem.price+=Math.ceil(Math.random()*10)/1000*lastItem.price;
/*
for(var i=0;i<srcStock.minute.length;++i)
{
var item=srcStock.minute[i];
if (item.amount<1000000) item.amount*=100000;
}
*/
var hqchartData = { code: 0, stock: [stockItem] };
callback(hqchartData);
}, 50);
};
HQData.Minute_RequestPopMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol[0]; //请求的股票代码
var date = data.Request.Data.date;
var callcation = data.Request.Data.callcation; //集合竞价
console.log("[HQData::RequestPopMinuteData] Symbol=" + symbol + " Date=" + date);
setTimeout(function () {
var fullData = HQData.GetDayMinuteDataBySymbol(symbol);
var srcStock = fullData[0];
var stockItem = { date: date, minute: [], yclose: srcStock.yclose, symbol: srcStock.symbol, name: srcStock.symbol, IsHistoryMinute: true };
if (callcation.Before) {
var before = [
//[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
[915, srcStock.yclose, 0, 0], [916, srcStock.yclose + 0.01, 0, 0], [917, srcStock.yclose + 0.03, 0, 0], [918, srcStock.yclose + 0.02, 0, 0], [919, srcStock.yclose + 0.02, 0, 0], [920, srcStock.yclose + 0.01, 0, 0], [921, srcStock.yclose, 0, 0], [922, srcStock.yclose - 0.02, 0, 0], [923, srcStock.yclose - 0.03, 0, 0], [924, srcStock.yclose, 0, 0], [925, srcStock.yclose, 0, 0]];
var beforeinfo = { totalcount: 11, ver: 1.0 };
stockItem.before = before;
stockItem.beforeinfo = beforeinfo;
}
for (var i = 0; i < srcStock.minute.length; ++i) {
var item = srcStock.minute[i];
var newItem = CloneData(item);
newItem.date = date;
stockItem.minute.push(newItem);
}
var hqchartData = { code: 0, stock: [stockItem] };
callback(hqchartData);
}, 50);
};
HQData.Minute_RequestHistoryMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol; //请求的股票代码
var dayCount = data.Request.Data.daycount;
var callcation = data.Request.Data.callcation; //集合竞价
console.log("[HQData::Minute_RequestHistoryMinuteData] Symbol=" + symbol);
var fullData = HQData.GetMulitDayMinuteDataBySymbol(symbol);
var aryDay = [];
if (dayCount > fullData.length) dayCount = fullData.length;
aryDay = fullData.slice(0, dayCount);
for (var i = 0; i < aryDay.length; ++i) {
var item = aryDay[i];
if (callcation.Before) {
var before = [
//[交易时间, 价格,成交量, 成交金额, 日期(可选,YYYYMMDD)],
[915, item.yclose, 0, 0], [916, item.yclose + 0.01, 0, 0], [917, item.yclose + 0.03, 0, 0], [918, item.yclose + 0.02, 0, 0], [919, item.yclose + 0.02, 0, 0], [920, item.yclose + 0.01, 0, 0], [921, item.yclose, 0, 0], [922, item.yclose - 0.02, 0, 0], [923, item.yclose - 0.03, 0, 0], [924, item.yclose, 0, 0], [925, item.yclose, 0, 0]];
var beforeinfo = { totalcount: 11, ver: 1.0 };
item.before = before;
item.beforeinfo = beforeinfo;
}
}
var hqchartData = { code: 0, data: aryDay, name: symbol, symbol: symbol };
callback(hqchartData);
};
HQData.Minute_RequestOverlayMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var date = data.Request.Data.days[0];
var fullData = HQData.GetMulitDayMinuteDataBySymbol(symbol);
var aryDay = HQData.GetMulitDayMinuteDataByDate(fullData, [date]);
var hqchartData = { code: 0, data: aryDay, name: symbol, symbol: symbol };
callback(hqchartData);
};
HQData.Minute_RequestOverlayHistoryMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var aryDate = data.Request.Data.days;
var fullData = HQData.GetMulitDayMinuteDataBySymbol(symbol);
var aryDay = HQData.GetMulitDayMinuteDataByDate(fullData, aryDate);
var hqchartData = { code: 0, data: aryDay, name: symbol, symbol: symbol };
callback(hqchartData);
};
HQData.RequestHistoryData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol; //请求的股票代码
var count = data.Request.Data.count;
console.log("[HQData::RequestMinuteDaysData] Symbol=" + symbol);
var fullData = HQData.GetDayKLineDataBySymbol(symbol);
var aryData = [];
if (IFrameSplitOperator.IsNonEmptyArray(fullData)) {
var dataCount = fullData.length;
var start = dataCount - count;
if (start < 0) start = 0;
aryData = fullData.slice(start);
}
var hqchartData = { name: symbol, symbol: symbol, data: aryData, ver: 2.0 };
callback(hqchartData);
};
HQData.RequestFlowCapitalData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol; //请求的股票代码
console.log("[HQData::RequestFlowCapitalData] Symbol=" + symbol);
var hqchartData = _shCapitalKline.KLINE_CAPITAL_DATA;
callback(hqchartData);
};
HQData.RequestRealtimeData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol[0]; //请求的股票代码
var end = data.Request.Data.dateRange.End;
var endDate = end.Date;
var aryStock = [];
for (var i = 0; i < data.Request.Data.symbol.length; ++i) {
var item = data.Request.Data.symbol[i];
var fullData = HQData.GetDayKLineDataBySymbol(item);
if (!IFrameSplitOperator.IsNonEmptyArray(fullData)) continue;
var aryData = HQData.GetKLineDataByDate(fullData, endDate, 20999999);
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) continue;
var kItem = aryData[0];
var price = kItem[5];
var value = Math.ceil(Math.random() * 10) / 1000 * price;
var bUp = Math.ceil(Math.random() * 10) >= 5;
if (bUp) price += value;else price -= value;
var stockItem = { symbol: item, name: item };
stockItem.date = kItem[0];
stockItem.yclose = kItem[1];
stockItem.open = kItem[2];
stockItem.high = Math.max(kItem[3], price);
stockItem.low = Math.min(kItem[4], price);
stockItem.price = price;
stockItem.vol = kItem[6];
stockItem.amount = kItem[7];
aryStock.push(stockItem);
}
var hqchartData = { code: 0, stock: aryStock };
callback(hqchartData);
};
HQData.RequestHistoryMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol; //请求的股票代码
var count = data.Request.Data.count * 200; //请求的数据长度
console.log("[HQData::RequestHistoryMinuteData] Symbol=" + symbol);
var fullData = HQData.GetM1KLineDataBySymbol(symbol);
var aryData = [];
if (IFrameSplitOperator.IsNonEmptyArray(fullData)) {
var dataCount = fullData.length;
var start = dataCount - count;
if (start < 0) start = 0;
aryData = fullData.slice(start);
}
var hqchartData = { name: symbol, symbol: symbol, data: aryData, ver: 2.0 };
callback(hqchartData);
};
HQData.RequestMinuteRealtimeData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol[0]; //请求的股票代码
var end = data.Request.Data.dateRange.End;
var endDate = end.Date;
var endTime = end.Time;
var aryOverlay = []; //叠加
var aryMainData = []; //主图
for (var i = 0; i < data.Request.Data.symbol.length; ++i) {
var symbol = data.Request.Data.symbol[i];
var fullData = HQData.GetM1KLineDataBySymbol(symbol);
if (!IFrameSplitOperator.IsNonEmptyArray(fullData)) continue;
var aryData = HQData.GetKLineDataByDateTime(fullData, endDate, endTime, 20999999, 9999);
if (!IFrameSplitOperator.IsNonEmptyArray(aryData)) continue;
var kItem = JSON.parse((0, _stringify2.default)(aryData[0]));
//生成随机测试数据
var price = kItem[5];
var value = Math.ceil(Math.random() * 10) / 5000 * price;
var bUp = Math.ceil(Math.random() * 10) >= 5;
if (bUp) price += value;else price -= value;
kItem[5] = price;
kItem[3] = Math.max(price, kItem[3]);
kItem[4] = Math.min(price, kItem[4]);
if (i == 0) {
aryMainData.push(kItem);
} else {
var stock = { data: [kItem], symbol: symbol, name: symbol };
aryOverlay.push(stock);
}
}
var symbol = data.Request.Data.symbol[0]; //请求的股票代码
var hqchartData = { name: symbol, symbol: symbol, ver: 2.0, data: aryMainData };
if (IFrameSplitOperator.IsNonEmptyArray(aryOverlay)) hqchartData.overlay = aryOverlay;
callback(hqchartData);
};
HQData.RequestIndexVariantData = function (data, callback) {
data.PreventDefault = true;
var varName = data.Request.Data.VariantName; //变量名称
if (varName == "FROMOPEN") {
var hqchartData = {};
//单数据
hqchartData.Data = { Date: 20230707, Value: 240 };
hqchartData.DataType = 1;
callback(hqchartData);
} else if (varName == "FGBLOCK") {
var hqchartData = { DataType: 1, Data: { Value: "融资融券 大盘股 MSCI成份 周期股 沪股通标的" } }; //返回所属风格板块.
callback(hqchartData);
} else if (varName == "GNBLOCK") {
var hqchartData = { DataType: 1, Data: { Value: "含可转债 跨境支付CIPS" } }; //返回所属概念板块.
callback(hqchartData);
} else if (varName == "HYBLOCK") {
var hqchartData = { DataType: 1, Data: { Value: "全国性银行" } }; //返回品种所属行业.
callback(hqchartData);
} else if (varName == "DYBLOCK") {
var hqchartData = { DataType: 1, Data: { Value: "上海板块" } }; //返回品种所属地域..
callback(hqchartData);
} else if (varName == "CAPITAL") {
var hqchartData = { DataType: 1, Data: { Value: 29352177375 } }; // 当前流通股本,单位为手,债券1手为10张,其它为100
callback(hqchartData);
} else if (varName == "LARGEINTRDVOL") {
//测试数据
var kData = data.Self.Data;
var hqchartData = { DataType: 2, Data: [] };
var testValue = 0.15;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
hqchartData.Data.push({ Date: kItem.Date, Time: kItem.Time, Value: kItem.Vol * testValue });
testValue += 0.01;
if (testValue > 0.23) testValue = 0.15;
}
callback(hqchartData);
} else if (varName == "LARGEOUTTRDVOL") {
//测试数据
var kData = data.Self.Data;
var hqchartData = { DataType: 2, Data: [] };
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
hqchartData.Data.push({ Date: kItem.Date, Time: kItem.Time, Value: kItem.Vol * 0.17 });
}
callback(hqchartData);
} else {
var error = "\u53D8\u91CF'" + varName + "' \u6CA1\u6709\u5BF9\u63A5\u6570\u636E. [HQData.RequestIndexVariantData]";
var hqchartData = { Error: error };
callback(hqchartData);
}
};
HQData.CustomFunction_RequestData = function (data, callback) {
data.PreventDefault = true;
var funcName = data.Request.Data.FunctionName;
var hqchartData = null;
if (funcName == 'L2_VOL') {
var args = data.Request.Data.JobItem.Args;
var param = [args[0].Value, args[1].Value];
var hqchartData = { DataType: 2, Data: [] };
var kData = data.Self.Data;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
hqchartData.Data.push({ Date: kItem.Date, Time: kItem.Time, Value: kItem.Vol / 3 });
}
} else {
var error = "\u51FD\u6570'" + funcName + "' \u6CA1\u6709\u5BF9\u63A5\u6570\u636E. [HQData.CustomFunction_RequestData]";
var hqchartData = { Error: error };
}
callback(hqchartData);
};
HQData.CustomVarData_RequestData = function (data, callback) {
data.PreventDefault = true;
var varName = data.Request.Data.VariantName;
if (varName == "DCLOSE") {
var hqchartData = { DataType: 2, Data: [] };
var kData = data.Self.Data;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
hqchartData.Data.push({ Date: kItem.Date, Time: kItem.Time, Value: kItem.Close });
}
callback(hqchartData);
} else {
var error = "\u53D8\u91CF'" + varName + "' \u6CA1\u6709\u5BF9\u63A5\u6570\u636E. [HQData.CustomVarData_RequestData]";
var hqchartData = { Error: error };
callback(hqchartData);
}
};
HQData.RequestOtherSymbolData = function (data, callback) {
var _hqchartData;
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var period = data.Request.Data.period;
var right = data.Request.Data.right;
var start = data.Request.Data.dateRange.Start;
var end = data.Request.Data.dateRange.End;
var aryData = [];
if (ChartData.IsDayPeriod(period, true)) {
var fullData = HQData.GetDayKLineDataBySymbol(symbol);
if (IFrameSplitOperator.IsNonEmptyArray(fullData)) aryData = HQData.GetKLineDataByDate(fullData, start.Date, end.Date);
} else if (ChartData.IsMinutePeriod(period, true)) {
var fullData = this.GetM1KLineDataBySymbol(symbol);
if (IFrameSplitOperator.IsNonEmptyArray(fullData)) aryData = HQData.GetKLineDataByDateTime(fullData, start.Date, start.Time, end.Date, end.Time);
}
var hqchartData = (_hqchartData = { name: symbol }, (0, _defineProperty3.default)(_hqchartData, "name", symbol), (0, _defineProperty3.default)(_hqchartData, "data", aryData), _hqchartData);
callback(hqchartData);
};
HQData.AnnouncementInfo_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Symbol;
var hqchartData = { symbol: symbol, report: [] };
var kData = data.HQChart.ChartPaint[0].Data;
for (var i = 0, j = 1; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 10 != 4) continue;
var itemReport = { releasedate: kItem.Date, time: kItem.Time, title: "\u516C\u544A(" + j + ") xxxx" };
hqchartData.report.push(itemReport);
++j;
}
callback(hqchartData);
};
HQData.PforecastInfo_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Symbol;
var hqchartData = { symbol: symbol, report: [] };
var kData = data.HQChart.ChartPaint[0].Data;
for (var i = 0, j = 1; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 10 != 4) continue;
var year = parseInt(kItem.Date / 10000); //年份
var month = parseInt(kItem.Date / 100) % 100;
var reprotDate = 0;
if (month > 10) reprotDate = year * 10000 + 1231;else if (month > 6) reprotDate = year * 10000 + 930;else if (month > 3) reprotDate = year * 10000 + 630;else reprotDate = year * 10000 + 331;
var itemReport = { date: kItem.Date, time: kItem.Time, title: "\u4E1A\u7EE9\u9884\u589E", reportdate: reprotDate, fweek: { week1: 0.04, week4: 0.02 } };
hqchartData.report.push(itemReport);
++j;
}
callback(hqchartData);
};
HQData.InvestorInfo_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Symbol;
callback(_shNewsInteract.TEST_NEWSINTERACT_DATA);
};
HQData.ResearchInfo_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Symbol;
var hqchartData = { symbol: symbol, list: [] };
var kData = data.HQChart.ChartPaint[0].Data;
for (var i = 0, j = 1; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 20 != 4) continue;
var itemReport = { researchdate: kItem.Date, id: i, level: [j % 4], type: "xxx调研。" };
hqchartData.list.push(itemReport);
++j;
}
callback(hqchartData);
};
HQData.BlockTrading_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Symbol;
callback(TEST_BLOCK_TRADING_DATA);
};
HQData.TradeDetail_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Symbol;
callback(_shTradeDetal.TEST_TRADE_DETAL_DATA);
};
HQData.RequestLatestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol[0];
var id = data.Args[0];
var value = 1;
var fullData = HQData.GetDayKLineDataBySymbol(symbol);
if (IFrameSplitOperator.IsNonEmptyArray(fullData)) {
var item = fullData[fullData.length - 1]; //取最后一条数据
switch (id) {
case 3:
value = item[1];
break;
case 4:
value = item[2];
break;
case 5:
value = item[3];
break;
case 6:
value = item[4];
break;
case 7:
value = item[5];
break;
case 8:
value = item[6];
break;
}
}
var hqchartData = { symbol: symbol, ver: 2.0, data: [{ id: id, value: value }] };
callback(hqchartData);
};
HQData.RequestOverlayHistoryData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var first = data.Request.Data.first;
var fullData = HQData.GetDayKLineDataBySymbol(symbol);
var aryData = [];
if (IFrameSplitOperator.IsNonEmptyArray(fullData)) {
aryData = HQData.GetKLineDataByDate(fullData, first.date, 20999999);
}
//aryData=aryData.slice(aryData.length-20);
var hqchartData = { code: 0, symbol: symbol, name: symbol, ver: 2.0, data: aryData };
callback(hqchartData);
};
HQData.RequestOverlayHistoryMinuteData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var first = data.Request.Data.first;
var aryData = [];
var fullData = HQData.GetM1KLineDataBySymbol(symbol);
if (fullData) {
aryData = HQData.GetKLineDataByDateTime(fullData, first.date, first.time, 20999999, 9999);
}
var hqchartData = { symbol: symbol, name: symbol, ver: 2.0, data: aryData };
callback(hqchartData);
};
HQData.GetKLineDataByDateTime = function (fullData, startDate, startTime, endDate, endTime) {
var start = startDate * 10000 + startTime;
var end = endDate * 10000 + endTime;
var aryData = [];
for (var i = 0; i < fullData.length; ++i) {
var kItem = fullData[i];
var date = kItem[0];
var time = kItem[8];
var dateTime = date * 10000 + time;
if (dateTime >= start && dateTime <= end) aryData.push(kItem);
}
return aryData;
};
HQData.Finance_RequestData = function (data, callback) {
data.PreventDefault = true;
var id = data.Request.Data.id;
var hqchartData = null;
if (id == 7) // 流通股本(随时间可能有变化)
{
hqchartData = _shFinance_.TEST_FINANCE_7.data;
} else {
var error = "Finance(" + id + ") \u6CA1\u6709\u5BF9\u63A5\u6570\u636E. [HQData.Finance_RequestData]";
hqchartData = { Error: error };
}
if (hqchartData) callback(hqchartData);
};
//GPJYVALUE(ID,N,TYPE),ID为数据编号,N表示第几个数据(取1或2),TYPE:为1表示做平滑处理,没有数据的周期返回上一周期的值;为0表示不做平滑处理;2表示没有数据则为0.
HQData.GPJYValue_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var n = data.Request.Data.Args[1];
var type = data.Request.Data.Args[2];
var aryData = [];
var kData = data.Self.Data;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 50 == 15) {
var value = HQData.GetRandomTestData(10, 100);
aryData.push({ Date: kItem.Date, Time: kItem.Time, Value: value });
}
}
callback(aryData);
};
HQData.SCJYValue_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var n = data.Request.Data.Args[1];
var type = data.Request.Data.Args[2];
var aryData = [];
var kData = data.Self.Data;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 50 == 20) {
var value = HQData.GetRandomTestData(1000, 2000);
aryData.push({ Date: kItem.Date, Time: kItem.Time, Value: value });
}
}
callback(aryData);
};
HQData.BKJYValue_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var n = data.Request.Data.Args[1];
var type = data.Request.Data.Args[2];
var aryData = [];
var kData = data.Self.Data;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 60 == 33) {
var value = HQData.GetRandomTestData(500, 1000);
aryData.push({ Date: kItem.Date, Time: kItem.Time, Value: value });
}
}
callback(aryData);
};
HQData.GPJYOne_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var n = data.Request.Data.Args[1];
var year = data.Request.Data.Args[2];
var day = data.Request.Data.Args[3];
var value = HQData.GetRandomTestData(800, 1200);
callback({ Date: 20230509, Value: value });
};
HQData.SCJYOne_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var n = data.Request.Data.Args[1];
var year = data.Request.Data.Args[2];
var day = data.Request.Data.Args[3];
var value = HQData.GetRandomTestData(400, 500);
callback({ Date: 20230509, Value: value });
};
HQData.BKJYOne_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var n = data.Request.Data.Args[1];
var year = data.Request.Data.Args[2];
var day = data.Request.Data.Args[3];
var value = HQData.GetRandomTestData(900, 2000);
callback({ Date: 20230509, Value: value });
};
HQData.FinValue_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var aryData = [];
var kData = data.Self.Data;
for (var i = 0; i < kData.Data.length; ++i) {
var kItem = kData.Data[i];
if (i % 60 == 21) {
var value = HQData.GetRandomTestData(10, 20);
aryData.push({ Date: kItem.Date, Time: kItem.Time, Value: value });
}
}
callback(aryData);
};
HQData.FinOne_RequestData = function (data, callback) {
data.PreventDefault = true;
var symbol = data.Request.Data.symbol;
var id = data.Request.Data.Args[0];
var year = data.Request.Data.Args[1];
var day = data.Request.Data.Args[2];
var value = HQData.GetRandomTestData(80, 90);
callback({ Date: 20230509, Value: value });
};
HQData.INDEX_RequestData = function (data, callback) {
data.PreventDefault = true;
var period = data.Period;
var symbol = data.Request.Data.symbol;
var indexSymbol = "000001.sh";
var dateRange = data.Request.Data.dateRange;
var aryData = [];
if (ChartData.IsMinutePeriod(period, true)) {
var fullData = HQData.GetM1KLineDataBySymbol(symbol);
if (fullData) aryData = HQData.GetKLineDataByDateTime(fullData, dateRange.Start.Date, dateRange.Start.Time, dateRange.End.Date, dateRange.End.Time);
} else if (ChartData.IsDayPeriod(period, true)) {
var fullData = HQData.GetDayKLineDataBySymbol(indexSymbol);
if (fullData) aryData = HQData.GetKLineDataByDate(fullData, dateRange.Start.Date, dateRange.End.Date);
}
var hqchartData = { name: indexSymbol, symbol: indexSymbol, data: aryData, ver: 2.0 };
callback(hqchartData);
};
//////////////////////////////////////////////////////////////////////////////////////
// 报价列表
//
//
/////////////////////////////////////////////////////////////////////////////////////
//码表
HQData.Report_RequestStockListData = function (data, callback) {
data.PreventDefault = true;
var hqchartData = { data: [] };
if (IFrameSplitOperator.IsNonEmptyArray(_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol)) {
//0=证券代码 1=股票名称
for (var i = 0; i < _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length; ++i) {
var symbol = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
var name = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.name[i];
var item = [symbol, name];
//item[88]=1;
hqchartData.data.push(item);
}
}
console.log("[HQData.Report_RequestStockListData] hqchartData", hqchartData);
callback(hqchartData);
};
//空码表
HQData.Report_RequestStockListData_Empty = function (data, callback) {
data.PreventDefault = true;
var hqchartData = { data: [] };
console.log("[HQData.Report_RequestStockListData_EMPTY] hqchartData", hqchartData);
callback(hqchartData);
};
HQData.Report_RequestMemberVirtualListData = function (data, callback, option) {
var symbol = data.Request.Data.symbol; //板块代码
data.PreventDefault = true;
var hqchartData = { symbol: symbol, name: symbol, data: [], code: 0, Virtual: { Count: option.Virtual.Count } };
for (var i = 0; i < _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length && i < 50; ++i) {
hqchartData.data.push(_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol[i]);
}
callback(hqchartData);
};
//板块|行业等成分列表
HQData.Report_RequestMemberListDat = function (data, callback) {
var symbol = data.Request.Data.symbol; //板块代码
data.PreventDefault = true;
var hqchartData = { symbol: symbol, name: symbol, data: [], code: 0 };
var testDataCount = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length;
var testIndex = Math.round(Math.random() * (testDataCount - 100));
var count = parseInt(Math.random() * 200 + 100);;
for (var i = testIndex, j = 0; i < _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length && j < count; ++i, ++j) {
hqchartData.data.push(_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol[i]);
}
callback(hqchartData);
};
HQData.Report_RequestStockData = function (data, callback) {
var stocks = data.Request.Data.stocks; //股票列表
data.PreventDefault = true;
setTimeout(function () {
var mapStock = new _map2.default();
for (var i = 0; i < stocks.length; ++i) {
var item = stocks[i];
mapStock.set(item.Symbol, { Symbol: item.Symbol, Data: null });
}
if (IFrameSplitOperator.IsNonEmptyArray(_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol)) {
for (var i = 0; i < _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length; ++i) {
var symbol = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
if (!mapStock.has(symbol)) continue;
var item = mapStock.get(symbol);
var name = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.name[i];
var price = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.close[i];
var vol = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.vol[i];
var newItem = [symbol, name, _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.yclose[i], _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.open[i], _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.high[i], _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.low[i], price, vol, _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.amount[i]];
//买价 量
newItem[9] = price + 0.05;
newItem[10] = 10;
//卖价 量
newItem[11] = price - 0.06;
newItem[12] = 5;
//均价
newItem[13] = price - 0.03;
//内盘
newItem[18] = vol / 4;
//外盘
newItem[19] = vol / 5;
newItem[14] = vol * 1.5; //流通股本
newItem[15] = vol * 1.8; //总股本
//换手率
newItem[23] = Math.round(Math.random() * 60) / 100;
//名字字段
var symbolEx = { Text: name };
if (i % 20 == 5) symbolEx.Symbol = { Family: 'iconfont', Size: 16, Data: [{ Text: "\uE629", Color: 'rgb(255,165,0)' }, { Text: "\uE627", Color: '#1c65db' }] };else if (i % 20 == 9) symbolEx.Symbol = { Family: 'iconfont', Size: 16, Data: [{ Text: "\uE629", Color: 'rgb(255,165,0)' }] };else if (i % 20 == 18) symbolEx.Symbol = { Family: 'iconfont', Size: 16, Data: [{ Text: "\uE627", Color: '#1c65db' }] };
newItem[27] = symbolEx;
newItem[38] = HQData.GetRandomTestData(10, 20000); //持仓量
newItem[39] = HQData.GetRandomTestData(10, 100); //结算价
newItem[40] = HQData.GetRandomTestData(10, 100); //昨结算价
newItem[41] = HQData.GetRandomTestData(10, 20000); //开仓量
newItem[42] = HQData.GetRandomTestData(10, 20000); //平仓量
//1,3,5,10,15 涨速%
newItem[43] = HQData.GetRandomTestData(-90, 90);
newItem[44] = HQData.GetRandomTestData(-90, 90);
newItem[45] = HQData.GetRandomTestData(-90, 90);
newItem[46] = HQData.GetRandomTestData(-90, 90);
newItem[47] = HQData.GetRandomTestData(-90, 90);
//扩展数据 (定制数据)
var extendData = [];
newItem[30] = extendData;
//行业
extendData[0] = "行业X";
//地区
extendData[1] = "地区X";
//PE|PB
extendData[2] = Math.round(Math.random() * 60) / 100;
extendData[3] = Math.round(Math.random() * 60) / 100;
extendData[4] = Math.round(Math.random() * 60) / 100;
extendData[5] = Math.round(Math.random() * 60) / 100;
//周涨幅
extendData[6] = Math.round(Math.random() * 60) / 100;
extendData[7] = Math.round(Math.random() * 60) / 100;
extendData[8] = Math.round(Math.random() * 60) / 100;
newItem[32] = HQData.Report_CreateMinuteData(newItem[2]);
//K线
var kData = { Data: [newItem[3], newItem[4], newItem[5], newItem[6]] };
newItem[33] = kData;
newItem[101] = 105.0;
newItem[201] = "A-[" + HQData.GetRandomTestData(-90, 90) + "]-B";
newItem[301] = HQData.GetRandomTestData(0, 100) / 100;
newItem[302] = HQData.GetRandomTestData(0, 100) / 100;
item.Data = newItem;
}
}
var hqchartData = { data: [], code: 0 };
var _iteratorNormalCompletion = true;
var _didIteratorError = false;
var _iteratorError = undefined;
try {
for (var _iterator = (0, _getIterator3.default)(mapStock), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {
var mapItem = _step.value;
var item = mapItem[1];
if (!item.Data) continue;
hqchartData.data.push(item.Data);
}
} catch (err) {
_didIteratorError = true;
_iteratorError = err;
} finally {
try {
if (!_iteratorNormalCompletion && _iterator.return) {
_iterator.return();
}
} finally {
if (_didIteratorError) {
throw _iteratorError;
}
}
}
callback(hqchartData);
}, 500);
};
HQData.Report_CreateMinuteData = function (yClose) {
var minuteData = { Data: [], Max: null, Min: null, Count: 242, YClose: yClose };
var TEST_DATA = [0.01, -0.02, 0.03, -0.05, -0.01, 0.02, 0.05, 0.01, 0.04, -0.04];
var value = yClose;
for (var i = 0; i < minuteData.Count; ++i) {
var index = Math.ceil(Math.random() * 10);
value += yClose * TEST_DATA[index % TEST_DATA.length]; //生成模拟的数据
minuteData.Data[i] = value;
if (minuteData.Max == null || minuteData.Max < value) minuteData.Max = value;
if (minuteData.Min == null || minuteData.Min > value) minuteData.Min = value;
}
if (value > yClose) {
minuteData.Color = "rgb(255,0,0)";
minuteData.AreaColor = "rgba(255,0,0,0.2)";
} else if (value < yClose) {
minuteData.Color = "rgb(4,139,34)";
minuteData.AreaColor = "rgba(4,139,34,0.2)";
}
return minuteData;
};
HQData.Report_RequestStockSortData = function (data, callback) {
var blockID = data.Request.Data.symbol; //板块代码
var range = data.Request.Data.range; //排序范围
var column = data.Request.Data.column; //排序列信息
var sortType = data.Request.Data.sort; //排序方向
var pageSize = data.Request.Data.pageSize;
data.PreventDefault = true;
var start = range.start;
var end = range.end;
if (start > 0) start -= pageSize;
if (start < 0) start = 0;
end += pageSize;
var aryData = data.Self.Data.Data.slice(); //所有的股票
var mapStock = new _map2.default();
var count = end - start + 1;
for (var i = 0; i < count; i++) {
var index = Math.floor(Math.random() * (aryData.length - 1));
var symbol = aryData[index];
mapStock.set(symbol, { Symbol: symbol, Index: i + start, Data: null });
aryData.splice(index, 1);
}
if (IFrameSplitOperator.IsNonEmptyArray(_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol)) {
for (var i = 0; i < _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length; ++i) {
var symbol = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol[i];
if (!mapStock.has(symbol)) continue;
var item = mapStock.get(symbol);
var name = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.name[i];
var price = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.close[i];
var vol = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.vol[i];
var newItem = [symbol, name, _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.yclose[i], _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.open[i], _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.high[i], _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.low[i], price, vol, _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.amount[i]];
//买价 量
newItem[9] = price + 0.05;
newItem[10] = 10;
//卖价 量
newItem[11] = price - 0.06;
newItem[12] = 5;
//均价
newItem[13] = price - 0.03;
//内盘
newItem[18] = vol / 4;
//外盘
newItem[19] = vol / 5;
newItem[14] = vol * 1.5; //流通股本
newItem[15] = vol * 1.8; //总股本
//换手率
newItem[23] = Math.round(Math.random() * 60) / 100;
//名字字段
var symbolEx = { Text: name };
if (i % 20 == 5) symbolEx.Symbol = { Family: 'iconfont', Size: 16, Data: [{ Text: "\uE629", Color: 'rgb(255,165,0)' }, { Text: "\uE627", Color: '#1c65db' }] };else if (i % 20 == 9) symbolEx.Symbol = { Family: 'iconfont', Size: 16, Data: [{ Text: "\uE629", Color: 'rgb(255,165,0)' }] };else if (i % 20 == 18) symbolEx.Symbol = { Family: 'iconfont', Size: 16, Data: [{ Text: "\uE627", Color: '#1c65db' }] };
newItem[27] = symbolEx;
//扩展数据 (定制数据)
var extendData = [];
newItem[30] = extendData;
//行业
extendData[0] = "行业X";
//地区
extendData[1] = "地区X";
//PE|PB
extendData[2] = Math.round(Math.random() * 60) / 100;
extendData[3] = Math.round(Math.random() * 60) / 100;
extendData[4] = Math.round(Math.random() * 60) / 100;
extendData[5] = Math.round(Math.random() * 60) / 100;
//周涨幅
extendData[6] = Math.round(Math.random() * 60) / 100;
extendData[7] = Math.round(Math.random() * 60) / 100;
extendData[8] = Math.round(Math.random() * 60) / 100;
item.Data = newItem;
}
}
var hqchartData = { data: [], index: [], filedindex: column.index, sort: sortType, symbol: blockID };
var _iteratorNormalCompletion2 = true;
var _didIteratorError2 = false;
var _iteratorError2 = undefined;
try {
for (var _iterator2 = (0, _getIterator3.default)(mapStock), _step2; !(_iteratorNormalCompletion2 = (_step2 = _iterator2.next()).done); _iteratorNormalCompletion2 = true) {
var mapItem = _step2.value;
var item = mapItem[1];
if (!item.Data) continue;
hqchartData.data.push(item.Data);
hqchartData.index.push(item.Index);
}
} catch (err) {
_didIteratorError2 = true;
_iteratorError2 = err;
} finally {
try {
if (!_iteratorNormalCompletion2 && _iterator2.return) {
_iterator2.return();
}
} finally {
if (_didIteratorError2) {
throw _iteratorError2;
}
}
}
callback(hqchartData);
};
HQData.Report_RequestVirtualStockData = function (data, callback) {
var blockID = data.Request.Data.symbol; //板块代码
var range = data.Request.Data.range; //排序范围
var column = data.Request.Data.column; //排序列信息
var sortType = data.Request.Data.sort; //排序方向
var pageSize = data.Request.Data.pageSize;
data.PreventDefault = true;
var start = range.start;
var end = range.end;
if (start > 0) start -= pageSize;
if (start < 0) start = 0;
end += pageSize;
var count = end - start + 1;
var aryData = [];
var aryIndex = [];
if (IFrameSplitOperator.IsNonEmptyArray(_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol)) {
var randomStart = Math.floor(Math.random() * (_shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length - 1));
var symbolCount = _shsz_stock_data.SHSZ_STOCK_LIST_TEST_DATA.symbol.length;
for (var i = 0; i < count; ++i) {