hqchart 1.1.12729 → 1.1.12734

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,150 @@
1
+ /////////////////////////////////////////////////////////////////////
2
+ // 模拟测试数据
3
+ //
4
+ //
5
+ /////////////////////////////////////////////////////////////////////
6
+
7
+
8
+ function HQData() { }
9
+
10
+ HQData.Explain="本地测试数据";
11
+
12
+ HQData.NetworkFilter=function(data, callback)
13
+ {
14
+ console.log(`[HQData::NetworkFilter] ${HQData.Explain}`, data);
15
+
16
+ switch(data.Name)
17
+ {
18
+ case 'MinuteChartContainer::RequestMinuteData': //分时图数据对接
19
+ HQData.RequestMinuteData(data, callback);
20
+ break;
21
+ case "MinuteChartContainer::RequestHistoryMinuteData": //多日分时图
22
+ HQData.RequestMinuteDaysData(data, callback);
23
+ break;
24
+
25
+ case 'KLineChartContainer::RequestHistoryData': //日线全量数据下载
26
+ HQData.RequestHistoryData(data,callback);
27
+ break;
28
+ case 'KLineChartContainer::RequestRealtimeData': //日线实时数据更新
29
+ HQData.RequestRealtimeData(data,callback);
30
+ break;
31
+ case 'KLineChartContainer::RequestFlowCapitalData': //流通股本
32
+ HQData.RequestFlowCapitalData(data,callback);
33
+ break;
34
+
35
+ case 'KLineChartContainer::ReqeustHistoryMinuteData': //分钟全量数据下载
36
+ HQData.RequestHistoryMinuteData(data, callback);
37
+ break;
38
+ case 'KLineChartContainer::RequestMinuteRealtimeData': //分钟增量数据更新
39
+ HQData.RequestMinuteRealtimeData(data,callback);
40
+ break;
41
+ }
42
+ }
43
+
44
+ HQData.RequestMinuteData=function(data, callback)
45
+ {
46
+ data.PreventDefault=true;
47
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
48
+ var dayCount=data.Request.Data.daycount;
49
+ console.log(`[HQData::RequestMinuteData] Symbol=${symbol}`);
50
+
51
+ var hqchartData=MINUTE_1DAY_DATA;
52
+ hqchartData.stock[0].symbol=symbol;
53
+ hqchartData.stock[0].name=symbol;
54
+
55
+ callback(hqchartData);
56
+ }
57
+
58
+ HQData.RequestMinuteDaysData=function(data, callback)
59
+ {
60
+ data.PreventDefault=true;
61
+ var symbol=data.Request.Data.symbol; //请求的股票代码
62
+ var dayCount=data.Request.Data.daycount;
63
+
64
+ console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`);
65
+
66
+ var hqchartData=MINUTE_5DAY_DATA;
67
+ hqchartData.symbol=symbol;
68
+ hqchartData.name=symbol;
69
+
70
+ callback(hqchartData);
71
+ }
72
+
73
+ HQData.RequestHistoryData=function(data,callback)
74
+ {
75
+ data.PreventDefault=true;
76
+ var symbol=data.Request.Data.symbol; //请求的股票代码
77
+
78
+ console.log(`[HQData::RequestMinuteDaysData] Symbol=${symbol}`);
79
+
80
+ var hqchartData=KLINE_DAY_DATA;
81
+ hqchartData.symbol=symbol;
82
+ hqchartData.name=symbol;
83
+
84
+ callback(hqchartData);
85
+ }
86
+
87
+ HQData.RequestFlowCapitalData=function(data,callback)
88
+ {
89
+ data.PreventDefault=true;
90
+ var symbol=data.Request.Data.symbol; //请求的股票代码
91
+
92
+ console.log(`[HQData::RequestFlowCapitalData] Symbol=${symbol}`);
93
+
94
+ var hqchartData=KLINE_CAPITAL_DATA;
95
+ callback(hqchartData);
96
+ }
97
+
98
+ HQData.RequestRealtimeData=function(data,callback)
99
+ {
100
+ data.PreventDefault=true;
101
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
102
+
103
+ console.log(`[HQData::RequestRealtimeData] Symbol=${symbol}`);
104
+
105
+ var hqchartData=KLINE_1DAY_DATA;
106
+ hqchartData.stock[0].name=symbol;
107
+ hqchartData.stock[0].symbol=symbol;
108
+ callback(hqchartData);
109
+ }
110
+
111
+
112
+ HQData.RequestHistoryMinuteData=function(data, callback)
113
+ {
114
+ data.PreventDefault=true;
115
+ var symbol=data.Request.Data.symbol; //请求的股票代码
116
+
117
+ console.log(`[HQData::RequestHistoryMinuteData] Symbol=${symbol}`);
118
+
119
+ var hqchartData=KLINE_MINUTE_DATA;
120
+ hqchartData.name=symbol;
121
+ hqchartData.symbol=symbol;
122
+ callback(hqchartData);
123
+
124
+ }
125
+
126
+
127
+ HQData.RequestMinuteRealtimeData=function(data,callback)
128
+ {
129
+ data.PreventDefault=true;
130
+ var symbol=data.Request.Data.symbol[0]; //请求的股票代码
131
+
132
+ console.log(`[HQData::RequestMinuteRealtimeData] Symbol=${symbol}`);
133
+
134
+ var hqchartData=JSON.parse(JSON.stringify(KLINE_1MINUTE_DATA));
135
+
136
+ var kItem=hqchartData.data[0];
137
+ var price=kItem[5];
138
+ var value=Math.ceil(Math.random()*10)/1000*price;
139
+ var bUp=Math.ceil(Math.random()*10)>=5;
140
+
141
+ if (bUp) price+=value;
142
+ else price-=value;
143
+ kItem[5]=price;
144
+ kItem[3]=Math.max(price, kItem[3]);
145
+ kItem[4]=Math.min(price, kItem[4]);
146
+
147
+ hqchartData.name=symbol;
148
+ hqchartData.symbol=symbol;
149
+ callback(hqchartData);
150
+ }
@@ -20928,8 +20928,9 @@ function HQTradeFrame()
20928
20928
  frame.YSplitOperator.Operator();
20929
20929
  var value=frame.GetScaleTextWidth();
20930
20930
 
20931
- frame.HorizontalMax=maxValue;
20932
- frame.HorizontalMin=minValue;
20931
+ //数据原始范围存储在YMaxMin, 不需要还原HorizontalMax,HorizontalMin
20932
+ //frame.HorizontalMax=maxValue;
20933
+ //frame.HorizontalMin=minValue;
20933
20934
 
20934
20935
  if (value && value.TextWidth)
20935
20936
  {
@@ -131033,7 +131034,7 @@ function ScrollBarBGChart()
131033
131034
 
131034
131035
 
131035
131036
 
131036
- var HQCHART_VERSION="1.1.12728";
131037
+ var HQCHART_VERSION="1.1.12732";
131037
131038
 
131038
131039
  function PrintHQChartVersion()
131039
131040
  {
@@ -0,0 +1,137 @@
1
+ //账户信息
2
+
3
+ function ZUser(userid)
4
+ {
5
+ this.SelfStockApiUrl="https://opensource.zealink.com/API/SelfStock";
6
+ this.LogonApiUrl="https://opensource.zealink.com/API/Logon";
7
+
8
+ this.UserID=null;
9
+ this.NickName=null;
10
+ this.LogonCallback;
11
+
12
+ this.SelfStockData; //自选股信息
13
+ this.SelfStockCallback=null;
14
+
15
+ this.IsWechatApp=false; //是否是小程序模式
16
+
17
+ //微信登录
18
+ this.LogonWechat=function(wechartid,nickname,callback)
19
+ {
20
+ this.LogonCallback=callback;
21
+ this.ReqeustLogon(3,wechartid,nickname)
22
+ }
23
+
24
+ //是否登录了
25
+ this.IsLogon=function()
26
+ {
27
+ return this.UserID!=null;
28
+ }
29
+
30
+ this.ReqeustLogon=function(logonType,userid, password)
31
+ {
32
+ var self=this;
33
+
34
+ $.ajax({
35
+ url: this.LogonApiUrl,
36
+ data:
37
+ {
38
+ "logontype":logonType,
39
+ "user":userid,
40
+ "password":password,
41
+ "os":"appweb",
42
+ "identifiy":Guid(),
43
+ "ip":"0.0.0.0"
44
+ },
45
+ type:"post",
46
+ dataType: "json",
47
+ async:true,
48
+ success: function (data)
49
+ {
50
+ self.RecvLogonData(data,RECV_DATA_TYPE.LOGON_DATA);
51
+ },
52
+ error:function(request)
53
+ {
54
+ self.RecvError(request,RECV_DATA_TYPE.LOGON_DATA);
55
+ }
56
+ });
57
+ }
58
+
59
+ this.RecvLogonData=function(data,dataType)
60
+ {
61
+ if (data.code!=0)
62
+ {
63
+ if (typeof(this.LogonCallback)=="function") this.LogonCallback(this,data.message);
64
+ return;
65
+ }
66
+
67
+ this.UserID=data.userid;
68
+ this.NickName=data.nickname;
69
+
70
+ if (typeof(this.LogonCallback)=="function") this.LogonCallback(this);
71
+ }
72
+
73
+ //更新自选股
74
+ this.UpdateSelfStock=function()
75
+ {
76
+ this.ReqeustSelfStock();
77
+ }
78
+
79
+ this.SelfStock=function(callback)
80
+ {
81
+ this.SelfStockCallback=callback;
82
+ this.ReqeustSelfStock();
83
+ }
84
+
85
+ this.ReqeustSelfStock=function()
86
+ {
87
+ var self=this;
88
+
89
+ $.ajax({
90
+ url: this.SelfStockApiUrl,
91
+ data:
92
+ {
93
+ "userid":this.UserID,
94
+ },
95
+ type:"post",
96
+ dataType: "json",
97
+ async:true,
98
+ success: function (data)
99
+ {
100
+ self.RecvSelfStockData(data,RECV_DATA_TYPE.SELF_STOCK_DATA);
101
+ },
102
+ error:function(request)
103
+ {
104
+ self.RecvError(request,RECV_DATA_TYPE.SELF_STOCK_DATA);
105
+ }
106
+ });
107
+ }
108
+
109
+
110
+ this.RecvSelfStockData=function(data,dataType)
111
+ {
112
+ console.log(data);
113
+
114
+ this.SelfStockData=[];
115
+ for(var i in data.selfstock)
116
+ {
117
+ var item= data.selfstock[i];
118
+ var SelfStockItem={ Name:item.name, Data:new Array() };
119
+ for(var j in item.list)
120
+ {
121
+ var stock=item.list[j];
122
+
123
+ SelfStockItem.Data.push({Symbol:stock.symbol, Name:stock.name, date:stock.adddate});
124
+ }
125
+
126
+ this.SelfStockData.push(SelfStockItem);
127
+ }
128
+
129
+ if (typeof(this.SelfStockCallback)=="function") this.SelfStockCallback(this);
130
+ }
131
+
132
+ this.RecvError=function(request,dataType)
133
+ {
134
+
135
+ }
136
+ }
137
+
@@ -0,0 +1,30 @@
1
+ /********************************************************************************
2
+ * 版本信息输出
3
+ *
4
+ */
5
+
6
+
7
+
8
+ var HQCHART_VERSION="1.1.12732";
9
+
10
+ function PrintHQChartVersion()
11
+ {
12
+ var log=
13
+ `*************************************************************************************************************
14
+ *
15
+ * HQChart Ver: ${HQCHART_VERSION}
16
+ *
17
+ * License: Apache License 2.0
18
+ * Source: https://github.com/jones2000/HQChart
19
+ *
20
+ *************************************************************************************************************
21
+ `
22
+
23
+ console.log(log);
24
+ }
25
+
26
+
27
+ PrintHQChartVersion();
28
+
29
+
30
+
@@ -20972,8 +20972,9 @@ function HQTradeFrame()
20972
20972
  frame.YSplitOperator.Operator();
20973
20973
  var value=frame.GetScaleTextWidth();
20974
20974
 
20975
- frame.HorizontalMax=maxValue;
20976
- frame.HorizontalMin=minValue;
20975
+ //数据原始范围存储在YMaxMin, 不需要还原HorizontalMax,HorizontalMin
20976
+ //frame.HorizontalMax=maxValue;
20977
+ //frame.HorizontalMin=minValue;
20977
20978
 
20978
20979
  if (value && value.TextWidth)
20979
20980
  {
@@ -131191,7 +131192,7 @@ function HQChartScriptWorker()
131191
131192
 
131192
131193
 
131193
131194
 
131194
- var HQCHART_VERSION="1.1.12728";
131195
+ var HQCHART_VERSION="1.1.12732";
131195
131196
 
131196
131197
  function PrintHQChartVersion()
131197
131198
  {
@@ -0,0 +1,114 @@
1
+ ///////////////////////////////////////////////////////////////////////////////////
2
+ // 工作线程计算指标示例
3
+ //
4
+ //
5
+ //////////////////////////////////////////////////////////////////////////////////
6
+
7
+ function HQChartScriptWorker()
8
+ {
9
+ this.Status=0; //0=空闲 1=运行
10
+ this.Create=function()
11
+ {
12
+ addEventListener('message', (obj)=>{ this.OnRecvMessage(obj); });
13
+ }
14
+
15
+ this.NetworkFilter=function(data, callback, indexInfo)
16
+ {
17
+ JSConsole.Complier.Log(`[HQChartScriptWorker::NetworkFilter] [${data.Name}][${data.Explain}] data=`, data);
18
+ //数据下载
19
+ }
20
+
21
+ this.ExecuteScript=function(indexData, message)
22
+ {
23
+ var scriptObj={ };
24
+
25
+ if (indexData.Script)
26
+ {
27
+ scriptObj.Name=indexData.Name;
28
+ scriptObj.ID=indexData.Index;
29
+ scriptObj.Script=indexData.Script;
30
+ }
31
+ else
32
+ {
33
+ if (!indexData.Index) return false;
34
+ var scriptData = new JSIndexScript();
35
+ var finder = scriptData.Get(indexData.Index);
36
+ if (!finder) return false;
37
+
38
+ scriptObj.ID=indexData.Index;
39
+ scriptObj.Name=finder.Name;
40
+ scriptObj.Script=finder.Script;
41
+ scriptObj.Args=finder.Args;
42
+ }
43
+
44
+ if (indexData.Args) scriptObj.Args=indexData.Args;
45
+ if (IFrameSplitOperator.IsBool(message.IsApiPeriod)) scriptObj.IsApiPeriod=message.IsApiPeriod;
46
+
47
+ var indexInfo={ Name:scriptObj.Name, ID:scriptObj.ID, Script:scriptObj.Script, Args:scriptObj.Args, Guid:message.Guid };
48
+ scriptObj.ErrorCallback=(error)=>{ this.OnExecuteError(error, indexInfo, message); };
49
+ scriptObj.FinishCallback=(data, jsExectute)=>{ this.OnExecuteFinish(data, indexInfo, jsExectute, message); };
50
+ scriptObj.NetworkFilter=(data, callback)=>{ this.NetworkFilter(data, callback, indexInfo, message); };
51
+
52
+ JSConsole.Complier.Log('[HQChartScriptWorker::ExecuteScript] scriptObj=',scriptObj);
53
+
54
+ var indexConsole=new ScriptIndexConsole(scriptObj);
55
+
56
+ var hisData=null;
57
+ if (message && message.Data)
58
+ {
59
+ hisData=new ChartData();
60
+ hisData.Data=message.Data;
61
+ hisData.Right=message.Right;
62
+ hisData.Period=message.Period;
63
+ hisData.DataType=message.DataType; //0=日线 1=分钟
64
+ hisData.Symbol=message.symbol;
65
+ }
66
+
67
+ var stockObj=
68
+ {
69
+ HQDataType:HQ_DATA_TYPE.KLINE_ID,
70
+ Stock: { Symbol:message.Symbol },
71
+ Request: { MaxDataCount: 500, MaxMinuteDayCount:5 },
72
+ Period:message.Period , Right:message.Right,
73
+ Data:hisData
74
+ };
75
+
76
+ if (IFrameSplitOperator.IsNumber(message.HQDataType)) stockObj.HQDataType=message.HQDataType;
77
+
78
+
79
+ indexConsole.ExecuteScript(stockObj);
80
+ }
81
+
82
+ this.OnRecvMessage=function(message)
83
+ {
84
+ var data=message.data;
85
+ if (!data) return;
86
+
87
+ if (data.ID==JSCHART_WORKER_MESSAGE_ID.EXECUTE_SCRIPT)
88
+ {
89
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.AryIndex)) return;
90
+
91
+ for(var i=0;i<data.AryIndex.length;++i)
92
+ {
93
+ var item=data.AryIndex[i];
94
+ this.Status=1; //执行状态
95
+ this.ExecuteScript(item,data);
96
+ }
97
+
98
+ this.Status=0;
99
+ }
100
+ }
101
+
102
+ this.OnExecuteFinish=function(data, indexInfo, jsExectute, jobInfo)
103
+ {
104
+ var message={ Data:data, IndexInfo:indexInfo , ID:JSCHART_WORKER_MESSAGE_ID.FINISH_EXECUTE_SCRIPT, JobInfo:jobInfo };
105
+ postMessage(message);
106
+ }
107
+
108
+ this.OnExecuteError=function(error, indexInfo, jobData)
109
+ {
110
+ var message={ IndexInfo:indexInfo, ID:JSCHART_WORKER_MESSAGE_ID.ERROR_EXECUTE_SCRIPT, Error:error };
111
+ postMessage(message);
112
+ }
113
+ }
114
+
@@ -0,0 +1,110 @@
1
+ ///////////////////////////////////////////////////////////////
2
+ // Web socket 行情接收类
3
+ //
4
+
5
+ function JSWSStockResource()
6
+ {
7
+ this.Domain = "wss://websocket-test.zealink.com"; //websocket 域名
8
+ }
9
+
10
+ var g_JSWSStockResource = new JSWSStockResource();
11
+
12
+
13
+ function JSWSStock()
14
+ {
15
+ this.IsConnect=false; //是否连接
16
+ this.Url=g_JSWSStockResource.Domain+'/WebSocket/StockAll.ashx';
17
+ this.Socket;
18
+
19
+ this.RecvSnapshotDataCallback; //快照数据到达
20
+ this.RecvDetailDataCallback; //分笔数据到达
21
+ this.RecvFlowDataCallback; //资金流数据到达
22
+
23
+ this.Total={Snapshot:0, Detail:0, Flow:0 } //统计一共接收到的数据条数
24
+
25
+ //option: { Callback: {Snapshot:, Detail:, Flow:}}
26
+ this.SetOption=function(option)
27
+ {
28
+ if (!Option) return;
29
+
30
+ if (option.Callback)
31
+ {
32
+ var callback=option.Callback;
33
+ if (callback.Snapshot) this.RecvSnapshotDataCallback=callback.Snapshot;
34
+ if (callback.Detail) this.RecvDetailDataCallback=callback.Detail;
35
+ if (callback.Flow) this.RecvFlowDataCallback=callback.Flow;
36
+ }
37
+ }
38
+
39
+ this.Create=function(option)
40
+ {
41
+ this.SetOption(option);
42
+
43
+ this.Socket=new WebSocket(this.Url);
44
+ if (!this.Socket) return false;
45
+
46
+ console.log(`[JSWSStock::Create] connect=${this.Url}`);
47
+
48
+ var self=this;
49
+ this.Socket.onopen=function(e) { self.OnOpen(e); };
50
+ this.Socket.onmessage=function(e) { self.OnMessage(e)} ;
51
+ this.Socket.onclose=function(e) { self.OnClose(e); }
52
+ this.Socket.onerror=function(e) { self.OnError(e); }
53
+
54
+ console.log(`[JSWSStock::Create] readyState=${this.Socket.readyState}`);
55
+
56
+ return true;
57
+ }
58
+
59
+ this.Close=function()
60
+ {
61
+ if (this.Socket) this.Socket.close();
62
+ }
63
+
64
+ this.OnMessage=function(e)
65
+ {
66
+ var message=JSON.parse(e.data);
67
+ if (!message.data || !message.data.data) return;
68
+ var data=message.data.data;
69
+ if (data.length<=0) return;
70
+
71
+ switch(message.id)
72
+ {
73
+ case 20:
74
+ this.Total.Snapshot+=data.length;
75
+ if (this.RecvSnapshotDataCallback) this.RecvSnapshotDataCallback(message.data);
76
+ break;
77
+ case 10:
78
+ this.Total.Detail+=data.length;
79
+ if (this.RecvDetailDataCallback) this.RecvDetailDataCallback(data);
80
+ break;
81
+ case 30:
82
+ this.Total.Flow+=data.length;
83
+ if (this.RecvFlowDataCallback) this.RecvFlowDataCallback(data);
84
+ break;
85
+ }
86
+ }
87
+
88
+ this.OnClose=function(e)
89
+ {
90
+ console.log('[JSWSStock::OnClose] e ', e);
91
+ console.log(`[JSWSStock::OnClose] readyState=${this.Socket.readyState}`);
92
+ }
93
+
94
+ this.OnOpen=function(e)
95
+ {
96
+ console.log('[JSWSStock::OnOpen] e ', e);
97
+ console.log(`[JSWSStock::OnOpen] readyState=${this.Socket.readyState}`);
98
+ }
99
+
100
+ this.OnError=function(e)
101
+ {
102
+ console.log('[JSWSStock::OnOpen] e ', e);
103
+ }
104
+ }
105
+
106
+
107
+ JSWSStock.SetDomain = function (domain)
108
+ {
109
+ if (domain) g_JSWSStockResource.Domain = domain;
110
+ }
@@ -0,0 +1,2 @@
1
+ import Vue from 'vue'
2
+ import ElementUI from 'element-ui'