| | |
| | | }; |
| | | |
| | | 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": // 分时图数据对接 |
| | |
| | | HQData.RequestHistoryData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestRealtimeData": // 日线实时数据更新 |
| | | HQData.RequestRealtimeData(data, callback); |
| | | // HQData.RequestHistoryData(data, callback); |
| | | // HQData.RequestRealtimeData(data, callback); |
| | | break; |
| | | case "KLineChartContainer::RequestFlowCapitalData": // 流通股本 |
| | | HQData.RequestFlowCapitalData(data, callback); |
| | | // HQData.RequestFlowCapitalData(data, callback); |
| | | break; |
| | | |
| | | case "KLineChartContainer::ReqeustHistoryMinuteData": // 分钟全量数据下载 |
| | |
| | | break; |
| | | case "KLineChartContainer::RequestMinuteRealtimeData": // 分钟增量数据更新 |
| | | // HQData.RequestMinuteRealtimeData(data, callback); |
| | | HQData.RequestHistoryMinuteData(data, callback); |
| | | break; |
| | | } |
| | | }; |
| | |
| | | // if (kLines.type === 'IN' ||kLines.type === 'US') { |
| | | url = |
| | | window.globalVar + |
| | | `/api/stock/getKData.do?pid=${kLines.pid}&interval=1&stockType=${kLines.type}`; |
| | | `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 = 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 = 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 { |
| | |
| | | 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' |
| | |
| | | const interval = ["D", "W", "M"][period]; |
| | | var url = |
| | | window.globalVar + |
| | | `/api/stock/getKData.do?pid=${kLines.pid}&interval=${interval}&stockType=${kLines.type}`; |
| | | `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}` |
| | | // 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; |
| | |
| | | return { |
| | | Url: url, |
| | | Symbol: symbol, |
| | | // InternalSymbol: internalSymbol, |
| | | InternalSymbol: internalSymbol, |
| | | Period: period, |
| | | Right: right, |
| | | }; |
| | |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | url = |
| | | window.globalVar + |
| | | `/api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`; |
| | | `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`; |
| | | } |
| | | |
| | | return { |
| | |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | |
| | | console.log(`日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`); |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, null); |
| | | |
| | | // return |
| | | console.log( |
| | | `日线全量数据下载 [HQData::RequestHistoryData] Symbol=${symbol}`, |
| | | obj.Url |
| | | ); |
| | | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | |
| | | // |
| | | yClose = close; |
| | | } |
| | | |
| | | // 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) { |
| | | if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData); |
| | | callback(hqChartData); |
| | | // } |
| | | } |
| | | }; |
| | | // 日线实时数据更新 |
| | | HQData.RequestRealtimeData = function (data, callback) { |
| | |
| | | if (dateRange && dateRange.End && dateRange.End.Date > 0) |
| | | option.End = dateRange.End.Date; |
| | | |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, option); |
| | | console.log( |
| | | `日线实时数据更新 [HQData::RequestRealtimeData] Symbol=${symbol}`, |
| | | obj |
| | | `日线实时数据更新 [HQData::RequestRealtimeData] Symbol=${symbol}` |
| | | ); |
| | | var obj = HQData.GetKLineApiUrl(symbol, period, right, option); |
| | | |
| | | 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 = JSON.parse(recvData); |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | var yClose = "123"; |
| | | // console.log("recvDatadata====", data, kLines); |
| | | console.log("recvDatadata====", kLines, option); |
| | | var data = recvData.data; |
| | | // var stock = { symbol: option.Obj.Symbol, name: 'K线图' } |
| | | // 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 yClose = data[0].c |
| | | // for (var i = 0; i < data.length; ++i) { |
| | | // var item = data[i] |
| | | // // var item = strItem.split(',') |
| | | // // var today = new Date(item.t) |
| | | // // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | // var date = moment.unix(item.t).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.o) |
| | | // var close = parseFloat(item.c) |
| | | // var high = parseFloat(item.h) |
| | | // var low = parseFloat(item.l) |
| | | // var vol = parseFloat(item.vo) |
| | | // var amount = parseFloat(item.v) |
| | | |
| | | // 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] }; |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | // var yClose = data.preKPrice; |
| | | var yClose = "123"; |
| | | 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 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"); |
| | | |
| | | // HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData); |
| | | // callback(hqchartData); |
| | | 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]); |
| | | |
| | | //#region --------------------------- |
| | | var strItem = data[data.length - 1]; |
| | | stock.yclose = yClose; |
| | | stock.open = open; |
| | | stock.high = high; |
| | | stock.low = low; |
| | | stock.price = close; |
| | | stock.vol = vol; |
| | | stock.amount = amount; |
| | | stock.date = date; |
| | | |
| | | 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; |
| | | } |
| | | } |
| | | // if (kLines.type === 'qh') { |
| | | // for (var x = 0; x < recvData.list.length; ++x) { |
| | | // var strItem2 = recvData.list[x] |
| | | // // var item = strItem.split(',') |
| | | // // var today = new Date(strItem.t) |
| | | // // var date = today.getFullYear() * 10000 + (today.getMonth() + 1) * 100 + today.getDate() |
| | | // var date2 = moment.unix(strItem2.ctm).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 newItem2 = [date2, yClose, open2, high2, low2, close2, vol2, amount2] |
| | | // hqChartData.data.push(newItem2) |
| | | // // |
| | | // yClose = close |
| | | // } |
| | | // } |
| | | |
| | | // var newItem = { |
| | | // name: "123", |
| | | // // symbol: option.Obj.Symbol, |
| | | // date, |
| | | // yClose, |
| | | // open, |
| | | // high: Math.random() * 100, |
| | | // low, |
| | | // close, |
| | | // vol, |
| | | // amount, |
| | | // }; |
| | | var hqchartData = { code: 0, stock: [stock] }; |
| | | |
| | | var newItem = [date, yClose, open, high, low, close, vol, amount]; |
| | | |
| | | var hqchartData = { |
| | | code: 0, |
| | | stock: [newItem], |
| | | }; |
| | | console.log("hqchartData", hqchartData); |
| | | |
| | | // if (option.Data.Self.IsDestroy === false) { |
| | | HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData); |
| | | callback(hqchartData); |
| | | //#endregion |
| | | // } |
| | | }; |
| | | // 分钟全量数据下载 |
| | | HQData.RequestHistoryMinuteData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | | var right = data.Self.Right; // 复权 |
| | | |
| | |
| | | hqChartData.name = "123"; |
| | | |
| | | var yClose = ""; |
| | | // console.log("recvData===data.name22", recvData, kLines); |
| | | console.log("recvData===data.name22", kLines); |
| | | console.log("recvData===data.name22", recvData, 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.GetKLineApiUrl(symbol, period, right, option); |
| | | // 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, |
| | |
| | | data: [], |
| | | ver: 2.0, |
| | | symbol: option.Obj.Symbol, |
| | | name: data.name || "", |
| | | name: data.name, |
| | | }; // 更新数据使用2.0版本格式 |
| | | |
| | | var yClose = data.preKPrice; |