| | |
| | | // import Chart from '../../jscommon/umychart.vue/umychart.vue.js' |
| | | // var HQChart={ Chart:Chart }; |
| | | |
| | | function HQData() {} |
| | | 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.SetMinuteChartCoordinate = function() { |
| | | HQData.SetMinuteChartCoordinate = function () { |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsShowAvPrice = upperSymbol => { |
| | | return HQData.IsShowAvPrice(upperSymbol); |
| | | }; |
| | |
| | | }; // 获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后 |
| | | }; |
| | | |
| | | HQData.NetworkFilter = function(data, callback) { |
| | | HQData.NetworkFilter = function (data, callback) { |
| | | HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data); |
| | | |
| | | switch (data.Name) { |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestMinuteData = function(data, callback) { |
| | | HQData.RequestMinuteData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | 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: [] }; |
| | | // stock.name = data.name |
| | |
| | | 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); |
| | | if (typeof recvData === 'string') { |
| | | recvData = JSON.parse(recvData); |
| | | } |
| | | |
| | | console.log('recvData: ', recvData) |
| | | |
| | | // var date = moment.unix(strItem.t || strItem.id).format("YYYYMMDD"); |
| | | // // |
| | | // var open = parseFloat(strItem.o || strItem.open); |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestMinuteDaysData = function(data, callback) { |
| | | HQData.RequestMinuteDaysData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var dayCount = data.Request.Data.daycount; |
| | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | success: function (recvData) { |
| | | if ( |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsSHFE(symbolUpper) || |
| | | HQChart.Chart.MARKET_SUFFIX_NAME.IsDCE(symbolUpper) || |
| | |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvMinuteDaysData = function(recvData, callback, option) { |
| | | HQData.RecvMinuteDaysData = function (recvData, callback, option) { |
| | | var data = recvData.data; |
| | | var aryDayData = []; |
| | | var itemDay = null; |
| | |
| | | }; |
| | | |
| | | // 期货模式 |
| | | HQData.RecvMinuteDaysDataV2 = function(recvData, callback, option) { |
| | | HQData.RecvMinuteDaysDataV2 = function (recvData, callback, option) { |
| | | var data = recvData.data; |
| | | var aryDayData = []; |
| | | var yClose = data.preClose; |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.CorrectMinuteData = function(minuteData, xDatetime) { |
| | | HQData.CorrectMinuteData = function (minuteData, xDatetime) { |
| | | if (minuteData.length === xDatetime.length) return null; |
| | | |
| | | var mapData = new Map(); |
| | |
| | | return newMinuteData; |
| | | }; |
| | | // HQChart内置代码转成东方财富代码 |
| | | HQData.GetInternalSymbol = function(symbol) { |
| | | HQData.GetInternalSymbol = function (symbol) { |
| | | var aryData = symbol.split("."); |
| | | var symbolUpper = symbol.toUpperCase(); |
| | | var arySymbol = ""; |
| | |
| | | } |
| | | */ |
| | | }; |
| | | HQData.GetMinuteApiUrl = function(symbol, dayCount) { |
| | | 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` |
| | |
| | | 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}`; |
| | | // debugger; |
| | | if (kLines.type == "HJ") { |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=8888&interval=1&stockType=${kLines.name}`; |
| | | } else { |
| | | 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}` |
| | |
| | | }; |
| | | }; |
| | | |
| | | HQData.IsSHSZ = function(symbol) { |
| | | HQData.IsSHSZ = function (symbol) { |
| | | // 是否是A股 |
| | | return HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZ(symbol); |
| | | }; |
| | | |
| | | HQData.IsChinaFutures = function(symbol) { |
| | | HQData.IsChinaFutures = function (symbol) { |
| | | // 国内期货 |
| | | return HQChart.Chart.MARKET_SUFFIX_NAME.IsChinaFutures(symbol); |
| | | }; |
| | | |
| | | HQData.IsShowAvPrice = function(upperSymbol) { |
| | | HQData.IsShowAvPrice = function (upperSymbol) { |
| | | // 是否显示均价 |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsLME(upperSymbol)) return false; |
| | | if (upperSymbol === "UDI_100.ET") return false; |
| | |
| | | return true; |
| | | }; |
| | | // 是否显示第2个成交量图 |
| | | HQData.IsShowVolChart = function(upperSymbol) { |
| | | HQData.IsShowVolChart = function (upperSymbol) { |
| | | if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) |
| | | return false; |
| | | if (upperSymbol === "UDI_100.ET") return false; |
| | |
| | | // |
| | | // 美国洲际交易所 重柴油 |
| | | // |
| | | HQData.GetCustomTradeTimeData = function(key) { |
| | | HQData.GetCustomTradeTimeData = function (key) { |
| | | // 美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗???? |
| | | if (key === "IPE_G") { |
| | | // 7:50-6:00 |
| | |
| | | // 美股走势图X轴坐标 |
| | | // |
| | | /// ///////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateUSAData = function(minuteStringData) { |
| | | HQData.CreateUSAData = function (minuteStringData) { |
| | | const TIME_SPLIT = [ |
| | | { Start: 2130, End: 2359 }, |
| | | { Start: 0, End: 400 } |
| | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetUSAData = function(upperSymbol, width) { |
| | | HQData.GetUSAData = function (upperSymbol, width) { |
| | | const SHZE_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | |
| | | Count: 391, //! ! 一共的分钟数据个数,不要填错了 |
| | | MiddleCount: 195, // Count/2 就可以。 |
| | | |
| | | GetData: function(width) { |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 400) return this.Simple; |
| | | |
| | |
| | | // A股走势图X轴坐标 |
| | | // |
| | | /// //////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateSHSZData = function(minuteStringData) { |
| | | HQData.CreateSHSZData = function (minuteStringData) { |
| | | const TIME_SPLIT = [ |
| | | { Start: 930, End: 1130 }, |
| | | { Start: 1301, End: 1500 } |
| | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetSHSZData = function(upperSymbol, width) { |
| | | HQData.GetSHSZData = function (upperSymbol, width) { |
| | | const SHZE_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | |
| | | Count: 241, //! ! 一共的分钟数据个数,不要填错了 |
| | | MiddleCount: 121, // Count/2 就可以。 |
| | | |
| | | GetData: function(width) { |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 400) return this.Simple; |
| | | |
| | |
| | | // 港股走势图X轴坐标 |
| | | // |
| | | /// //////////////////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateHKData = function(minuteStringData) { |
| | | HQData.CreateHKData = function (minuteStringData) { |
| | | const TIME_SPLIT = [ |
| | | { Start: 930, End: 1200 }, |
| | | { Start: 1301, End: 1600 } |
| | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetHKData = function(upperSymbol, width) { |
| | | HQData.GetHKData = function (upperSymbol, width) { |
| | | const HK_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | |
| | | Count: 331, |
| | | MiddleCount: 150, |
| | | |
| | | GetData: function(width) { |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 450) return this.Simple; |
| | | |
| | |
| | | // 外汇走势图X轴坐标 |
| | | // |
| | | /// ///////////////////////////////////////////////////////////////////////////////////// |
| | | HQData.CreateForeignExchangeData = function(minuteStringData) { |
| | | HQData.CreateForeignExchangeData = function (minuteStringData) { |
| | | // 外汇 5:00 - 4:59 |
| | | const TIME_SPLIT = [ |
| | | { Start: 500, End: 2359 }, |
| | |
| | | return minuteStringData.CreateTimeData(TIME_SPLIT); |
| | | }; |
| | | |
| | | HQData.GetForeignExchangeData = function(upperSymbol, width) { |
| | | HQData.GetForeignExchangeData = function (upperSymbol, width) { |
| | | const FOREX_MINUTE_X_COORDINATE = { |
| | | // 完整模式 |
| | | Full: [ |
| | |
| | | Count: 1440, |
| | | MiddleCount: 600, |
| | | |
| | | GetData: function(width) { |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 450) return this.Simple; |
| | | |
| | |
| | | // 美元指数 |
| | | // |
| | | /// //////////////////////////////////////////////////////////////////// |
| | | HQData.GetETTimeData = function(upperSymbol, minuteStringData) { |
| | | HQData.GetETTimeData = function (upperSymbol, minuteStringData) { |
| | | if (upperSymbol === "UDI_100.ET") { |
| | | // 美元指数 6:00 - 5:59 |
| | | const TIME_SPLIT = [ |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.GetETData = function(upperSymbol) { |
| | | HQData.GetETData = function (upperSymbol) { |
| | | if (upperSymbol === "UDI_100.ET") { |
| | | const data = { |
| | | // 完整模式 |
| | |
| | | Count: 1440, |
| | | MiddleCount: 600, |
| | | |
| | | GetData: function(width) { |
| | | GetData: function (width) { |
| | | if (width < 200) return this.Min; |
| | | else if (width < 450) return this.Simple; |
| | | |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.GetETDecimal = function(symbol) { |
| | | HQData.GetETDecimal = function (symbol) { |
| | | var upperSymbol = symbol.toUpperCase(); |
| | | if (upperSymbol === "UDI_100.ET") return 2; |
| | | |
| | |
| | | // K线数据对接 |
| | | // |
| | | /// ////////////////////////////////////////////////////////////////////////////// |
| | | HQData.GetKLineApiUrl = function(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 |
| | | |
| | |
| | | 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}`; |
| | | |
| | | if (kLines.type === 'HJ') { |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=8888&interval=${interval}&stockType=${kLines.name}`; |
| | | } else { |
| | | 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}`; |
| | | // } |
| | | const interval2 = [1440, 10080, 10080][period]; |
| | | // const interval2 = [1440, 10080, 43200][period] |
| | |
| | | }; |
| | | }; |
| | | |
| | | HQData.GetMinuteKLineApiUrl = function(symbol, period, right, option) { |
| | | HQData.GetMinuteKLineApiUrl = function (symbol, period, right, option) { |
| | | var internalSymbol = HQData.GetInternalSymbol(symbol); |
| | | var internalPeriod = HQData.GetInternalPeriod(period); |
| | | var internalRight = HQData.GetInternalRight(right); |
| | |
| | | var beginDate = option.End; |
| | | } else { |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`; |
| | | if (kLines.type === 'HJ') { |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=8888&interval=${internalPeriod}&stockType=${kLines.name}`; |
| | | } else { |
| | | url = |
| | | window.globalVar + |
| | | `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`; |
| | | } |
| | | |
| | | // url = |
| | | // window.globalVar + |
| | | // `api/stock/getKData.do?pid=${kLines.pid}&interval=${internalPeriod}&stockType=${kLines.type}`; |
| | | |
| | | } |
| | | |
| | |
| | | }; |
| | | }; |
| | | |
| | | HQData.GetInternalPeriod = function(periodID) { |
| | | HQData.GetInternalPeriod = function (periodID) { |
| | | var MAP_PERIOD = new Map([ |
| | | [0, 101], // day |
| | | [1, 102], // week |
| | |
| | | return MAP_PERIOD.get(periodID); |
| | | }; |
| | | |
| | | HQData.GetInternalRight = function(right) { |
| | | HQData.GetInternalRight = function (right) { |
| | | if (right === 0) return 0; |
| | | else if (right === 1) return 1; |
| | | else return 2; |
| | | }; |
| | | // 是否支持复权 |
| | | HQData.IsEnableRight = function(period, symbol) { |
| | | HQData.IsEnableRight = function (period, symbol) { |
| | | var symbolUpper = null; |
| | | symbolUpper = symbol.toUpperCase(); |
| | | // var symbolUpper = symbol.toUpperCase() |
| | |
| | | return false; |
| | | }; |
| | | |
| | | HQData.RequestFlowCapitalData = function(data, callback) { |
| | | HQData.RequestFlowCapitalData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var hqChartData = { code: 0, stock: [] }; // 如果没有数据就填空 |
| | | |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestHistoryData = function(data, callback) { |
| | | HQData.RequestHistoryData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | success: function (recvData) { |
| | | HQData.RecvHistoryData(recvData, callback, { Data: data, Obj: obj }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvHistoryData = function(recvData, callback, option) { |
| | | HQData.RecvHistoryData = function (recvData, callback, option) { |
| | | // var data = recvData.data |
| | | |
| | | var hqChartData = { code: 0, data: [] }; |
| | |
| | | const kLines = JSON.parse(window.localStorage.getItem("kLine")); |
| | | // var yClose = data.preKPrice |
| | | var yClose = "500"; |
| | | recvData = JSON.parse(recvData); |
| | | if (typeof recvData === 'string') { |
| | | recvData = JSON.parse(recvData); |
| | | } |
| | | |
| | | if (kLines.type === "SZHB") { |
| | | recvData = recvData.data; |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestRealtimeData = function(data, callback) { |
| | | HQData.RequestRealtimeData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | success: function (recvData) { |
| | | HQData.RecvRealtimeData(recvData, callback, { Data: data, Obj: obj }); |
| | | } |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvRealtimeData = function(recvData, callback, option) { |
| | | 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 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) { |
| | | 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}`); |
| | | console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`, data.Request); |
| | | var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, null); |
| | | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | success: function (recvData) { |
| | | HQData.RecvHistoryMinuteData(recvData, callback, { |
| | | Data: data, |
| | | Obj: obj |
| | |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvHistoryMinuteData = function(recvData, callback, option) { |
| | | HQData.RecvHistoryMinuteData = function (recvData, callback, option) { |
| | | var hqChartData = { code: 0, data: [] }; |
| | | hqChartData.symbol = option.Obj.Symbol; |
| | | // hqChartData.name = data.name |
| | |
| | | |
| | | var yClose = ""; |
| | | console.log("recvData===data.name22", recvData, kLines); |
| | | recvData = JSON.parse(recvData); |
| | | if (typeof recvData === 'string') { |
| | | recvData = JSON.parse(recvData); |
| | | } |
| | | |
| | | if (kLines.type === "SZHB") { |
| | | recvData = recvData.data; |
| | |
| | | } |
| | | }; |
| | | |
| | | HQData.RequestMinuteRealtimeData = function(data, callback) { |
| | | HQData.RequestMinuteRealtimeData = function (data, callback) { |
| | | data.PreventDefault = true; |
| | | var symbol = data.Request.Data.symbol[0]; // 请求的股票代码 |
| | | var period = data.Self.Period; // 周期 |
| | |
| | | $.ajax({ |
| | | url: obj.Url, |
| | | type: "GET", |
| | | success: function(recvData) { |
| | | success: function (recvData) { |
| | | HQData.RecvMinuteRealtimeData(recvData, callback, { |
| | | Data: data, |
| | | Obj: obj |
| | |
| | | }); |
| | | }; |
| | | |
| | | HQData.RecvMinuteRealtimeData = function(recvData, callback, option) { |
| | | HQData.RecvMinuteRealtimeData = function (recvData, callback, option) { |
| | | var data = recvData.data; |
| | | var hqChartData = { |
| | | code: 0, |