hqchart 1.1.13409 → 1.1.13436
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.NetworkFilterTest.vue.js +3 -2
- package/lib/umychart.vue.js +24 -12
- package/package.json +1 -1
- package/src/jscommon/umychart.NetworkFilterTest.js +34 -0
- package/src/jscommon/umychart.complier.js +54 -0
- package/src/jscommon/umychart.index.data.js +16 -0
- package/src/jscommon/umychart.js +85 -3
- package/src/jscommon/umychart.testdata/000001.sh.day.kline.js +79866 -0
- package/src/jscommon/umychart.testdata/399001.sz.day.kline.js +78515 -0
- package/src/jscommon/umychart.testdata.js +34 -0
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +166 -7
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +34 -0
- package/src/jscommon/umychart.vue/umychart.vue.js +156 -4
|
@@ -55,6 +55,15 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
55
55
|
HQData.RequestLatestData(data,callback);
|
|
56
56
|
break;
|
|
57
57
|
|
|
58
|
+
|
|
59
|
+
case "KLineChartContainer::RequestOverlayHistoryData": //叠加股票
|
|
60
|
+
HQData.RequestOverlayHistoryData(data, callback);
|
|
61
|
+
break;
|
|
62
|
+
|
|
63
|
+
case "KLineChartContainer::RequestOverlayHistoryMinuteData":
|
|
64
|
+
HQData.RequestOverlayHistoryMinuteData(data, callback);
|
|
65
|
+
break;
|
|
66
|
+
|
|
58
67
|
|
|
59
68
|
|
|
60
69
|
|
|
@@ -376,3 +385,28 @@ HQData.RequestLatestData=function(data,callback)
|
|
|
376
385
|
|
|
377
386
|
callback(hqchartData);
|
|
378
387
|
}
|
|
388
|
+
|
|
389
|
+
HQData.RequestOverlayHistoryData=function(data, callback)
|
|
390
|
+
{
|
|
391
|
+
data.PreventDefault=true;
|
|
392
|
+
var symbol=data.Request.Data.symbol;
|
|
393
|
+
var hqchartData={ symbol: symbol,name: symbol };
|
|
394
|
+
if (symbol=="399001.sz")
|
|
395
|
+
hqchartData.data=KLINE_DAY_OVERLAY_DATA2.data
|
|
396
|
+
else
|
|
397
|
+
hqchartData.data=KLINE_DAY_OVERLAY_DATA.data
|
|
398
|
+
|
|
399
|
+
callback(hqchartData);
|
|
400
|
+
}
|
|
401
|
+
|
|
402
|
+
HQData.RequestOverlayHistoryMinuteData=function(data, callback)
|
|
403
|
+
{
|
|
404
|
+
data.PreventDefault=true;
|
|
405
|
+
var symbol=data.Request.Data.symbol;
|
|
406
|
+
var hqchartData={ symbol: symbol,name: symbol };
|
|
407
|
+
hqchartData.data=KLINE_MINUTE_DATA2.data;
|
|
408
|
+
|
|
409
|
+
callback(hqchartData);
|
|
410
|
+
}
|
|
411
|
+
|
|
412
|
+
|
|
@@ -125,6 +125,8 @@ function JSIndexScript()
|
|
|
125
125
|
["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
|
|
126
126
|
["ADX", this.ADX],
|
|
127
127
|
|
|
128
|
+
["持仓量", this.VOL_POSITION], //成交量+持仓量
|
|
129
|
+
|
|
128
130
|
//通达信特色指标
|
|
129
131
|
["散户线", this.ShareholderCount],["NXTS", this.NXTS],["FKX", this.FKX],["两融资金", this.Margin4],
|
|
130
132
|
["ZSDB",this.ZSDB],
|
|
@@ -3363,6 +3365,20 @@ JSIndexScript.prototype.CJL = function ()
|
|
|
3363
3365
|
return data;
|
|
3364
3366
|
}
|
|
3365
3367
|
|
|
3368
|
+
JSIndexScript.prototype.VOL_POSITION=function()
|
|
3369
|
+
{
|
|
3370
|
+
let data =
|
|
3371
|
+
{
|
|
3372
|
+
Name: '持仓量', Description: '持仓量', IsMainIndex: false,
|
|
3373
|
+
Args: [],
|
|
3374
|
+
Script: //脚本
|
|
3375
|
+
"成交量:VOL,VOLSTICK;\n\
|
|
3376
|
+
持仓量:VOLINSTK,SINGLELINE;"
|
|
3377
|
+
};
|
|
3378
|
+
|
|
3379
|
+
return data;
|
|
3380
|
+
}
|
|
3381
|
+
|
|
3366
3382
|
JSIndexScript.prototype.ASI = function ()
|
|
3367
3383
|
{
|
|
3368
3384
|
let data =
|
|
@@ -6488,7 +6504,7 @@ var JSCHART_EVENT_ID=
|
|
|
6488
6504
|
|
|
6489
6505
|
|
|
6490
6506
|
ON_CHANGE_INDEX:150, //切换指标
|
|
6491
|
-
ON_MENU_COMMAND:151,
|
|
6507
|
+
ON_MENU_COMMAND:151, //菜单事件回调
|
|
6492
6508
|
ON_CREATE_RIGHT_MENU:152, //创建右键菜单
|
|
6493
6509
|
|
|
6494
6510
|
ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
|
|
@@ -24664,6 +24680,7 @@ function ChartData()
|
|
|
24664
24680
|
var yClose=this.Data[index].YClose;
|
|
24665
24681
|
|
|
24666
24682
|
result[index]=HistoryData.Copy(this.Data[index]);
|
|
24683
|
+
result[index].RightSeed=seed;
|
|
24667
24684
|
|
|
24668
24685
|
for(--index; index>=0; --index)
|
|
24669
24686
|
{
|
|
@@ -24694,6 +24711,7 @@ function ChartData()
|
|
|
24694
24711
|
var seed=1;
|
|
24695
24712
|
var close=this.Data[index].Close;
|
|
24696
24713
|
result[index]=HistoryData.Copy(this.Data[index]);
|
|
24714
|
+
result[index].RightSeed=seed;
|
|
24697
24715
|
|
|
24698
24716
|
for(++index;index<this.Data.length;++index)
|
|
24699
24717
|
{
|
|
@@ -35023,6 +35041,86 @@ function ChartOverlayLine()
|
|
|
35023
35041
|
}
|
|
35024
35042
|
}
|
|
35025
35043
|
|
|
35044
|
+
//独立线段
|
|
35045
|
+
function ChartSingleLine()
|
|
35046
|
+
{
|
|
35047
|
+
this.newMethod=ChartLine; //派生
|
|
35048
|
+
this.newMethod();
|
|
35049
|
+
delete this.newMethod;
|
|
35050
|
+
|
|
35051
|
+
this.ClassName='ChartSingleLine'; //类名
|
|
35052
|
+
this.MaxMin=null; //当前的显示范围
|
|
35053
|
+
|
|
35054
|
+
this.Draw=function()
|
|
35055
|
+
{
|
|
35056
|
+
this.MaxMin=null;
|
|
35057
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
35058
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
35059
|
+
if (this.IsHideScriptIndex()) return;
|
|
35060
|
+
|
|
35061
|
+
if (!this.Data || !this.Data.Data) return;
|
|
35062
|
+
|
|
35063
|
+
this.MaxMin=this.GetCurrentMaxMin();
|
|
35064
|
+
if (!this.MaxMin) return;
|
|
35065
|
+
if (!IFrameSplitOperator.IsNumber(this.MaxMin.Max) || !IFrameSplitOperator.IsNumber(this.MaxMin.Min)) return;
|
|
35066
|
+
|
|
35067
|
+
switch(this.DrawType)
|
|
35068
|
+
{
|
|
35069
|
+
|
|
35070
|
+
default:
|
|
35071
|
+
return this.DrawStraightLine();
|
|
35072
|
+
}
|
|
35073
|
+
}
|
|
35074
|
+
|
|
35075
|
+
//获取当前页的最大最小值
|
|
35076
|
+
this.GetCurrentMaxMin=function()
|
|
35077
|
+
{
|
|
35078
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
35079
|
+
var range={ Max:null, Min:null };
|
|
35080
|
+
|
|
35081
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
35082
|
+
{
|
|
35083
|
+
var value=this.Data.Data[i];
|
|
35084
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
35085
|
+
|
|
35086
|
+
if (range.Max==null) range.Max=value;
|
|
35087
|
+
if (range.Min==null) range.Min=value;
|
|
35088
|
+
|
|
35089
|
+
if (range.Max<value) range.Max=value;
|
|
35090
|
+
if (range.Min>value) range.Min=value;
|
|
35091
|
+
}
|
|
35092
|
+
|
|
35093
|
+
return range;
|
|
35094
|
+
}
|
|
35095
|
+
|
|
35096
|
+
this.GetMaxMin=function()
|
|
35097
|
+
{
|
|
35098
|
+
return { Max:null, Min:null };
|
|
35099
|
+
}
|
|
35100
|
+
|
|
35101
|
+
this.GetYFromData=function(value)
|
|
35102
|
+
{
|
|
35103
|
+
var bHScreen = (this.ChartFrame.IsHScreen === true);
|
|
35104
|
+
|
|
35105
|
+
if (bHScreen)
|
|
35106
|
+
{
|
|
35107
|
+
if (value <= this.MaxMin.Min) return this.ChartBorder.GetLeftEx();
|
|
35108
|
+
if (value >= this.MaxMin.Max) return this.ChartBorder.GetRightEx();
|
|
35109
|
+
|
|
35110
|
+
var width = this.ChartBorder.GetWidthEx() * (value - this.MaxMin.Min) / (this.MaxMin.Max - this.MaxMin.Min);
|
|
35111
|
+
return this.ChartBorder.GetLeftEx() + width;
|
|
35112
|
+
}
|
|
35113
|
+
else
|
|
35114
|
+
{
|
|
35115
|
+
if(value<=this.MaxMin.Min) return this.ChartBorder.GetBottomEx();
|
|
35116
|
+
if(value>=this.MaxMin.Max) return this.ChartBorder.GetTopEx();
|
|
35117
|
+
|
|
35118
|
+
var height=this.ChartBorder.GetHeightEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);
|
|
35119
|
+
return this.ChartBorder.GetBottomEx()-height;
|
|
35120
|
+
}
|
|
35121
|
+
}
|
|
35122
|
+
}
|
|
35123
|
+
|
|
35026
35124
|
//彩色线段
|
|
35027
35125
|
function ChartPartLine()
|
|
35028
35126
|
{
|
|
@@ -37943,8 +38041,8 @@ function ChartMinutePriceLine()
|
|
|
37943
38041
|
if (isHScreen===true) chartright=this.ChartBorder.GetBottom();
|
|
37944
38042
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
37945
38043
|
var minuteCount=this.ChartFrame.MinuteCount;
|
|
37946
|
-
var bottom=this.ChartBorder.
|
|
37947
|
-
var left=this.ChartBorder.
|
|
38044
|
+
var bottom=this.ChartBorder.GetBottom();
|
|
38045
|
+
var left=this.ChartBorder.GetLeft();
|
|
37948
38046
|
var data=this.Data;
|
|
37949
38047
|
|
|
37950
38048
|
this.DrawBeforeOpen(); //盘前
|
|
@@ -113838,6 +113936,7 @@ function JSExecute(ast,option)
|
|
|
113838
113936
|
let isExData=false;
|
|
113839
113937
|
let isDotLine=false;
|
|
113840
113938
|
let isOverlayLine=false; //叠加线
|
|
113939
|
+
let isSingleLine=false; //独立线段
|
|
113841
113940
|
var isNoneName=false;
|
|
113842
113941
|
var isShowTitle=true;
|
|
113843
113942
|
//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
|
|
@@ -113894,9 +113993,11 @@ function JSExecute(ast,option)
|
|
|
113894
113993
|
else if (value==="DRAWCENTER") isDrawCenter=true;
|
|
113895
113994
|
else if (value=="DRAWBELOW") isDrawBelow=true;
|
|
113896
113995
|
else if (value=="STEPLINE") stepLine=true;
|
|
113996
|
+
else if (value=="SINGLELINE") isSingleLine=true;
|
|
113897
113997
|
else if (value.indexOf('COLOR')==0) color=value;
|
|
113898
113998
|
else if (value.indexOf("RGBX")==0 && value.length==10) color=value; //RGBX+“RRGGBB”
|
|
113899
113999
|
else if (value.indexOf('LINETHICK')==0) lineWidth=value;
|
|
114000
|
+
|
|
113900
114001
|
|
|
113901
114002
|
else if (value=="ALIGN0") drawAlign=0;
|
|
113902
114003
|
else if (value=="ALIGN1") drawAlign=1;
|
|
@@ -114145,6 +114246,7 @@ function JSExecute(ast,option)
|
|
|
114145
114246
|
if (isExData==true) value.IsExData = true;
|
|
114146
114247
|
if (isDotLine==true) value.IsDotLine=true;
|
|
114147
114248
|
if (isOverlayLine==true) value.IsOverlayLine=true;
|
|
114249
|
+
if (isSingleLine==true) value.IsSingleLine=true;
|
|
114148
114250
|
if (isNoneName==true) value.NoneName=true;
|
|
114149
114251
|
if (isShowTitle==false) value.IsShowTitle=false;
|
|
114150
114252
|
if (stepLine==true) value.Type=7;
|
|
@@ -114180,6 +114282,7 @@ function JSExecute(ast,option)
|
|
|
114180
114282
|
if (isExData==true) value.IsExData = true;
|
|
114181
114283
|
if (isDotLine==true) value.IsDotLine=true;
|
|
114182
114284
|
if (isOverlayLine==true) value.IsOverlayLine=true;
|
|
114285
|
+
if (isSingleLine==true) value.IsSingleLine=true;
|
|
114183
114286
|
if (isShowTitle==false) value.IsShowTitle=false;
|
|
114184
114287
|
if (stepLine==true) value.Type=7;
|
|
114185
114288
|
this.OutVarTable.push(value);
|
|
@@ -117007,6 +117110,54 @@ function ScriptIndex(name,script,args,option)
|
|
|
117007
117110
|
hqChart.ChartPaint.push(line);
|
|
117008
117111
|
}
|
|
117009
117112
|
|
|
117113
|
+
this.CreateSingleLine=function(hqChart,windowIndex,varItem,id,lineType)
|
|
117114
|
+
{
|
|
117115
|
+
var line=new ChartSingleLine();
|
|
117116
|
+
line.Canvas=hqChart.Canvas;
|
|
117117
|
+
line.DrawType=1;
|
|
117118
|
+
line.Name=varItem.Name;
|
|
117119
|
+
line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
117120
|
+
line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
117121
|
+
line.Identify=this.Guid;
|
|
117122
|
+
if (varItem.Color) line.Color=this.GetColor(varItem.Color);
|
|
117123
|
+
else line.Color=this.GetDefaultColor(id);
|
|
117124
|
+
|
|
117125
|
+
if (varItem.LineWidth)
|
|
117126
|
+
{
|
|
117127
|
+
let width=parseInt(varItem.LineWidth.replace("LINETHICK",""));
|
|
117128
|
+
if (!isNaN(width) && width>0) line.LineWidth=width;
|
|
117129
|
+
}
|
|
117130
|
+
|
|
117131
|
+
if (varItem.IsDotLine) line.IsDotLine=true; //虚线
|
|
117132
|
+
if (varItem.IsShow==false) line.IsShow=false;
|
|
117133
|
+
|
|
117134
|
+
let titleIndex=windowIndex+1;
|
|
117135
|
+
line.Data.Data=varItem.Data;
|
|
117136
|
+
|
|
117137
|
+
this.ReloadChartResource(hqChart,windowIndex,line);
|
|
117138
|
+
|
|
117139
|
+
if (varItem.IsShowTitle===false) //NOTEXT 不绘制标题
|
|
117140
|
+
{
|
|
117141
|
+
|
|
117142
|
+
}
|
|
117143
|
+
else if (IFrameSplitOperator.IsString(varItem.Name) && varItem.Name.indexOf("NOTEXT")==0) //标题中包含NOTEXT不绘制标题
|
|
117144
|
+
{
|
|
117145
|
+
|
|
117146
|
+
}
|
|
117147
|
+
else
|
|
117148
|
+
{
|
|
117149
|
+
if (varItem.NoneName)
|
|
117150
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);
|
|
117151
|
+
else
|
|
117152
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
117153
|
+
|
|
117154
|
+
this.SetTitleData(hqChart.TitlePaint[titleIndex].Data[id],line);
|
|
117155
|
+
}
|
|
117156
|
+
|
|
117157
|
+
this.SetChartIndexName(line);
|
|
117158
|
+
hqChart.ChartPaint.push(line);
|
|
117159
|
+
}
|
|
117160
|
+
|
|
117010
117161
|
//创建柱子
|
|
117011
117162
|
this.CreateBar=function(hqChart,windowIndex,varItem,id)
|
|
117012
117163
|
{
|
|
@@ -118311,6 +118462,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
118311
118462
|
if (item.Type==0)
|
|
118312
118463
|
{
|
|
118313
118464
|
if (item.IsOverlayLine) this.CreateOverlayLine(hqChart,windowIndex,item,i,item.Type);
|
|
118465
|
+
else if (item.IsSingleLine) this.CreateSingleLine(hqChart,windowIndex,item,i,item.Type);
|
|
118314
118466
|
else this.CreateLine(hqChart,windowIndex,item,i,item.Type);
|
|
118315
118467
|
}
|
|
118316
118468
|
else if (item.Type==1)
|
|
@@ -134033,7 +134185,7 @@ function ScrollBarBGChart()
|
|
|
134033
134185
|
|
|
134034
134186
|
|
|
134035
134187
|
|
|
134036
|
-
var HQCHART_VERSION="1.1.
|
|
134188
|
+
var HQCHART_VERSION="1.1.13435";
|
|
134037
134189
|
|
|
134038
134190
|
function PrintHQChartVersion()
|
|
134039
134191
|
{
|
|
@@ -134138,6 +134290,13 @@ export default {
|
|
|
134138
134290
|
|
|
134139
134291
|
CoordinateInfo:CoordinateInfo,
|
|
134140
134292
|
|
|
134293
|
+
//图形基类导出
|
|
134294
|
+
IChartPainting:IChartPainting, //图形
|
|
134295
|
+
IExtendChartPainting:IExtendChartPainting, //扩展图形
|
|
134296
|
+
IChartTitlePainting:IChartTitlePainting, //标题类
|
|
134297
|
+
IChartDrawPicture:IChartDrawPicture, //画图工具
|
|
134298
|
+
DynamicTitleData:DynamicTitleData, //指标标题数据
|
|
134299
|
+
|
|
134141
134300
|
//成交明细
|
|
134142
134301
|
JSDealChart:JSDealChart,
|
|
134143
134302
|
DEAL_COLUMN_ID:DEAL_COLUMN_ID,
|
|
@@ -134146,9 +134305,9 @@ export default {
|
|
|
134146
134305
|
JSReportChart:JSReportChart,
|
|
134147
134306
|
REPORT_COLUMN_ID:REPORT_COLUMN_ID,
|
|
134148
134307
|
|
|
134149
|
-
|
|
134150
|
-
|
|
134151
|
-
|
|
134308
|
+
//键盘精灵
|
|
134309
|
+
JSKeyboardChart:JSKeyboardChart,
|
|
134310
|
+
KEYBOARD_COLUMN_ID:KEYBOARD_COLUMN_ID,
|
|
134152
134311
|
|
|
134153
134312
|
//X轴滚动条
|
|
134154
134313
|
JSScrollBarChart:JSScrollBarChart,
|
|
@@ -48730,6 +48730,15 @@ HQData.NetworkFilter=function(data, callback)
|
|
|
48730
48730
|
HQData.RequestLatestData(data,callback);
|
|
48731
48731
|
break;
|
|
48732
48732
|
|
|
48733
|
+
|
|
48734
|
+
case "KLineChartContainer::RequestOverlayHistoryData": //叠加股票
|
|
48735
|
+
HQData.RequestOverlayHistoryData(data, callback);
|
|
48736
|
+
break;
|
|
48737
|
+
|
|
48738
|
+
case "KLineChartContainer::RequestOverlayHistoryMinuteData":
|
|
48739
|
+
HQData.RequestOverlayHistoryMinuteData(data, callback);
|
|
48740
|
+
break;
|
|
48741
|
+
|
|
48733
48742
|
|
|
48734
48743
|
|
|
48735
48744
|
|
|
@@ -49052,6 +49061,31 @@ HQData.RequestLatestData=function(data,callback)
|
|
|
49052
49061
|
callback(hqchartData);
|
|
49053
49062
|
}
|
|
49054
49063
|
|
|
49064
|
+
HQData.RequestOverlayHistoryData=function(data, callback)
|
|
49065
|
+
{
|
|
49066
|
+
data.PreventDefault=true;
|
|
49067
|
+
var symbol=data.Request.Data.symbol;
|
|
49068
|
+
var hqchartData={ symbol: symbol,name: symbol };
|
|
49069
|
+
if (symbol=="399001.sz")
|
|
49070
|
+
hqchartData.data=KLINE_DAY_OVERLAY_DATA2.data
|
|
49071
|
+
else
|
|
49072
|
+
hqchartData.data=KLINE_DAY_OVERLAY_DATA.data
|
|
49073
|
+
|
|
49074
|
+
callback(hqchartData);
|
|
49075
|
+
}
|
|
49076
|
+
|
|
49077
|
+
HQData.RequestOverlayHistoryMinuteData=function(data, callback)
|
|
49078
|
+
{
|
|
49079
|
+
data.PreventDefault=true;
|
|
49080
|
+
var symbol=data.Request.Data.symbol;
|
|
49081
|
+
var hqchartData={ symbol: symbol,name: symbol };
|
|
49082
|
+
hqchartData.data=KLINE_MINUTE_DATA2.data;
|
|
49083
|
+
|
|
49084
|
+
callback(hqchartData);
|
|
49085
|
+
}
|
|
49086
|
+
|
|
49087
|
+
|
|
49088
|
+
|
|
49055
49089
|
|
|
49056
49090
|
/*暴露外部用的方法*/
|
|
49057
49091
|
export default
|
|
@@ -169,6 +169,8 @@ function JSIndexScript()
|
|
|
169
169
|
["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
|
|
170
170
|
["ADX", this.ADX],
|
|
171
171
|
|
|
172
|
+
["持仓量", this.VOL_POSITION], //成交量+持仓量
|
|
173
|
+
|
|
172
174
|
//通达信特色指标
|
|
173
175
|
["散户线", this.ShareholderCount],["NXTS", this.NXTS],["FKX", this.FKX],["两融资金", this.Margin4],
|
|
174
176
|
["ZSDB",this.ZSDB],
|
|
@@ -3407,6 +3409,20 @@ JSIndexScript.prototype.CJL = function ()
|
|
|
3407
3409
|
return data;
|
|
3408
3410
|
}
|
|
3409
3411
|
|
|
3412
|
+
JSIndexScript.prototype.VOL_POSITION=function()
|
|
3413
|
+
{
|
|
3414
|
+
let data =
|
|
3415
|
+
{
|
|
3416
|
+
Name: '持仓量', Description: '持仓量', IsMainIndex: false,
|
|
3417
|
+
Args: [],
|
|
3418
|
+
Script: //脚本
|
|
3419
|
+
"成交量:VOL,VOLSTICK;\n\
|
|
3420
|
+
持仓量:VOLINSTK,SINGLELINE;"
|
|
3421
|
+
};
|
|
3422
|
+
|
|
3423
|
+
return data;
|
|
3424
|
+
}
|
|
3425
|
+
|
|
3410
3426
|
JSIndexScript.prototype.ASI = function ()
|
|
3411
3427
|
{
|
|
3412
3428
|
let data =
|
|
@@ -6532,7 +6548,7 @@ var JSCHART_EVENT_ID=
|
|
|
6532
6548
|
|
|
6533
6549
|
|
|
6534
6550
|
ON_CHANGE_INDEX:150, //切换指标
|
|
6535
|
-
ON_MENU_COMMAND:151,
|
|
6551
|
+
ON_MENU_COMMAND:151, //菜单事件回调
|
|
6536
6552
|
ON_CREATE_RIGHT_MENU:152, //创建右键菜单
|
|
6537
6553
|
|
|
6538
6554
|
ON_FORMAT_CALL_AUCTION_INDEX_TITLE:153, //集合竞价指标窗口标题内容
|
|
@@ -24708,6 +24724,7 @@ function ChartData()
|
|
|
24708
24724
|
var yClose=this.Data[index].YClose;
|
|
24709
24725
|
|
|
24710
24726
|
result[index]=HistoryData.Copy(this.Data[index]);
|
|
24727
|
+
result[index].RightSeed=seed;
|
|
24711
24728
|
|
|
24712
24729
|
for(--index; index>=0; --index)
|
|
24713
24730
|
{
|
|
@@ -24738,6 +24755,7 @@ function ChartData()
|
|
|
24738
24755
|
var seed=1;
|
|
24739
24756
|
var close=this.Data[index].Close;
|
|
24740
24757
|
result[index]=HistoryData.Copy(this.Data[index]);
|
|
24758
|
+
result[index].RightSeed=seed;
|
|
24741
24759
|
|
|
24742
24760
|
for(++index;index<this.Data.length;++index)
|
|
24743
24761
|
{
|
|
@@ -35067,6 +35085,86 @@ function ChartOverlayLine()
|
|
|
35067
35085
|
}
|
|
35068
35086
|
}
|
|
35069
35087
|
|
|
35088
|
+
//独立线段
|
|
35089
|
+
function ChartSingleLine()
|
|
35090
|
+
{
|
|
35091
|
+
this.newMethod=ChartLine; //派生
|
|
35092
|
+
this.newMethod();
|
|
35093
|
+
delete this.newMethod;
|
|
35094
|
+
|
|
35095
|
+
this.ClassName='ChartSingleLine'; //类名
|
|
35096
|
+
this.MaxMin=null; //当前的显示范围
|
|
35097
|
+
|
|
35098
|
+
this.Draw=function()
|
|
35099
|
+
{
|
|
35100
|
+
this.MaxMin=null;
|
|
35101
|
+
if (!this.IsShow || this.ChartFrame.IsMinSize || !this.IsVisible) return;
|
|
35102
|
+
if (this.IsShowIndexTitleOnly()) return;
|
|
35103
|
+
if (this.IsHideScriptIndex()) return;
|
|
35104
|
+
|
|
35105
|
+
if (!this.Data || !this.Data.Data) return;
|
|
35106
|
+
|
|
35107
|
+
this.MaxMin=this.GetCurrentMaxMin();
|
|
35108
|
+
if (!this.MaxMin) return;
|
|
35109
|
+
if (!IFrameSplitOperator.IsNumber(this.MaxMin.Max) || !IFrameSplitOperator.IsNumber(this.MaxMin.Min)) return;
|
|
35110
|
+
|
|
35111
|
+
switch(this.DrawType)
|
|
35112
|
+
{
|
|
35113
|
+
|
|
35114
|
+
default:
|
|
35115
|
+
return this.DrawStraightLine();
|
|
35116
|
+
}
|
|
35117
|
+
}
|
|
35118
|
+
|
|
35119
|
+
//获取当前页的最大最小值
|
|
35120
|
+
this.GetCurrentMaxMin=function()
|
|
35121
|
+
{
|
|
35122
|
+
var xPointCount=this.ChartFrame.XPointCount;
|
|
35123
|
+
var range={ Max:null, Min:null };
|
|
35124
|
+
|
|
35125
|
+
for(var i=this.Data.DataOffset,j=0;i<this.Data.Data.length && j<xPointCount;++i,++j)
|
|
35126
|
+
{
|
|
35127
|
+
var value=this.Data.Data[i];
|
|
35128
|
+
if (!IFrameSplitOperator.IsNumber(value)) continue;
|
|
35129
|
+
|
|
35130
|
+
if (range.Max==null) range.Max=value;
|
|
35131
|
+
if (range.Min==null) range.Min=value;
|
|
35132
|
+
|
|
35133
|
+
if (range.Max<value) range.Max=value;
|
|
35134
|
+
if (range.Min>value) range.Min=value;
|
|
35135
|
+
}
|
|
35136
|
+
|
|
35137
|
+
return range;
|
|
35138
|
+
}
|
|
35139
|
+
|
|
35140
|
+
this.GetMaxMin=function()
|
|
35141
|
+
{
|
|
35142
|
+
return { Max:null, Min:null };
|
|
35143
|
+
}
|
|
35144
|
+
|
|
35145
|
+
this.GetYFromData=function(value)
|
|
35146
|
+
{
|
|
35147
|
+
var bHScreen = (this.ChartFrame.IsHScreen === true);
|
|
35148
|
+
|
|
35149
|
+
if (bHScreen)
|
|
35150
|
+
{
|
|
35151
|
+
if (value <= this.MaxMin.Min) return this.ChartBorder.GetLeftEx();
|
|
35152
|
+
if (value >= this.MaxMin.Max) return this.ChartBorder.GetRightEx();
|
|
35153
|
+
|
|
35154
|
+
var width = this.ChartBorder.GetWidthEx() * (value - this.MaxMin.Min) / (this.MaxMin.Max - this.MaxMin.Min);
|
|
35155
|
+
return this.ChartBorder.GetLeftEx() + width;
|
|
35156
|
+
}
|
|
35157
|
+
else
|
|
35158
|
+
{
|
|
35159
|
+
if(value<=this.MaxMin.Min) return this.ChartBorder.GetBottomEx();
|
|
35160
|
+
if(value>=this.MaxMin.Max) return this.ChartBorder.GetTopEx();
|
|
35161
|
+
|
|
35162
|
+
var height=this.ChartBorder.GetHeightEx()*(value-this.MaxMin.Min)/(this.MaxMin.Max-this.MaxMin.Min);
|
|
35163
|
+
return this.ChartBorder.GetBottomEx()-height;
|
|
35164
|
+
}
|
|
35165
|
+
}
|
|
35166
|
+
}
|
|
35167
|
+
|
|
35070
35168
|
//彩色线段
|
|
35071
35169
|
function ChartPartLine()
|
|
35072
35170
|
{
|
|
@@ -37987,8 +38085,8 @@ function ChartMinutePriceLine()
|
|
|
37987
38085
|
if (isHScreen===true) chartright=this.ChartBorder.GetBottom();
|
|
37988
38086
|
var xPointCount=this.ChartFrame.XPointCount;
|
|
37989
38087
|
var minuteCount=this.ChartFrame.MinuteCount;
|
|
37990
|
-
var bottom=this.ChartBorder.
|
|
37991
|
-
var left=this.ChartBorder.
|
|
38088
|
+
var bottom=this.ChartBorder.GetBottom();
|
|
38089
|
+
var left=this.ChartBorder.GetLeft();
|
|
37992
38090
|
var data=this.Data;
|
|
37993
38091
|
|
|
37994
38092
|
this.DrawBeforeOpen(); //盘前
|
|
@@ -113882,6 +113980,7 @@ function JSExecute(ast,option)
|
|
|
113882
113980
|
let isExData=false;
|
|
113883
113981
|
let isDotLine=false;
|
|
113884
113982
|
let isOverlayLine=false; //叠加线
|
|
113983
|
+
let isSingleLine=false; //独立线段
|
|
113885
113984
|
var isNoneName=false;
|
|
113886
113985
|
var isShowTitle=true;
|
|
113887
113986
|
//显示在位置之上,对于DRAWTEXT和DRAWNUMBER等函数有用,放在语句的最后面(不能与LINETHICK等函数共用),比如:
|
|
@@ -113938,9 +114037,11 @@ function JSExecute(ast,option)
|
|
|
113938
114037
|
else if (value==="DRAWCENTER") isDrawCenter=true;
|
|
113939
114038
|
else if (value=="DRAWBELOW") isDrawBelow=true;
|
|
113940
114039
|
else if (value=="STEPLINE") stepLine=true;
|
|
114040
|
+
else if (value=="SINGLELINE") isSingleLine=true;
|
|
113941
114041
|
else if (value.indexOf('COLOR')==0) color=value;
|
|
113942
114042
|
else if (value.indexOf("RGBX")==0 && value.length==10) color=value; //RGBX+“RRGGBB”
|
|
113943
114043
|
else if (value.indexOf('LINETHICK')==0) lineWidth=value;
|
|
114044
|
+
|
|
113944
114045
|
|
|
113945
114046
|
else if (value=="ALIGN0") drawAlign=0;
|
|
113946
114047
|
else if (value=="ALIGN1") drawAlign=1;
|
|
@@ -114189,6 +114290,7 @@ function JSExecute(ast,option)
|
|
|
114189
114290
|
if (isExData==true) value.IsExData = true;
|
|
114190
114291
|
if (isDotLine==true) value.IsDotLine=true;
|
|
114191
114292
|
if (isOverlayLine==true) value.IsOverlayLine=true;
|
|
114293
|
+
if (isSingleLine==true) value.IsSingleLine=true;
|
|
114192
114294
|
if (isNoneName==true) value.NoneName=true;
|
|
114193
114295
|
if (isShowTitle==false) value.IsShowTitle=false;
|
|
114194
114296
|
if (stepLine==true) value.Type=7;
|
|
@@ -114224,6 +114326,7 @@ function JSExecute(ast,option)
|
|
|
114224
114326
|
if (isExData==true) value.IsExData = true;
|
|
114225
114327
|
if (isDotLine==true) value.IsDotLine=true;
|
|
114226
114328
|
if (isOverlayLine==true) value.IsOverlayLine=true;
|
|
114329
|
+
if (isSingleLine==true) value.IsSingleLine=true;
|
|
114227
114330
|
if (isShowTitle==false) value.IsShowTitle=false;
|
|
114228
114331
|
if (stepLine==true) value.Type=7;
|
|
114229
114332
|
this.OutVarTable.push(value);
|
|
@@ -117051,6 +117154,54 @@ function ScriptIndex(name,script,args,option)
|
|
|
117051
117154
|
hqChart.ChartPaint.push(line);
|
|
117052
117155
|
}
|
|
117053
117156
|
|
|
117157
|
+
this.CreateSingleLine=function(hqChart,windowIndex,varItem,id,lineType)
|
|
117158
|
+
{
|
|
117159
|
+
var line=new ChartSingleLine();
|
|
117160
|
+
line.Canvas=hqChart.Canvas;
|
|
117161
|
+
line.DrawType=1;
|
|
117162
|
+
line.Name=varItem.Name;
|
|
117163
|
+
line.ChartBorder=hqChart.Frame.SubFrame[windowIndex].Frame.ChartBorder;
|
|
117164
|
+
line.ChartFrame=hqChart.Frame.SubFrame[windowIndex].Frame;
|
|
117165
|
+
line.Identify=this.Guid;
|
|
117166
|
+
if (varItem.Color) line.Color=this.GetColor(varItem.Color);
|
|
117167
|
+
else line.Color=this.GetDefaultColor(id);
|
|
117168
|
+
|
|
117169
|
+
if (varItem.LineWidth)
|
|
117170
|
+
{
|
|
117171
|
+
let width=parseInt(varItem.LineWidth.replace("LINETHICK",""));
|
|
117172
|
+
if (!isNaN(width) && width>0) line.LineWidth=width;
|
|
117173
|
+
}
|
|
117174
|
+
|
|
117175
|
+
if (varItem.IsDotLine) line.IsDotLine=true; //虚线
|
|
117176
|
+
if (varItem.IsShow==false) line.IsShow=false;
|
|
117177
|
+
|
|
117178
|
+
let titleIndex=windowIndex+1;
|
|
117179
|
+
line.Data.Data=varItem.Data;
|
|
117180
|
+
|
|
117181
|
+
this.ReloadChartResource(hqChart,windowIndex,line);
|
|
117182
|
+
|
|
117183
|
+
if (varItem.IsShowTitle===false) //NOTEXT 不绘制标题
|
|
117184
|
+
{
|
|
117185
|
+
|
|
117186
|
+
}
|
|
117187
|
+
else if (IFrameSplitOperator.IsString(varItem.Name) && varItem.Name.indexOf("NOTEXT")==0) //标题中包含NOTEXT不绘制标题
|
|
117188
|
+
{
|
|
117189
|
+
|
|
117190
|
+
}
|
|
117191
|
+
else
|
|
117192
|
+
{
|
|
117193
|
+
if (varItem.NoneName)
|
|
117194
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,null,line.Color);
|
|
117195
|
+
else
|
|
117196
|
+
hqChart.TitlePaint[titleIndex].Data[id]=new DynamicTitleData(line.Data,varItem.Name,line.Color);
|
|
117197
|
+
|
|
117198
|
+
this.SetTitleData(hqChart.TitlePaint[titleIndex].Data[id],line);
|
|
117199
|
+
}
|
|
117200
|
+
|
|
117201
|
+
this.SetChartIndexName(line);
|
|
117202
|
+
hqChart.ChartPaint.push(line);
|
|
117203
|
+
}
|
|
117204
|
+
|
|
117054
117205
|
//创建柱子
|
|
117055
117206
|
this.CreateBar=function(hqChart,windowIndex,varItem,id)
|
|
117056
117207
|
{
|
|
@@ -118355,6 +118506,7 @@ function ScriptIndex(name,script,args,option)
|
|
|
118355
118506
|
if (item.Type==0)
|
|
118356
118507
|
{
|
|
118357
118508
|
if (item.IsOverlayLine) this.CreateOverlayLine(hqChart,windowIndex,item,i,item.Type);
|
|
118509
|
+
else if (item.IsSingleLine) this.CreateSingleLine(hqChart,windowIndex,item,i,item.Type);
|
|
118358
118510
|
else this.CreateLine(hqChart,windowIndex,item,i,item.Type);
|
|
118359
118511
|
}
|
|
118360
118512
|
else if (item.Type==1)
|
|
@@ -137974,7 +138126,7 @@ function HQChartScriptWorker()
|
|
|
137974
138126
|
|
|
137975
138127
|
|
|
137976
138128
|
|
|
137977
|
-
var HQCHART_VERSION="1.1.
|
|
138129
|
+
var HQCHART_VERSION="1.1.13435";
|
|
137978
138130
|
|
|
137979
138131
|
function PrintHQChartVersion()
|
|
137980
138132
|
{
|