| | |
| | | }; |
| | | |
| | | HQData.NetworkFilter = function (data, callback) { |
| | | HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data); |
| | | HQData.Log(`网络过滤器 [HQData::NetworkFilter] ${HQData.Explain}`, data); |
| | | |
| | | switch (data.Name) { |
| | | case "MinuteChartContainer::RequestMinuteData": // 分时图数据对接 |
| | |
| | | break; |
| | | case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新 |
| | | HQData.RequestRealtimeData(data, callback); |
| | | // HQData.RequestHistoryData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestFlowCapitalData": // 流通股本 |
| | | HQData.RequestFlowCapitalData(data, callback); |
| | |
| | | HQData.RequestHistoryMinuteData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新 |
| | | HQData.RequestMinuteRealtimeData(data, callback); |
| | | // HQData.RequestMinuteRealtimeData(data, callback); |
| | | HQData.RequestHistoryMinuteData(data, callback); |
| | | break; |
| | | } |
| | | }; |
| | |
| | | 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' |
| | |
| | | return { |
| | | Url: url, |
| | | Symbol: symbol, |
| | | InternalSymbol: internalSymbol, |
| | | // InternalSymbol: internalSymbol, |
| | | Period: period, |
| | | Right: right, |
| | | }; |
| | |
| | | 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; // 复权 |
| | | |
| | | console.log(`[HQData::RequestHistoryData] Symbol=${symbol}`); |
| | | console.log(`日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`); |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, null); |
| | | |
| | | // return |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | |
| | | // |
| | | yClose = close; |
| | | } |
| | | } |
| | | |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData); |
| | | callback(hqChartData); |
| | | // var aaa = [ |
| | | // "20250829", |
| | | // yClose, |
| | | // Math.random() * 100, |
| | | // Math.random() * 100, |
| | | // Math.random() * 100, |
| | | // Math.random() * 100, |
| | | // Math.random() * 100, |
| | | // Math.random() * 100, |
| | | // ]; |
| | | // hqChartData.data.push(aaa); |
| | | } |
| | | console.log("全量数据", hqChartData); |
| | | |
| | | // if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData); |
| | | callback(hqChartData); |
| | | // } |
| | | }; |
| | | |
| | | // 日线实时数据更新 |
| | | HQData.RequestRealtimeData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | |
| | | 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}`, |
| | | obj |
| | | ); |
| | | |
| | | if (!obj.Url) return; |
| | | |
| | | // return |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function (recvData) { |
| | | HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj }); |
| | | HQData.RecvRealtimeData(recvData, callback, { |
| | | Data: data, |
| | | Obj: obj, |
| | | }); |
| | | }, |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvRealtimeData = function (recvData, callback, option) { |
| | | var data = recvData.data; |
| | | // var data = recvData.data; |
| | | var data = JSON.parse(recvData); |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | var yClose = "123"; |
| | | console.log("recvDatadata====", data); |
| | | if (!data || !data.klines) return; |
| | | 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 date = moment.unix(Date.parse(item[0])).format("YYYYMMDD"); |
| | | // console.log("recvDatadata====", data, kLines); |
| | | console.log("recvDatadata====", kLines, option); |
| | | // var stock = { symbol: option.Obj.Symbol, name: data.name || "" }; |
| | | // if (!data || !data.klines) return; |
| | | // 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 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; |
| | | // } |
| | | // } |
| | | // var hqchartData = { code: 0, stock: [stock] }; |
| | | |
| | | var hqchartData = { code: 0, stock: [stock] }; |
| | | // HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData); |
| | | // callback(hqchartData); |
| | | |
| | | //#region --------------------------- |
| | | var strItem = data[data.length - 1]; |
| | | |
| | | 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 + ""); |
| | | yClose = close; |
| | | |
| | | // var newItem = { |
| | | // name: "123", |
| | | // // symbol: option.Obj.Symbol, |
| | | // date, |
| | | // yClose, |
| | | // open, |
| | | // high: Math.random() * 100, |
| | | // low, |
| | | // close, |
| | | // vol, |
| | | // amount, |
| | | // }; |
| | | |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount]; |
| | | |
| | | var hqchartData = { |
| | | code: 0, |
| | | stock: [newItem], |
| | | }; |
| | | console.log("hqchartData", hqchartData); |
| | | |
| | | HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData); |
| | | callback(hqchartData); |
| | | //#endregion |
| | | }; |
| | | // 分钟全量数据下载 |
| | | HQData.RequestHistoryMinuteData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | |
| | | console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`); |
| | | console.log( |
| | | `分钟全量数据下载 [HQData::RequestHistoryMinuteData] Symbol=${symbol}` |
| | | ); |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null); |
| | | |
| | | $.ajax({ |
| | |
| | | hqChartData.name = "123"; |
| | | |
| | | var yClose = ""; |
| | | console.log("recvData===data.name22", recvData, kLines); |
| | | // console.log("recvData===data.name22", recvData, kLines); |
| | | console.log("recvData===data.name22", kLines); |
| | | recvData = JSON.parse(recvData); |
| | | |
| | | if (kLines.type === "SZHB") { |
| | |
| | | callback(hqChartData); |
| | | } |
| | | }; |
| | | |
| | | // 分钟增量数据更新 |
| | | HQData.RequestMinuteRealtimeData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | |
| | | if (dateRange && dateRange.End && dateRange.End.Date > 0) |
| | | option.End = dateRange.End.Date; |
| | | |
| | | console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`, obj.Url); |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option); |
| | | // console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`, obj.Url); |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, option); |
| | | // var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option); |
| | | |
| | | $.ajax({ |
| | | url: obj.Url, |