hqchart 1.1.12687 → 1.1.12706
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.
- package/lib/umychart.vue.js +94 -50
- package/package.json +15 -47
- package/src/jscommon/umychart.resource/js/codemirror/javascript.js +1 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +409 -115
- package/src/jscommon/umychart.vue/umychart.vue.js +409 -115
- package/.babelrc +0 -6
- package/.vscode/settings.json +0 -4
- package/Makefile +0 -9
- package/README.md +0 -452
- package/index.js +0 -17
- package/postcss.config.js +0 -5
- package/src/index.html +0 -18
- package/src/jscommon/backup/announcement.png +0 -0
- package/src/jscommon/backup/announcement2.png +0 -0
- package/src/jscommon/backup/blocktrading.png +0 -0
- package/src/jscommon/backup/investor.png +0 -0
- package/src/jscommon/backup/pforecast.png +0 -0
- package/src/jscommon/backup/research.png +0 -0
- package/src/jscommon/backup/tradedetail.png +0 -0
- package/src/jscommon/backup/umychart - backup.js +0 -17631
- package/src/jscommon/backup/umychart.macro.js +0 -4
- package/src/jscommon/backup/umychart.macro.vue.js +0 -3
- package/src/jscommon/commonindextree.json +0 -92
- package/src/jscommon/index.html +0 -13
- package/src/jscommon/jschinamapdata.js +0 -3
- package/src/jscommon/umychart.NetworkFilterTest.js +0 -48803
- package/src/jscommon/umychart.aliYunnetwork.js +0 -47
- package/src/jscommon/umychart.cninfo.components/readme.txt +0 -1
- package/src/jscommon/umychart.complier.js +0 -25291
- package/src/jscommon/umychart.complier.node/umychart.complier.controller.js +0 -559
- package/src/jscommon/umychart.complier.node/umychart.complier.node.js +0 -7043
- package/src/jscommon/umychart.complier.node/umychart.data.node.js +0 -816
- package/src/jscommon/umychart.console.js +0 -12
- package/src/jscommon/umychart.deal.js +0 -1452
- package/src/jscommon/umychart.dragdiv.js +0 -48
- package/src/jscommon/umychart.index.data.js +0 -4132
- package/src/jscommon/umychart.js +0 -90257
- package/src/jscommon/umychart.keyboard.js +0 -1659
- package/src/jscommon/umychart.listctrl.js +0 -690
- package/src/jscommon/umychart.mind.js +0 -2203
- package/src/jscommon/umychart.network.js +0 -44
- package/src/jscommon/umychart.news.js +0 -823
- package/src/jscommon/umychart.node.build/buildall.bat +0 -1
- package/src/jscommon/umychart.node.build/umychart.node.bat +0 -1
- package/src/jscommon/umychart.node.build/umychart.node.export.js +0 -40
- package/src/jscommon/umychart.regressiontest.js +0 -400
- package/src/jscommon/umychart.report.js +0 -5803
- package/src/jscommon/umychart.scrollbar.js +0 -1345
- package/src/jscommon/umychart.stock.js +0 -4218
- package/src/jscommon/umychart.style.js +0 -618
- package/src/jscommon/umychart.testdata.js +0 -150
- package/src/jscommon/umychart.uniapp.build/buildall.bat +0 -1
- package/src/jscommon/umychart.uniapp.build/umychart.bat +0 -1
- package/src/jscommon/umychart.uniapp.build/umychart.export.js +0 -70
- package/src/jscommon/umychart.user.js +0 -137
- package/src/jscommon/umychart.version.js +0 -30
- package/src/jscommon/umychart.vue/umychart.aliYunnetwork.vue.js +0 -56
- package/src/jscommon/umychart.vue.build/buildall.bat +0 -4
- package/src/jscommon/umychart.vue.build/copy_codemirror.bat +0 -2
- package/src/jscommon/umychart.vue.build/umychart.aliYunnetwork.vue.export.js +0 -9
- package/src/jscommon/umychart.vue.build/umychart.dragdiv.bat +0 -1
- package/src/jscommon/umychart.vue.build/umychart.dragdiv.export.js +0 -6
- package/src/jscommon/umychart.vue.build/umychart.index.data.bat +0 -1
- package/src/jscommon/umychart.vue.build/umychart.index.data.export.js +0 -4
- package/src/jscommon/umychart.vue.build/umychart.listctrl.vue.export.js +0 -15
- package/src/jscommon/umychart.vue.build/umychart.regressiontest.vue.export.js +0 -7
- package/src/jscommon/umychart.vue.build/umychart.regressiontest.wechat.export.js +0 -12
- package/src/jscommon/umychart.vue.build/umychart.stock.bat +0 -1
- package/src/jscommon/umychart.vue.build/umychart.stock.vue.export.js +0 -16
- package/src/jscommon/umychart.vue.build/umychart.testdata.bat +0 -3
- package/src/jscommon/umychart.vue.build/umychart.testdata.vue.export.js +0 -7
- package/src/jscommon/umychart.vue.build/umychart.vue.bat +0 -8
- package/src/jscommon/umychart.vue.build/umychart.vue.export.js +0 -112
- package/src/jscommon/umychart.vue.components/empyt.vue +0 -51
- package/src/jscommon/umychart.vue.components/historydayline.vue +0 -240
- package/src/jscommon/umychart.vue.components/jsloader.adddialog.vue +0 -315
- package/src/jscommon/umychart.vue.components/jsloader.vue +0 -93
- package/src/jscommon/umychart.vue.components/jsvuecontainer.vue +0 -160
- package/src/jscommon/umychart.vue.components/jsvuecontainer2.0.vue +0 -391
- package/src/jscommon/umychart.vue.components/login.vue +0 -178
- package/src/jscommon/umychart.vue.components/queryContent.vue +0 -750
- package/src/jscommon/umychart.vue.components/readme.txt +0 -8
- package/src/jscommon/umychart.vue.components/searchsymbol.vue +0 -299
- package/src/jscommon/umychart.vue.components/simulatetrade.vue +0 -1471
- package/src/jscommon/umychart.vue.components/stockchart.vue +0 -343
- package/src/jscommon/umychart.vue.components/stockchartV2.vue +0 -195
- package/src/jscommon/umychart.vue.components/stockdeal.vue +0 -358
- package/src/jscommon/umychart.vue.components/stockdealcount.vue +0 -262
- package/src/jscommon/umychart.vue.components/stockdeallastest.vue +0 -316
- package/src/jscommon/umychart.vue.components/stockdrawtool.vue +0 -343
- package/src/jscommon/umychart.vue.components/stockfull.vue +0 -355
- package/src/jscommon/umychart.vue.components/stockinfo.demo.vue +0 -153
- package/src/jscommon/umychart.vue.components/stockinfo.vue +0 -685
- package/src/jscommon/umychart.vue.components/stockkline.demo.vue +0 -1904
- package/src/jscommon/umychart.vue.components/stockmultiorder.vue +0 -174
- package/src/jscommon/umychart.vue.components/stockmultiperiod.vue +0 -222
- package/src/jscommon/umychart.vue.components/stockorder.vue +0 -320
- package/src/jscommon/umychart.vue.components/stocktradeinfo.demo.vue +0 -250
- package/src/jscommon/umychart.vue.components/stocktradeinfo.vue +0 -1907
- package/src/jscommon/umychart.vue.components/test.vue +0 -0
- package/src/jscommon/umychart.wechat/getDate.wechat.js +0 -91
- package/src/jscommon/umychart.wechat/lighter.news.wechat.js +0 -262
- package/src/jscommon/umychart.wechat/readme.txt +0 -3
- package/src/jscommon/umychart.wechat/umychart.analyze.wechat.js +0 -551
- package/src/jscommon/umychart.wechat/umychart.apidraw.wechat.js +0 -126
- package/src/jscommon/umychart.wechat/umychart.bigV.wechat.js +0 -2510
- package/src/jscommon/umychart.wechat/umychart.chartframe.wechat.js +0 -2931
- package/src/jscommon/umychart.wechat/umychart.chartpaint.wechat.js +0 -9752
- package/src/jscommon/umychart.wechat/umychart.charttitle.wechat.js +0 -2023
- package/src/jscommon/umychart.wechat/umychart.complier.wechat.js +0 -14726
- package/src/jscommon/umychart.wechat/umychart.console.wechat.js +0 -8
- package/src/jscommon/umychart.wechat/umychart.coordinatedata.wechat.js +0 -3654
- package/src/jscommon/umychart.wechat/umychart.data.wechat.js +0 -2243
- package/src/jscommon/umychart.wechat/umychart.element.wechart.js +0 -132
- package/src/jscommon/umychart.wechat/umychart.explainer.wechat.js +0 -1077
- package/src/jscommon/umychart.wechat/umychart.extendchart.wechat.js +0 -1140
- package/src/jscommon/umychart.wechat/umychart.framesplit.wechat.js +0 -2247
- package/src/jscommon/umychart.wechat/umychart.hqIndexformula.wechat.js +0 -941
- package/src/jscommon/umychart.wechat/umychart.index.data.wechat.js +0 -3628
- package/src/jscommon/umychart.wechat/umychart.index.wechat.js +0 -4074
- package/src/jscommon/umychart.wechat/umychart.klineinfo.wechat.js +0 -836
- package/src/jscommon/umychart.wechat/umychart.markethot.js +0 -50
- package/src/jscommon/umychart.wechat/umychart.network.wechart.js +0 -62
- package/src/jscommon/umychart.wechat/umychart.news.wechat.js +0 -3568
- package/src/jscommon/umychart.wechat/umychart.regressiontest.wechat.js +0 -412
- package/src/jscommon/umychart.wechat/umychart.report.wechat.js +0 -3983
- package/src/jscommon/umychart.wechat/umychart.resource.wechat.js +0 -919
- package/src/jscommon/umychart.wechat/umychart.shareimage.wechat.js +0 -681
- package/src/jscommon/umychart.wechat/umychart.simulatetrade.wechat.js +0 -238
- package/src/jscommon/umychart.wechat/umychart.stock.wechat.js +0 -4035
- package/src/jscommon/umychart.wechat/umychart.style.wechat.js +0 -419
- package/src/jscommon/umychart.wechat/umychart.uniapp.canvas.helper.js +0 -99
- package/src/jscommon/umychart.wechat/umychart.user.wechat.js +0 -588
- package/src/jscommon/umychart.wechat/umychart.userlog.wechat.js +0 -240
- package/src/jscommon/umychart.wechat/umychart.vedio.wechat.js +0 -112
- package/src/jscommon/umychart.wechat/umychart.version.wechat.js +0 -36
- package/src/jscommon/umychart.wechat/umychart.wechat.3.0.js +0 -12051
- package/src/jscommon/umychart.wechat/umychart.wechat.js +0 -15460
- package/src/jscommon/umychart.worker.js +0 -114
- package/src/jscommon/umychart.ws.stock.js +0 -110
- package/src/jscommon/umychart_python/.vscode/launch.json +0 -15
- package/src/jscommon/umychart_python/__init__.py +0 -4
- package/src/jscommon/umychart_python/build.cmd +0 -2
- package/src/jscommon/umychart_python/setup.py +0 -25
- package/src/jscommon/umychart_python/umychart_cache_testcase.py +0 -165
- package/src/jscommon/umychart_python/umychart_complier_data.py +0 -781
- package/src/jscommon/umychart_python/umychart_complier_help.py +0 -175
- package/src/jscommon/umychart_python/umychart_complier_job.py +0 -193
- package/src/jscommon/umychart_python/umychart_complier_jsalgorithm.py +0 -4144
- package/src/jscommon/umychart_python/umychart_complier_jscomplier.py +0 -177
- package/src/jscommon/umychart_python/umychart_complier_jsexecute.py +0 -517
- package/src/jscommon/umychart_python/umychart_complier_jsparser.py +0 -864
- package/src/jscommon/umychart_python/umychart_complier_jssymboldata.py +0 -1238
- package/src/jscommon/umychart_python/umychart_complier_jssymboldata_cache.py +0 -146
- package/src/jscommon/umychart_python/umychart_complier_jssymboldata_json.py +0 -106
- package/src/jscommon/umychart_python/umychart_complier_pandas_help.py +0 -80
- package/src/jscommon/umychart_python/umychart_complier_scanner.py +0 -554
- package/src/jscommon/umychart_python/umychart_complier_testcase.py +0 -362
- package/src/jscommon/umychart_python/umychart_complier_util.py +0 -30
- package/src/jscommon/umychart_python/umychart_webtemplate.py +0 -131
- package/src/jscommon/umychart_python/updatehqchartweb.bat +0 -5
- package/src/jscommon/vendor.js +0 -2
- package/src/pages/block.list.demo.page/App.vue +0 -117
- package/src/pages/block.list.demo.page/index.js +0 -12
- package/src/pages/brushTool.demo.page/App.vue +0 -19
- package/src/pages/brushTool.demo.page/index.js +0 -12
- package/src/pages/container.demo.page/App.vue +0 -118
- package/src/pages/container.demo.page/index.js +0 -18
- package/src/pages/dataZoom.demo.page/App.vue +0 -265
- package/src/pages/dataZoom.demo.page/components/dataZoom.vue +0 -303
- package/src/pages/dataZoom.demo.page/index.js +0 -12
- package/src/pages/historydayline.demo.page/App.vue +0 -57
- package/src/pages/historydayline.demo.page/index.js +0 -12
- package/src/pages/hq.demo.page/App.vue +0 -163
- package/src/pages/hq.demo.page/index.js +0 -12
- package/src/pages/hqchart.black/App.vue +0 -90
- package/src/pages/hqchart.black/components/searchsymbol.vue +0 -299
- package/src/pages/hqchart.black/components/stockdrawtool.vue +0 -300
- package/src/pages/hqchart.black/components/stockfull.vue +0 -313
- package/src/pages/hqchart.black/components/stockinfo.vue +0 -428
- package/src/pages/hqchart.black/components/stockkline.demo.vue +0 -1652
- package/src/pages/hqchart.black/components/stocktradeinfo.vue +0 -1337
- package/src/pages/hqchart.black/index.js +0 -30
- package/src/pages/hqchart.black/router/candlestickChart.vue +0 -108
- package/src/pages/hqchart.black/router/pricePointsTable.vue +0 -294
- package/src/pages/hqchart.black/router/stockDeallas.vue +0 -417
- package/src/pages/hqchart.black/router/timeShareChart.vue +0 -108
- package/src/pages/hqchart.page/App.vue +0 -101
- package/src/pages/hqchart.page/index.js +0 -18
- package/src/pages/index/App.vue +0 -1408
- package/src/pages/index/index.js +0 -7
- package/src/pages/indexHq/App.vue +0 -110
- package/src/pages/indexHq/index.js +0 -18
- package/src/pages/login.demo.page/App.vue +0 -22
- package/src/pages/login.demo.page/index.js +0 -12
- package/src/pages/queryContent.demo.page/App.vue +0 -29
- package/src/pages/queryContent.demo.page/index.js +0 -18
- package/src/pages/ranking.black/App.vue +0 -199
- package/src/pages/ranking.black/index.js +0 -18
- package/src/pages/search.demo.page/App.vue +0 -28
- package/src/pages/search.demo.page/index.js +0 -12
- package/src/pages/simulatetrade.demo.page/app.vue +0 -121
- package/src/pages/simulatetrade.demo.page/index.js +0 -17
- package/src/pages/stockdeal.demo.page/App.vue +0 -63
- package/src/pages/stockdeal.demo.page/index.js +0 -19
- package/src/pages/stockdealcount.demo.page/App.vue +0 -37
- package/src/pages/stockdealcount.demo.page/index.js +0 -12
- package/src/pages/stockdeallastest.demo.page/App.vue +0 -74
- package/src/pages/stockdeallastest.demo.page/index.js +0 -18
- package/src/pages/stockinfo.demo.page/App.vue +0 -92
- package/src/pages/stockinfo.demo.page/index.html +0 -13
- package/src/pages/stockinfo.demo.page/index.js +0 -19
- package/src/pages/stockkline.demo.page/App.vue +0 -55
- package/src/pages/stockkline.demo.page/index.js +0 -18
- package/src/pages/stockmultiorder.demo.page/App.vue +0 -149
- package/src/pages/stockmultiorder.demo.page/index.js +0 -18
- package/src/pages/stockmultiperiod.demo.page/App.vue +0 -87
- package/src/pages/stockmultiperiod.demo.page/index.js +0 -18
- package/src/pages/stockorder.demo.page/App.vue +0 -69
- package/src/pages/stockorder.demo.page/index.js +0 -18
- package/src/pages/test/App.vue +0 -22
- package/src/pages/test/index.js +0 -7
- package/src/pages/tradeinfopage/app.vue +0 -40
- package/src/pages/tradeinfopage/index.js +0 -7
- package/src/pages/tradeinfopage/tradeinfo.html +0 -12
- package/src/utils/urlObj.js +0 -81
- package/src/vendor.js +0 -2
- package/webpack.config.js +0 -104
|
@@ -1,114 +0,0 @@
|
|
|
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
|
-
|
|
@@ -1,110 +0,0 @@
|
|
|
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
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
// Use IntelliSense to learn about possible attributes.
|
|
3
|
-
// Hover to view descriptions of existing attributes.
|
|
4
|
-
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
|
5
|
-
"version": "0.2.0",
|
|
6
|
-
"configurations": [
|
|
7
|
-
{
|
|
8
|
-
"name": "Python: Test Case",
|
|
9
|
-
"type": "python",
|
|
10
|
-
"request": "launch",
|
|
11
|
-
"program": "${workspaceRoot}\\umychart_complier_testcase.py",
|
|
12
|
-
"console": "integratedTerminal"
|
|
13
|
-
}
|
|
14
|
-
]
|
|
15
|
-
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
from distutils.core import setup
|
|
2
|
-
setup (
|
|
3
|
-
name='HQChart', # 这个是最终打包的文件名
|
|
4
|
-
version='1.0.6',
|
|
5
|
-
author='jones2000',
|
|
6
|
-
url='https://github.com/jones2000/HQChart',
|
|
7
|
-
install_requires=['requests', 'pandas', 'numpy'],
|
|
8
|
-
#打包.py文件,
|
|
9
|
-
py_modules=[
|
|
10
|
-
'__init__',
|
|
11
|
-
'umychart_complier_data',
|
|
12
|
-
'umychart_complier_help',
|
|
13
|
-
'umychart_complier_job',
|
|
14
|
-
'umychart_complier_jsalgorithm',
|
|
15
|
-
'umychart_complier_jscomplier',
|
|
16
|
-
'umychart_complier_jsexecute',
|
|
17
|
-
'umychart_complier_jsparser',
|
|
18
|
-
'umychart_complier_jssymboldata',
|
|
19
|
-
'umychart_complier_scanner',
|
|
20
|
-
'umychart_complier_testcase',
|
|
21
|
-
'umychart_complier_util'
|
|
22
|
-
'umychart_webtemplate'
|
|
23
|
-
],
|
|
24
|
-
license='MIT',
|
|
25
|
-
)
|
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
# Copyright (c) 2018 jones
|
|
2
|
-
#
|
|
3
|
-
# http://www.apache.org/licenses/LICENSE-2.0
|
|
4
|
-
#
|
|
5
|
-
# 开源项目 https://github.com/jones2000/HQChart
|
|
6
|
-
#
|
|
7
|
-
# jones_2000@163.com
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
import sys
|
|
11
|
-
import codecs
|
|
12
|
-
import time
|
|
13
|
-
import numpy as np
|
|
14
|
-
from umychart_complier_jscomplier import JSComplier, SymbolOption, HQ_DATA_TYPE
|
|
15
|
-
from umychart_complier_data import PERIOD_ID
|
|
16
|
-
from umychart_complier_jscomplier import ScriptIndexConsole, ScriptIndexItem, SymbolOption, RequestOption, HQ_DATA_TYPE, ArgumentItem
|
|
17
|
-
from umychart_complier_pandas_help import JSComplierPandasHelper
|
|
18
|
-
from umychart_complier_jssymboldata import JSSymbolData
|
|
19
|
-
from umychart_complier_jssymboldata_cache import SymbolDataCache
|
|
20
|
-
|
|
21
|
-
# 单个股票的数据都放这里, 脚本执行的时候直接读这里的数据
|
|
22
|
-
class CacheItem():
|
|
23
|
-
def __init__(self, symbol) :
|
|
24
|
-
self.Symbol=symbol
|
|
25
|
-
self.KData=None # K线数据
|
|
26
|
-
|
|
27
|
-
# 加载数据
|
|
28
|
-
def Load(self):
|
|
29
|
-
data = np.array([
|
|
30
|
-
(20200326, 3.5, 3.51, 3.53, 3.49, 85418999.0),
|
|
31
|
-
(20200327, 3.53, 3.52, 3.54, 3.51, 70252329.0),
|
|
32
|
-
(20200330, 3.51, 3.52, 3.52, 3.5, 81439044.0),
|
|
33
|
-
(20200331, 3.53, 3.48, 3.54, 3.48, 69618442.0),
|
|
34
|
-
(20200401, 3.49, 3.48, 3.51, 3.48, 66160346.0),
|
|
35
|
-
(20200402, 3.47, 3.5, 3.5, 3.46, 74938267.0),
|
|
36
|
-
(20200403, 3.49, 3.49, 3.5, 3.48, 56193251.0),
|
|
37
|
-
(20200407, 3.52, 3.51, 3.53, 3.5, 82141037.0),
|
|
38
|
-
(20200408, 3.5, 3.49, 3.5, 3.48, 55274495.0),
|
|
39
|
-
(20200409, 3.5, 3.49, 3.5, 3.49, 35858062.0)])
|
|
40
|
-
self.KData=data
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
# 管理所有的股票缓存数据
|
|
44
|
-
class CacheData:
|
|
45
|
-
Cache={} # 数据缓存
|
|
46
|
-
|
|
47
|
-
@staticmethod
|
|
48
|
-
def Load():
|
|
49
|
-
arySymbol=['600000.sh','000001.sz']
|
|
50
|
-
for item in arySymbol:
|
|
51
|
-
stock=CacheItem(item)
|
|
52
|
-
stock.Load()
|
|
53
|
-
CacheData.Cache[item]=stock
|
|
54
|
-
|
|
55
|
-
@staticmethod
|
|
56
|
-
def LoadCacheData(symbolData) : # 加载自己的外部数据
|
|
57
|
-
print("[CacheData::LoadCacheData] start load [{0},Period={1},Right={2}] cache to hqchart".format(symbolData.Symbol, symbolData.Period, symbolData.Right))
|
|
58
|
-
if (not symbolData.Symbol in CacheData.Cache.keys()) :
|
|
59
|
-
# 报错缓存里面没这个股票数据
|
|
60
|
-
return
|
|
61
|
-
|
|
62
|
-
stock=CacheData.Cache[symbolData.Symbol]
|
|
63
|
-
kData=stock.KData
|
|
64
|
-
aryDate=list(kData[:, 0]) # !! 有问题 怎么是小数的 要转成int才可以
|
|
65
|
-
aryOpen = list(kData[:, 1])
|
|
66
|
-
aryHigh = list(kData[:, 3])
|
|
67
|
-
aryLow = list(kData[:, 4])
|
|
68
|
-
aryClose = list(kData[:, 2])
|
|
69
|
-
aryVol = list(kData[:, 5])
|
|
70
|
-
|
|
71
|
-
# 对应股票的K线数据 (必须设置)
|
|
72
|
-
symbolData.Data.Data['CLOSE']=aryClose
|
|
73
|
-
symbolData.Data.Data['DATE']=aryDate
|
|
74
|
-
symbolData.Data.Data['VOL']=aryVol
|
|
75
|
-
symbolData.Data.Data['LOW']=aryLow
|
|
76
|
-
symbolData.Data.Data['HIGH']=aryHigh
|
|
77
|
-
symbolData.Data.Data['OPEN']=aryOpen
|
|
78
|
-
symbolData.Data.Data['AMOUNT']=aryVol
|
|
79
|
-
|
|
80
|
-
# 财务数据
|
|
81
|
-
#FINANCE(7)
|
|
82
|
-
symbolData.FinanceData[7]=[14922777132.0, 114922777132.021, 14922777132.0, 14922777132.0, 14922777132.0,
|
|
83
|
-
21618279922.0, 14922777132.3, 14922777132.0, 21618279922.0, 21618279922.0]
|
|
84
|
-
|
|
85
|
-
# 大盘数据 数据要和对应这个股票的日期对应上
|
|
86
|
-
symbolData.IndexData.Data["CLOSE"]=[210, 211, 210.3, 211.2, 211.3, 210.3, 210.4]
|
|
87
|
-
|
|
88
|
-
# 最新行情
|
|
89
|
-
# DYNAINFO(4)
|
|
90
|
-
symbolData.LatestKCache[4]=15 # 最新行情单值
|
|
91
|
-
|
|
92
|
-
pass
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
MACD_INDEX = '''
|
|
98
|
-
DIF:=EMA(C,12)-EMA(C,26);
|
|
99
|
-
DEA:=EMA(DIF,9);
|
|
100
|
-
MACD:(DIF-DEA)*2;
|
|
101
|
-
'''
|
|
102
|
-
|
|
103
|
-
TEST_INDEX = '''
|
|
104
|
-
T17:CURRBARSCOUNT;
|
|
105
|
-
T16:PEAKBARS(0,5,1);
|
|
106
|
-
T15:TROUGHBARS(2,5,2);
|
|
107
|
-
T14:ZIG(3,5);
|
|
108
|
-
T13:COSTEX(CLOSE,REF(CLOSE,1));
|
|
109
|
-
T12:PPART(5);
|
|
110
|
-
T11:COST(10);
|
|
111
|
-
T0:WINNER(CLOSE);
|
|
112
|
-
//T1:INDEXC;
|
|
113
|
-
T3:FINANCE(7);
|
|
114
|
-
T2:C;
|
|
115
|
-
T4:DYNAINFO(4);
|
|
116
|
-
T5:-5;
|
|
117
|
-
T6:-C;
|
|
118
|
-
'''
|
|
119
|
-
|
|
120
|
-
def RunTestCase():
|
|
121
|
-
|
|
122
|
-
SymbolDataCache.LoadCallback=CacheData.LoadCacheData # 设置第3放数据加载回调
|
|
123
|
-
|
|
124
|
-
name='测试脚本'
|
|
125
|
-
|
|
126
|
-
# 指标脚本代码
|
|
127
|
-
script=TEST_INDEX
|
|
128
|
-
|
|
129
|
-
# 参数
|
|
130
|
-
args=[ ArgumentItem(name='M1', value=5), ArgumentItem(name='M2', value=10), ArgumentItem(name='M3', value=20)]
|
|
131
|
-
|
|
132
|
-
scpritInfo=ScriptIndexItem(name=name, id=888888, script=script, args=args)
|
|
133
|
-
indexConsole = ScriptIndexConsole(scpritInfo)
|
|
134
|
-
|
|
135
|
-
arySymbol=['600000.sh','000001.sz'] # 要执行策略的股票池
|
|
136
|
-
aryResult=[] # 结果数据
|
|
137
|
-
|
|
138
|
-
runTime=time.time()
|
|
139
|
-
|
|
140
|
-
for item in arySymbol :
|
|
141
|
-
startTime = time.time()
|
|
142
|
-
option = SymbolOption(
|
|
143
|
-
symbol=item,
|
|
144
|
-
right=1, # 复权 0 不复权 1 前复权 2 后复权
|
|
145
|
-
period=PERIOD_ID.DAY, # 周期
|
|
146
|
-
request=RequestOption(maxDataCount=500,maxMinuteDayCount=3)
|
|
147
|
-
)
|
|
148
|
-
|
|
149
|
-
# 替换成自己的数据类
|
|
150
|
-
option.ProcCreateSymbolData=SymbolDataCache.Create
|
|
151
|
-
result=indexConsole.ExecuteScript(option,False) # 使用缓存的AST执行
|
|
152
|
-
endTime = time.time()
|
|
153
|
-
|
|
154
|
-
print("[RunTestCase] 股票:{0} 耗时:{1}".format(item, endTime - startTime))
|
|
155
|
-
|
|
156
|
-
aryResult.append(result)
|
|
157
|
-
|
|
158
|
-
print("[RunTestCase] 股票个数:{0} 耗时:{1}".format(len(arySymbol), time.time() - runTime))
|
|
159
|
-
|
|
160
|
-
return aryResult
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
CacheData.Load() # 加载股票数据到内存
|
|
164
|
-
|
|
165
|
-
RunTestCase()
|