From f15ad3456b47e43646234b9c91c3ddd77ab2cd02 Mon Sep 17 00:00:00 2001
From: dcc <dcc@163.com>
Date: Wed, 05 Jun 2024 10:05:13 +0800
Subject: [PATCH] 123
---
src/eastmoney/HQData.js | 2699 +++++++++++++++++++++++++++++++++--------------------------
1 files changed, 1,520 insertions(+), 1,179 deletions(-)
diff --git a/src/eastmoney/HQData.js b/src/eastmoney/HQData.js
index 44929f8..5ab9adc 100644
--- a/src/eastmoney/HQData.js
+++ b/src/eastmoney/HQData.js
@@ -1,466 +1,700 @@
/*
Copyright (c) 2018 jones
-
+
http://www.apache.org/licenses/LICENSE-2.0
开源项目 https://github.com/jones2000/HQChart
-
+
jones_2000@163.com
行情数据对接,使用东方财富网页数据做为案例的测试数据源
教程中所有的实例中使用的数据都来自互联网,或测试数据。仅用于学习HQChart图形使用. 教程禁止用于商业产品
*/
-import $, { hasData } from 'jquery'
-import HQChart from 'hqchart'
+import $ from "jquery";
+// import $, { hasData } from 'jquery'
+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 };
+// 源码调试用
+// import Chart from '../../jscommon/umychart.vue/umychart.vue.js'
+// var HQChart={ Chart:Chart };
-function HQData() { }
+function HQData() {}
+window.globalVar = apiRrl.baseURL;
+HQData.Explain = "东财财富网接口";
-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() {
+ 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.Log=HQChart.Chart.JSConsole.Chart.Log;
+ // 美股分时图坐标
+ 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轴刻度信息
-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); }
+ // 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().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().CreateBJData = () => {
+ return HQData.CreateSHSZData(
+ HQChart.Chart.JSChart.GetMinuteTimeStringData()
+ );
+ }; // 替换交易时间段
+ HQChart.Chart.JSChart.GetMinuteCoordinateData().GetBJData = (
+ upperSymbol,
+ width
+ ) => {
+ return HQData.GetSHSZData(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().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().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().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: "花生"
+ });
- //港股分时图坐标
- 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轴刻度信息
+ // 芝加哥期货交易所
+ 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: "小型道指"
+ });
- //外汇分时图坐标
- 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 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 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:'花生' });
+ // 自定义类型
+ 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=盘后
+};
- //芝加哥期货交易所
- 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:'小型道指' });
+HQData.NetworkFilter = function(data, callback) {
+ HQData.Log(`[HQData::NetworkFilter] ${HQData.Explain}`, data);
- //美国洲际交易所
- 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:'低硫柴油' });
+ switch (data.Name) {
+ case "MinuteChartContainer::RequestMinuteData": // 分时图数据对接
+ HQData.RequestMinuteData(data, callback);
+ break;
+ case "MinuteChartContainer::RequestHistoryMinuteData":
+ HQData.RequestMinuteDaysData(data, callback);
+ break;
- //自定义类型
- 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=盘后
+ 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;
+ }
+};
+HQData.RequestMinuteData = function(data, callback) {
+ data.PreventDefault = true;
-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 '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;
+ 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(obj, "======");
+ $.ajax({
+ url: obj.Url,
+ type: "GET",
+ success: function(recvData) {
+ HQData.RecvMinuteData(recvData, callback, { Data: data, Obj: obj });
}
-}
+ });
+};
-HQData.RequestMinuteData=function(data, callback)
-{
- data.PreventDefault=true;
- 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);
+HQData.RecvMinuteData = function(recvData, callback, option) {
+ // var data = recvData.data
+ 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);
+ // var isChinaFutrues = HQData.IsChinaFutures(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);
+ // 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];
+ 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;
- $.ajax(
- {
- url: obj.Url,
- type: "GET",
- success:function(recvData)
- {
- HQData.RecvMinuteData(recvData, callback, { Data:data, Obj:obj });
+ stock.date = date;
+ stock.minute.push(stockItem);
+ }
+
+ var hqchartData = { stock: [stock], code: 0 };
+
+ if (option.Data.Self.IsDestroy === false) {
+ 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);
+
+ $.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);
+
+ 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 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;
+ }
+
+ for (var j = 0; i < data.trends.length; ++i, ++j) {
+ 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 (j % minuteCount === 0) {
+ 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])
+ };
+
+ 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
+ ]);
+ }
+
+ if (itemDay && itemDay.minute.length > 0) aryDayData.push(itemDay);
+
+ aryDayData = aryDayData.reverse();
+
+ 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.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 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 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
+ ]);
+
+ 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);
+
+ 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);
+ if (newMinuteData) {
+ for (var j = 0; j < newMinuteData.length; ++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;
+ } else {
+ preClose = item[4];
+ preAvprice = item[7];
+ preDate = item[8];
}
- });
-
-}
-
-HQData.RecvMinuteData=function(recvData, callback, option)
-{
- var data=recvData.data;
-
- var stock={symbol:option.Obj.Symbol, minute:[] };
- stock.name=data.name;
- stock.yclose=data.preClose;
-
- 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); //伦敦金属交易所
- if (isChinaFutrues) stock.yclearing=data.preSettlement; //期货昨结算价
-
- 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])); // 不兼容 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 stockItem=
- {
- date:date,
- time:time,
- open:parseFloat(item[1]),
- high:parseFloat(item[2]),
- low:parseFloat(item[3]),
- price:parseFloat(item[4]),
- vol:parseFloat(item[5]),
- 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);
+ }
+ itemDay.minute = newMinuteData;
+ } else {
+ var item = itemDay.minute[itemDay.minute.length - 1];
+ preClose = item[4];
+ preAvprice = item[7];
+ preDate = item[8];
}
+ }
- var hqchartData={stock:[stock], code:0 };
+ aryDayData = aryDayData.reverse();
- if (option.Data.Self.IsDestroy==false)
- {
-
- HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData)
- callback(hqchartData);
- }
-}
+ var hqchartData = {
+ symbol: option.Obj.Symbol,
+ name: data.name,
+ data: aryDayData,
+ code: 0
+ };
-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);
+ if (option.Data.Self.IsDestroy === false) {
+ HQData.Log("[HQData.RecvMinuteDaysData] hqchartData ", hqchartData);
+ callback(hqchartData);
+ }
+};
- $.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.CorrectMinuteData = function(minuteData, xDatetime) {
+ if (minuteData.length === xDatetime.length) return null;
-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 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 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 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;
- }
-
- for(var j=0;i<data.trends.length; ++i, ++j)
- {
- 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();
+ for (var i = 0; i < minuteData.length; ++i) {
+ var item = minuteData[i];
+ var time = item[0];
- if (j%minuteCount==0)
- {
- if (itemDay && itemDay.minute.length>0) aryDayData.push(itemDay);
- itemDay={ minute:[], date:date, yclose: yClose };
- }
+ var findItem = mapData.get(time);
+ findItem.Data = item;
+ }
- 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 newMinuteData = [];
+ for (var item of mapData) {
+ var value = item[1];
- if (isStockA) stockItem.vol*=100;
+ if (value.Data) newMinuteData[value.Index] = value.Data;
+ else newMinuteData[value.Index] = [value.Time];
+ }
- itemDay.minute.push([stockItem.time, stockItem.open, stockItem.high, stockItem.low, stockItem.price, stockItem.vol, stockItem.amount, stockItem.avprice, stockItem.date]);
- }
+ return newMinuteData;
+};
+// HQChart内置代码转成东方财富代码
+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];
+ }
+ var market = parseInt(arySymbol[1]);
+ var internalSymbol = arySymbol[0];
- if (itemDay && itemDay.minute.length>0) aryDayData.push(itemDay);
+ if (internalSymbol.indexOf("-") > 0) {
+ var aryValue = internalSymbol.split("-");
+ internalSymbol = aryValue[1];
+ }
- aryDayData=aryDayData.reverse();
-
- 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.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 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 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]);
-
- 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);
-
- 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);
- if (newMinuteData)
- {
- for(var j=0;j<newMinuteData.length;++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;
- }
- else
- {
- preClose=item[4];
- preAvprice=item[7];
- preDate=item[8];
- }
- }
- itemDay.minute=newMinuteData;
- }
- else
- {
- var item=itemDay.minute[itemDay.minute.length-1];
- preClose=item[4];
- preAvprice=item[7];
- preDate=item[8];
- }
- }
-
- aryDayData=aryDayData.reverse();
-
- 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.CorrectMinuteData=function(minuteData, xDatetime)
-{
- if (minuteData.length==xDatetime.length) return null;
-
- 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 });
- }
-
- for(var i=0;i<minuteData.length;++i)
- {
- var item=minuteData[i];
- var time=item[0];
-
- var findItem=mapData.get(time);
- findItem.Data=item;
- }
-
- var newMinuteData=[];
- for(var item of mapData)
- {
- var value=item[1];
-
- if (value.Data) newMinuteData[value.Index]=value.Data;
- else newMinuteData[value.Index]=[value.Time];
- }
-
- return newMinuteData;
-}
-
-
-HQData.GetInternalSymbol=function(symbol) //HQChart内置代码转成东方财富代码
-{
-
- 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]
- }
- var market=parseInt(arySymbol[1]);
- var internalSymbol=arySymbol[0] ;
-
- 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)) //美股
{
@@ -468,15 +702,15 @@
var set106Market=new Set(
["RENN", "DIDI","BABA","ZH"]
);
-
+
var set100Market=new Set
(
["DJIA", "SPX", "NDX"]
)
-
+
if (set106Market.has(aryData[0])) market=106;
else if (set100Market.has(aryData[0])) market=100;
-
+
return { Market:market, Symbol:aryData[0].toUpperCase() };
}
else if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSZ(symbolUpper))
@@ -509,8 +743,8 @@
var market=113;
//上期能源
- if (symbolUpper.indexOf("SC")==0 || symbolUpper.indexOf("NR")==0 ||
- symbolUpper.indexOf("LU")==0 ||symbolUpper.indexOf("BC")==0)
+ if (symbolUpper.indexOf("SC")==0 || symbolUpper.indexOf("NR")==0 ||
+ symbolUpper.indexOf("LU")==0 ||symbolUpper.indexOf("BC")==0)
market=142;
return { Market:market, Symbol:aryData[0] };
@@ -579,856 +813,963 @@
return { Market:market, Symbol:aryData[0] };
}
*/
-}
+};
+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 = 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}`
-HQData.GetMinuteApiUrl=function(symbol, dayCount)
-{
- var internalSymbol=HQData.GetInternalSymbol(symbol);
- //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=`https://kline.workingman.icu/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=${dayCount}&iscr=0&iscca=0`
+ 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;
+};
+// 是否显示第2个成交量图
+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.IsShowVolChart=function(upperSymbol) //是否显示第2个成交量图
-{
- if (HQChart.Chart.MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) return false;
- if (upperSymbol=="UDI_100.ET") return false;
-
- return true;
-}
-
-
-///////////////////////////////////////////////////////////////////////////////////////////
-//
+/// ////////////////////////////////////////////////////////////////////////////////////////
+//
// 美国洲际交易所 重柴油
//
-HQData.GetCustomTradeTimeData=function(key)
-{
- if (key=="IPE_G") //美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗????
- {
- //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' }
- ]
- }
- };
+HQData.GetCustomTradeTimeData = function(key) {
+ // 美国洲际交易所 重柴油 数据从7:50开始,是盘前数据吗????
+ 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")
- {
- var data=//ID=0 08:50-07:00
- {
- 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;
+ } 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;
- }
-}
+ 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 HK_MINUTE_X_COORDINATE;
-}
+ return this.Full;
+ }
+ };
+ return HK_MINUTE_X_COORDINATE;
+};
-////////////////////////////////////////////////////////////////////////////////////////
+/// /////////////////////////////////////////////////////////////////////////////////////
// 外汇走势图X轴坐标
//
-////////////////////////////////////////////////////////////////////////////////////////
-HQData.CreateForeignExchangeData=function(minuteStringData)
-{
- //外汇 5:00 - 4:59
- const TIME_SPLIT=
- [
- { Start:500, End:2359 },
- { Start:0, End:459 },
+/// /////////////////////////////////////////////////////////////////////////////////////
+HQData.CreateForeignExchangeData = function(minuteStringData) {
+ // 外汇 5:00 - 4:59
+ const TIME_SPLIT = [
+ { Start: 500, End: 2359 },
+ { Start: 0, End: 459 }
+ ];
+
+ 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"]
+ ],
+
+ Count: 1440,
+ MiddleCount: 600,
+
+ GetData: function(width) {
+ if (width < 200) return this.Min;
+ else if (width < 450) return this.Simple;
+
+ return this.Full;
+ }
+ };
+
+ return FOREX_MINUTE_X_COORDINATE;
+};
+
+/// /////////////////////////////////////////////////////////////////////
+// 美元指数
+//
+/// ////////////////////////////////////////////////////////////////////
+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 }
];
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.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 FOREX_MINUTE_X_COORDINATE;
-}
+ return data;
+ }
+};
+HQData.GetETDecimal = function(symbol) {
+ var upperSymbol = symbol.toUpperCase();
+ if (upperSymbol === "UDI_100.ET") return 2;
-////////////////////////////////////////////////////////////////////////
-// 美元指数
+ return 2;
+};
+
+/// ////////////////////////////////////////////////////////////////////////////////
+// K线数据对接
//
-///////////////////////////////////////////////////////////////////////
-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 },
- ];
+/// //////////////////////////////////////////////////////////////////////////////
+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
- return minuteStringData.CreateTimeData(TIME_SPLIT);
- }
-}
+ var internalSymbol = HQData.GetInternalSymbol(symbol);
+ // console.log(internalSymbol,'caonima');
+ // if (!internalSymbol.Market) {
+ // internalSymbol.Market = '106'
+ // internalSymbol.Symbol = 'BRK_A'
+ // }
-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,
-
- GetData: function (width)
- {
- if (width < 200) return this.Min;
- else if (width < 450) return this.Simple;
-
- return this.Full;
- }
- }
-
- return data;
- }
-}
+ // 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 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 (option && option.Update === true) {
+ 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.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}`
+ }
-HQData.GetETDecimal=function(symbol)
-{
- var upperSymbol=symbol.toUpperCase();
- if (upperSymbol=="UDI_100.ET") return 2;
+ return {
+ Url: url,
+ Symbol: symbol,
+ InternalSymbol: internalSymbol,
+ Period: period,
+ Right: right
+ };
+};
- return 2;
-}
+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
-
-
-///////////////////////////////////////////////////////////////////////////////////
-//K线数据对接
-//
-/////////////////////////////////////////////////////////////////////////////////
-HQData.GetKLineApiUrl=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);
- // console.log(internalSymbol,'caonima');
- // if(!internalSymbol.Market){
- // internalSymbol.Market = '106';
- // internalSymbol.Symbol = 'BRK_A';
+ var internalSymbol = HQData.GetInternalSymbol(symbol);
+ // console.log(internalSymbol,'caonima');
+ var internalPeriod = HQData.GetInternalPeriod(period);
+ var internalRight = HQData.GetInternalRight(right);
+ console.log(internalPeriod);
+ var url = "";
+ if (option && option.Update === true) {
+ 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`
+ // }
+ }
- var internalPeriod=HQData.GetInternalPeriod(period);
- var internalRight=HQData.GetInternalRight(right);
- if (option && option.Update==true)
- {
- var beginDate=option.End;
- var url=`https://kline.workingman.icu/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}`;
+ 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
+
+ [4, 1], // 1min
+ [5, 5], // 5min
+ [6, 15], // 15min
+ [7, 30], // 30min
+ [8, 60] // 60min
+ ]);
+
+ return MAP_PERIOD.get(periodID);
+};
+
+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();
+ // var symbolUpper = symbol.toUpperCase()
+ 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 symbolUpper = symbol.toUpperCase()
+ 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 (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper)) {
+ if (market === 100) return false; // 指数不支持复权
+ return true;
+ }
+
+ return false;
+};
+
+HQData.RequestFlowCapitalData = function(data, callback) {
+ data.PreventDefault = true;
+ var hqChartData = { code: 0, stock: [] }; // 如果没有数据就填空
+
+ if (data.Self.IsDestroy === false) {
+ 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}`);
+ 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 });
}
- else
- {
- var url=`https://kline.workingman.icu/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=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}`;
+ });
+};
+
+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 date = moment.unix(strItem.id).format("YYYYMMDD");
+ //
+ 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);
+ //
+ 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];
- return { Url:url, Symbol:symbol, InternalSymbol:internalSymbol, Period:period, Right:right };
-}
-
-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);
- // console.log(internalSymbol,'caonima');
- var internalPeriod=HQData.GetInternalPeriod(period);
- var internalRight=HQData.GetInternalRight(right);
-
- if (option && option.Update==true)
- {
- var beginDate=option.End;
- var url=`https://kline.workingman.icu/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}`;
+ hqChartData.data.push(newItem);
+ //
+ yClose = close;
}
- else
- {
- var url=`https://kline.workingman.icu/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=${internalSymbol.Market}.${internalSymbol.Symbol}&klt=${internalPeriod}&fqt=${internalRight}`;
+ }
+
+ 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]; // 请求的股票代码
+ 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;
+
+ 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 });
}
+ });
+};
- return { Url:url, Symbol:symbol, InternalSymbol:internalSymbol, Period:period, Right:right };
-}
+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 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')
-HQData.GetInternalPeriod=function(periodID)
-{
- var MAP_PERIOD=new Map(
- [
- [0, 101], //day
- [1, 102], //week
- [2, 103], //month
+ // 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)
- [4, 1], //1min
- [5, 5], //5min
- [6, 15], //15min
- [7, 30], //30min
- [8, 60], //60min
- ]
- );
+ // stock.yclose = yClose
+ // stock.open = open
+ // stock.high = high
+ // stock.low = low
+ // stock.price = close
+ // stock.vol = vol
+ // stock.amount = amount
+ // stock.date = date
- return MAP_PERIOD.get(periodID);
-}
+ // 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") {
+ 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.GetInternalRight=function(right)
-{
- if (right==0) return 0;
- else if (right==1) return 1;
- else return 2;
-}
+ 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]);
-HQData.IsEnableRight=function(period, symbol) //是否支持复权
-{
- var symbolUpper=symbol.toUpperCase();
- if (HQChart.Chart.MARKET_SUFFIX_NAME.IsSHSZStockA(symbolUpper)) return true;
- if (HQChart.Chart.MARKET_SUFFIX_NAME.IsBJStock(symbol)) return true;
+ 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 aryData=symbol.split(".");
- var symbolUpper=symbol.toUpperCase();
- 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;
+ 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
+ // }
+ // }
- if (HQChart.Chart.MARKET_SUFFIX_NAME.IsUSA(symbolUpper))
- {
- if (market==100) return false; //指数不支持复权
- return true;
+ var hqchartData = { code: 0, stock: [stock] };
+
+ if (option.Data.Self.IsDestroy === false) {
+ 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; // 复权
+
+ 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
+ });
}
+ });
+};
- return false;
-}
+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";
-HQData.RequestFlowCapitalData=function(data,callback)
-{
- data.PreventDefault=true;
- var hqChartData={code:0, stock:[]}; //如果没有数据就填空
-
- if (data.Self.IsDestroy==false)
- {
- callback(hqChartData);
- }
-}
+ var yClose = "";
+ console.log("recvData===data.name22", recvData, kLines);
+ recvData = JSON.parse(recvData);
-HQData.RequestHistoryData=function(data, callback)
-{
- data.PreventDefault=true;
- var symbol=data.Request.Data.symbol; //请求的股票代码
- var period=data.Self.Period; //周期
- var right=data.Self.Right; //复权
+ 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 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, time];
- 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;
-
- var hqChartData={code:0, data:[]};
- hqChartData.symbol=option.Obj.Symbol;
- hqChartData.name=data.name;
-
- var yClose=data.preKPrice;;
- 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 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];
- hqChartData.data.push(newItem);
-
- yClose=close;
+ hqChartData.data.push(newItem);
+ //
+ yClose = close;
}
+ } 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 newItem = [date, yClose, open, high, low, close, vol, amount, time];
- if (option.Data.Self.IsDestroy==false)
- {
- HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData)
- callback(hqChartData);
+ hqChartData.data.push(newItem);
+ //
+ yClose = close;
}
-}
+ }
-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();
+ if (option.Data.Self.IsDestroy === false) {
+ HQData.Log("[HQData.RecvHistoryData] hqchartData ", hqChartData);
+ callback(hqChartData);
+ }
+};
- var option={ Update:true };
- if (dateRange && dateRange.End && dateRange.End.Date>0) option.End=dateRange.End.Date;
+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();
- console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`);
- var obj=HQData.GetKLineApiUrl(symbol,period, right, option);
+ var option = { Update: true };
+ if (dateRange && dateRange.End && dateRange.End.Date > 0)
+ option.End = dateRange.End.Date;
- $.ajax(
- {
- url: obj.Url,
- type: "GET",
- success:function(recvData)
- {
- HQData.RecvRealtimeData(recvData, callback, { Data:data, Obj:obj });
- }
- });
-}
+ console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
+ var obj = HQData.GetMinuteKLineApiUrl(symbol, period, right, option);
-HQData.RecvRealtimeData=function(recvData, callback, option)
-{
- var data=recvData.data;
- var stock={symbol:option.Obj.Symbol, name:data.name };
-
- var yClose=data.preKPrice;
- 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 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;
-
- yClose=close;
+ $.ajax({
+ url: obj.Url,
+ type: "GET",
+ success: function(recvData) {
+ HQData.RecvMinuteRealtimeData(recvData, callback, {
+ Data: data,
+ Obj: obj
+ });
}
+ });
+};
- var hqchartData={code:0, stock:[stock] };
+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版本格式
- if (option.Data.Self.IsDestroy==false)
- {
- HQData.Log("[HQData.RecvRealtimeData] hqchartData ", hqchartData)
- callback(hqchartData);
- }
-}
+ 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(",");
-HQData.RequestHistoryMinuteData=function(data, callback)
-{
- data.PreventDefault=true;
- var symbol=data.Request.Data.symbol; //请求的股票代码
- var period=data.Self.Period; //周期
- var right=data.Self.Right; //复权
+ 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]);
- console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`);
- var obj=HQData.GetMinuteKLineApiUrl(symbol,period, right, null);
+ var newItem = [date, yClose, open, high, low, close, vol, amount, time];
+ hqChartData.data.push(newItem);
- $.ajax(
- {
- url: obj.Url,
- type: "GET",
- success:function(recvData)
- {
- HQData.RecvHistoryMinuteData(recvData, callback, { Data:data, Obj:obj });
- }
- });
+ yClose = close;
+ }
-}
+ if (option.Data.Self.IsDestroy === false) {
+ HQData.Log("[HQData.RecvMinuteRealtimeData] hqchartData ", hqChartData);
+ callback(hqChartData);
+ }
+};
-HQData.RecvHistoryMinuteData=function(recvData, callback, option)
-{
- var data=recvData.data;
-
- var hqChartData={code:0, data:[]};
- hqChartData.symbol=option.Obj.Symbol;
- hqChartData.name=data.name;
-
- var yClose=data.preKPrice;;
- 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 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);
-
- yClose=close;
- }
-
-
- if (option.Data.Self.IsDestroy==false)
- {
- HQData.Log("[HQData.RecvHistoryMinuteData] 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();
-
- 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);
-
- $.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版本格式
-
- var yClose=data.preKPrice;
- 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 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);
-
- yClose=close;
- }
-
- if (option.Data.Self.IsDestroy==false)
- {
- HQData.Log("[HQData.RecvMinuteRealtimeData] hqchartData ", hqChartData)
- callback(hqChartData);
- }
-}
-
-export default
-{
- HQData:HQData
-}
+export default {
+ HQData: HQData
+};
--
Gitblit v1.9.3