hqchart 1.1.14576 → 1.1.14593
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 +212 -76
- package/package.json +1 -1
- package/src/jscommon/umychart.DialogSearchIndex.js +72 -7
- package/src/jscommon/umychart.NetworkFilterTest.js +82 -1
- package/src/jscommon/umychart.complier.js +12 -7
- package/src/jscommon/umychart.index.data.js +178 -7
- package/src/jscommon/umychart.js +289 -6
- package/src/jscommon/umychart.testdata.js +82 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +480 -21
- package/src/jscommon/umychart.version.js +1 -1
- package/src/jscommon/umychart.vue/umychart.NetworkFilterTest.vue.js +82 -1
- package/src/jscommon/umychart.vue/umychart.vue.js +552 -28
|
@@ -155,7 +155,7 @@ function JSIndexScript()
|
|
|
155
155
|
['VRSI',this.VRSI],['HSCOL',this.HSCOL],['DBQRV',this.DBQRV],['DBLB',this.DBLB],
|
|
156
156
|
['ACD',this.ACD],['EXPMA',this.EXPMA],['EXPMA_S',this.EXPMA_S],['HMA',this.HMA],
|
|
157
157
|
['LMA',this.LMA],['VMA',this.VMA],['AMV',this.AMV],['BBIBOLL',this.BBIBOLL],
|
|
158
|
-
['ALLIGAT',this.ALLIGAT],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],
|
|
158
|
+
['ALLIGAT',this.ALLIGAT],["GMMA",this.GMMA],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],
|
|
159
159
|
['SG-XDT',this.SG_XDT],['SG-SMX',this.SG_SMX],['SG-LB',this.SG_LB],['SG-PF',this.SG_PF],
|
|
160
160
|
['RAD',this.RAD],['SHT',this.SHT],['ZLJC',this.ZLJC],['ZLMM',this.ZLMM],['SLZT',this.SLZT],
|
|
161
161
|
['ADVOL',this.ADVOL],['CYC',this.CYC],['CYS',this.CYS],['CYQKL',this.CYQKL],
|
|
@@ -167,7 +167,8 @@ function JSIndexScript()
|
|
|
167
167
|
['神奇九转', this.NineTurns],
|
|
168
168
|
['EMA', this.EMA3], ['EMA4', this.EMA4], ['EMA5', this.EMA5],['EMA6', this.EMA6],
|
|
169
169
|
["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
|
|
170
|
-
["ADX", this.ADX],
|
|
170
|
+
["ADX", this.ADX],["SMACD", this.SMACD],["ACCER",this.ACCER],["AMO-TDX", this.AMO_TDX],
|
|
171
|
+
["WSBVOL",this.WSBVOL], ["CCYD",this.CCYD], ["CCL",this.CCL],["ABI", this.ABI],
|
|
171
172
|
|
|
172
173
|
["持仓量", this.VOL_POSITION], //成交量+持仓量
|
|
173
174
|
|
|
@@ -187,11 +188,11 @@ function JSIndexScript()
|
|
|
187
188
|
|
|
188
189
|
["两融余额", this.Margin2],["两融余额2", this.Margin3],
|
|
189
190
|
|
|
190
|
-
|
|
191
|
-
['
|
|
192
|
-
['
|
|
193
|
-
['
|
|
194
|
-
['
|
|
191
|
+
//特色指标
|
|
192
|
+
['特色指标-操盘BS点',this.FXG_BSPoint],
|
|
193
|
+
['特色指标-涨停多空线',this.FXG_INDEX],
|
|
194
|
+
['特色指标-涨停吸筹区',this.FXG_INDEX2],
|
|
195
|
+
['特色指标-量能黄金点',this.FXG_INDEX3],
|
|
195
196
|
|
|
196
197
|
//五彩K线(函数COLOR_开头)
|
|
197
198
|
['五彩K线-十字星',this.COLOR_KSTAR1],['五彩K线-早晨之星',this.COLOR_KSTAR2],['五彩K线-黄昏之星',this.COLOR_KSTAR3],['五彩K线-长十字',this.COLOR_SHI1],
|
|
@@ -752,6 +753,28 @@ MAVOL2:MA(VOLUME,M2);'
|
|
|
752
753
|
return data;
|
|
753
754
|
}
|
|
754
755
|
|
|
756
|
+
|
|
757
|
+
JSIndexScript.prototype.AMO_TDX=function()
|
|
758
|
+
{
|
|
759
|
+
let data=
|
|
760
|
+
{
|
|
761
|
+
Name:'AMO-TDX', Description:'成交金额(虚拟)', IsMainIndex:false,FloatPrecision:0,
|
|
762
|
+
Args:[ { Name:'M1', Value:5}, { Name:'M2', Value:10} ],
|
|
763
|
+
Script: //脚本
|
|
764
|
+
'TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));\n\
|
|
765
|
+
MTIME:=MOD(FROMOPEN,TOTAL);\n\
|
|
766
|
+
CTIME:=IF(MTIME<0.5,TOTAL,MTIME);\n\
|
|
767
|
+
VAMO:=IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),AMOUNT/10000.0*TOTAL/CTIME,DRAWNULL);\n\
|
|
768
|
+
STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VAMO,0,-1,-1),COLOR00C0C0;\n\
|
|
769
|
+
AMOW:AMOUNT/10000.0,VOLSTICK;\n\
|
|
770
|
+
AMO1:MA(AMOW,M1);\n\
|
|
771
|
+
AMO2:MA(AMOW,M2);'
|
|
772
|
+
|
|
773
|
+
};
|
|
774
|
+
|
|
775
|
+
return data;
|
|
776
|
+
}
|
|
777
|
+
|
|
755
778
|
JSIndexScript.prototype.RSI=function()
|
|
756
779
|
{
|
|
757
780
|
let data=
|
|
@@ -1489,6 +1512,40 @@ MACD:DIF-DEA,COLORSTICK;'
|
|
|
1489
1512
|
return data;
|
|
1490
1513
|
}
|
|
1491
1514
|
|
|
1515
|
+
JSIndexScript.prototype.SMACD = function ()
|
|
1516
|
+
{
|
|
1517
|
+
let data =
|
|
1518
|
+
{
|
|
1519
|
+
Name: 'SMACD', Description: '单线平滑异同平均线', IsMainIndex: false,
|
|
1520
|
+
Args: [{ Name: 'SHORT', Value: 12 },{ Name: 'LONG', Value: 26 },{ Name: 'MID', Value: 9 }],
|
|
1521
|
+
Script: //脚本
|
|
1522
|
+
'DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
|
|
1523
|
+
DEA:EMA(DIF,MID);\n\
|
|
1524
|
+
MACD:DIF,COLORSTICK;'
|
|
1525
|
+
|
|
1526
|
+
};
|
|
1527
|
+
|
|
1528
|
+
return data;
|
|
1529
|
+
}
|
|
1530
|
+
|
|
1531
|
+
|
|
1532
|
+
JSIndexScript.prototype.ACCER = function ()
|
|
1533
|
+
{
|
|
1534
|
+
let data =
|
|
1535
|
+
{
|
|
1536
|
+
Name: 'ACCER', Description: '幅度涨速', IsMainIndex: false,
|
|
1537
|
+
Args: [{ Name: 'N', Value: 8 }],
|
|
1538
|
+
Script: //脚本
|
|
1539
|
+
'ACCER:SLOPE(CLOSE,N)/CLOSE;'
|
|
1540
|
+
|
|
1541
|
+
};
|
|
1542
|
+
|
|
1543
|
+
return data;
|
|
1544
|
+
}
|
|
1545
|
+
|
|
1546
|
+
|
|
1547
|
+
|
|
1548
|
+
|
|
1492
1549
|
JSIndexScript.prototype.QACD = function ()
|
|
1493
1550
|
{
|
|
1494
1551
|
let data =
|
|
@@ -1913,6 +1970,32 @@ JSIndexScript.prototype.ALLIGAT = function ()
|
|
|
1913
1970
|
return data;
|
|
1914
1971
|
}
|
|
1915
1972
|
|
|
1973
|
+
|
|
1974
|
+
JSIndexScript.prototype.GMMA = function ()
|
|
1975
|
+
{
|
|
1976
|
+
let data =
|
|
1977
|
+
{
|
|
1978
|
+
Name: 'GMMA', Description: '顾比均线', IsMainIndex: true,
|
|
1979
|
+
Args: [],
|
|
1980
|
+
Script: //脚本
|
|
1981
|
+
'MA3:EMA(CLOSE,3),COLORC08080;\n\
|
|
1982
|
+
MA5:EMA(CLOSE,5),COLORC08080;\n\
|
|
1983
|
+
MA8:EMA(CLOSE,8),COLORC08080;\n\
|
|
1984
|
+
MA10:EMA(CLOSE,10),COLORC08080;\n\
|
|
1985
|
+
MA12:EMA(CLOSE,12),COLORC08080;\n\
|
|
1986
|
+
MA15:EMA(CLOSE,15),COLORC08080;\n\
|
|
1987
|
+
MA30:EMA(CLOSE,30),COLOR0080FF;\n\
|
|
1988
|
+
MA35:EMA(CLOSE,35),COLOR0080FF;\n\
|
|
1989
|
+
MA40:EMA(CLOSE,40),COLOR0080FF;\n\
|
|
1990
|
+
MA45:EMA(CLOSE,45),COLOR0080FF;\n\
|
|
1991
|
+
MA50:EMA(CLOSE,50),COLOR0080FF;\n\
|
|
1992
|
+
MA60:EMA(CLOSE,60),COLOR0080FF;'
|
|
1993
|
+
|
|
1994
|
+
};
|
|
1995
|
+
|
|
1996
|
+
return data;
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1916
1999
|
JSIndexScript.prototype.ZX = function ()
|
|
1917
2000
|
{
|
|
1918
2001
|
let data =
|
|
@@ -3949,6 +4032,94 @@ B:=REF(LLV(CLOSE,N),1);
|
|
|
3949
4032
|
}
|
|
3950
4033
|
|
|
3951
4034
|
|
|
4035
|
+
JSIndexScript.prototype.WSBVOL = function()
|
|
4036
|
+
{
|
|
4037
|
+
let data =
|
|
4038
|
+
{
|
|
4039
|
+
Name: 'WSBVOL', Description: '维斯波成交量', IsMainIndex: false,
|
|
4040
|
+
Script: //脚本
|
|
4041
|
+
`UPTJ1:=CLOSE>REF(CLOSE,1);
|
|
4042
|
+
UPTJ2:=(CLOSE==REF(CLOSE,1) && REF(CLOSE,1)>REF(CLOSE,2));
|
|
4043
|
+
UPTJ3:=MAX(OPEN,CLOSE)<REF(C,BARSLAST(CLOSE>REF(CLOSE,1))) AND MIN(OPEN,CLOSE)>REF(O,BARSLAST(CLOSE>REF(CLOSE,1)));
|
|
4044
|
+
UPTJ4:=NOT (H<REF(H,1) AND L<REF(L,1));
|
|
4045
|
+
UP:=(UPTJ1 || UPTJ2 || UPTJ3) AND UPTJ4;
|
|
4046
|
+
DOWN:=NOT(UP);
|
|
4047
|
+
M1:=BARSLASTCOUNT(UP);
|
|
4048
|
+
N1:=BARSLASTCOUNT(DOWN);
|
|
4049
|
+
CZB:=IF(M1=1 OR N1=1,2*INTPART(VOL*100/10000),INTPART(VOL*100/10000));
|
|
4050
|
+
SZ:=IF(M1>0,SUM(CZB,M1),-1*SUM(CZB,N1));
|
|
4051
|
+
GY:=IF(N1>0,SUM(CZB,N1),0);
|
|
4052
|
+
XQ:=IF(M1>0,SUM(CZB,M1),0);
|
|
4053
|
+
NOTEXT1:STICKLINE(M1>0,0,XQ,1,0),COLORRED;
|
|
4054
|
+
NOTEXT2:STICKLINE(N1>0,0,GY,1,0),COLORGREEN;
|
|
4055
|
+
WSB:SZ,NODRAW;`
|
|
4056
|
+
};
|
|
4057
|
+
|
|
4058
|
+
return data;
|
|
4059
|
+
}
|
|
4060
|
+
|
|
4061
|
+
|
|
4062
|
+
JSIndexScript.prototype.CCL = function()
|
|
4063
|
+
{
|
|
4064
|
+
let data =
|
|
4065
|
+
{
|
|
4066
|
+
Name: 'CCL', Description: '持仓量(适用于期货)', IsMainIndex: false,
|
|
4067
|
+
Script: //脚本
|
|
4068
|
+
`持仓量:VOLINSTK;
|
|
4069
|
+
成交:VOL,COLORLIRED;
|
|
4070
|
+
仓差:VOLINSTK-REF(VOLINSTK,1),NODRAW;
|
|
4071
|
+
STICKLINE(仓差>0 AND C>REF(C,1),0,仓差,2,3),COLORRED;
|
|
4072
|
+
STICKLINE(仓差>0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;
|
|
4073
|
+
STICKLINE(仓差>0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;
|
|
4074
|
+
STICKLINE(仓差<0 AND C>REF(C,1),0,仓差,2,3),COLORRED;
|
|
4075
|
+
STICKLINE(仓差<0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;
|
|
4076
|
+
STICKLINE(仓差<0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;`
|
|
4077
|
+
};
|
|
4078
|
+
|
|
4079
|
+
return data;
|
|
4080
|
+
}
|
|
4081
|
+
|
|
4082
|
+
JSIndexScript.prototype.CCYD = function()
|
|
4083
|
+
{
|
|
4084
|
+
let data =
|
|
4085
|
+
{
|
|
4086
|
+
Name: 'CCYD', Description: '持仓异动(适用于期货)', IsMainIndex: false,
|
|
4087
|
+
Script: //脚本
|
|
4088
|
+
`CCYD:=VOLINSTK-REF(VOLINSTK,1);
|
|
4089
|
+
SPYD:=C-REF(C,1);
|
|
4090
|
+
多头增仓:IF(SPYD>=0 AND CCYD>=0,ABS(CCYD),DRAWNULL),COLOR3232FF,NODRAW;
|
|
4091
|
+
空头减仓:IF(SPYD>0 AND CCYD<0,ABS(CCYD),DRAWNULL),COLOR3232FF,NODRAW;
|
|
4092
|
+
空头增仓:IF(SPYD<0 AND CCYD>=0,ABS(CCYD),DRAWNULL),COLORFFFF54,NODRAW;
|
|
4093
|
+
多头减仓:IF(SPYD<0 AND CCYD<0,ABS(CCYD),DRAWNULL),COLORFFFF54,NODRAW;
|
|
4094
|
+
STICKLINE(SPYD>=0 AND CCYD>=0,0,CCYD,3,1),COLOR3232FF;
|
|
4095
|
+
STICKLINE(SPYD>0 AND CCYD<0,CCYD,0,3,1),COLOR3232FF;
|
|
4096
|
+
STICKLINE(SPYD<0 AND CCYD>=0,CCYD,0,3,0),COLORFFFF54;
|
|
4097
|
+
STICKLINE(SPYD<0 AND CCYD<0,CCYD,0,3,0),COLORFFFF54;`
|
|
4098
|
+
};
|
|
4099
|
+
|
|
4100
|
+
return data;
|
|
4101
|
+
}
|
|
4102
|
+
|
|
4103
|
+
JSIndexScript.prototype.ABI = function()
|
|
4104
|
+
{
|
|
4105
|
+
let data =
|
|
4106
|
+
{
|
|
4107
|
+
Name: 'ABI', Description: '绝对广量指标', IsMainIndex: false,
|
|
4108
|
+
Args: [{ Name: 'N', Value: 10 }],
|
|
4109
|
+
Condition:
|
|
4110
|
+
{
|
|
4111
|
+
Period:[CONDITION_PERIOD.KLINE_DAY_ID, CONDITION_PERIOD.KLINE_WEEK_ID, CONDITION_PERIOD.KLINE_TWOWEEK_ID,
|
|
4112
|
+
CONDITION_PERIOD.KLINE_MONTH_ID, CONDITION_PERIOD.KLINE_QUARTER_ID ,CONDITION_PERIOD.KLINE_YEAR_ID ],
|
|
4113
|
+
Include:["000001.SH", "000003.SH", "000016.SH", "000300.SH", "000905.SH", "399001.SZ", " 399005.SZ", "399006.SZ"]
|
|
4114
|
+
},
|
|
4115
|
+
Script: //脚本
|
|
4116
|
+
`ABI:100*ABS(ADVANCE-DECLINE)/(ADVANCE+DECLINE);
|
|
4117
|
+
MAABI:EMA(ABI,M);`
|
|
4118
|
+
};
|
|
4119
|
+
|
|
4120
|
+
return data;
|
|
4121
|
+
}
|
|
4122
|
+
|
|
3952
4123
|
|
|
3953
4124
|
|
|
3954
4125
|
|
|
@@ -4410,6 +4581,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4410
4581
|
if (IFrameSplitOperator.IsNumber(item.ZIndex)) zindex=item.ZIndex;
|
|
4411
4582
|
if (item.Enable) this.CreateExtraCanvasElement(JSChart.RectDragCanvasKey, { ZIndex:zindex }); //创建独立的区间选择画布
|
|
4412
4583
|
}
|
|
4584
|
+
|
|
4585
|
+
if (option.DragKLine)
|
|
4586
|
+
{
|
|
4587
|
+
var item=option.DragKLine;
|
|
4588
|
+
if (IFrameSplitOperator.IsBool(item.EnableShfit)) chart.KLineDragConfig.EnableShfit=item.EnableShfit;
|
|
4589
|
+
}
|
|
4413
4590
|
}
|
|
4414
4591
|
|
|
4415
4592
|
//创建子窗口
|
|
@@ -4461,6 +4638,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4461
4638
|
if (IFrameSplitOperator.IsNumber(item.PriceFormatType)) chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;
|
|
4462
4639
|
if (IFrameSplitOperator.IsNumber(item.DataFormatType)) chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;
|
|
4463
4640
|
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
4641
|
+
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
4464
4642
|
|
|
4465
4643
|
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
4466
4644
|
|
|
@@ -4966,6 +5144,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4966
5144
|
if (IFrameSplitOperator.IsNumber(item.HPenType)) chart.ChartCorssCursor.HPenType=item.HPenType;
|
|
4967
5145
|
if (IFrameSplitOperator.IsNumber(item.VPenType)) chart.ChartCorssCursor.VPenType=item.VPenType;
|
|
4968
5146
|
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
5147
|
+
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
4969
5148
|
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
4970
5149
|
if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
|
|
4971
5150
|
}
|
|
@@ -6864,12 +7043,14 @@ var JSCHART_MENU_ID=
|
|
|
6864
7043
|
CMD_CORSS_ON_VAILD_TIME_ID:50, //超出当前时间的,X轴调整到当前最后的时间(分时图)
|
|
6865
7044
|
CMD_CORSS_ON_KLINE_ID:51, //十字光标只能画在K线上
|
|
6866
7045
|
CMD_CORSS_POINT_ID:52, //十字光标圆点
|
|
7046
|
+
|
|
6867
7047
|
|
|
6868
7048
|
CMD_RBUTTON_SELECT_RECT_ID:53, //右键区间选择
|
|
6869
7049
|
CMD_LBUTTON_SELECT_RECT_ID:54, //左键区间选择
|
|
6870
7050
|
CMD_ENABLE_XDRAG_BOTTOM_ID:55, //X轴拖动缩放
|
|
6871
7051
|
|
|
6872
7052
|
CMD_FULLSCREEN_SUMMARY_ID:56, //当前屏区间统计
|
|
7053
|
+
CMD_CORSS_DBCLICK_ID:57, //双击显示隐藏十字光标
|
|
6873
7054
|
|
|
6874
7055
|
|
|
6875
7056
|
|
|
@@ -8163,6 +8344,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8163
8344
|
document.oncontextmenu=(e)=> { this.DocContextMenu(e); }
|
|
8164
8345
|
}
|
|
8165
8346
|
|
|
8347
|
+
|
|
8348
|
+
this.IsShfitDragKLine=function(e)
|
|
8349
|
+
{
|
|
8350
|
+
if (this.DragMode!=1) return false;
|
|
8351
|
+
if (!this.KLineDragConfig) return false;
|
|
8352
|
+
if (!this.KLineDragConfig.EnableShfit) return false;
|
|
8353
|
+
if (!e.shiftKey) return false;
|
|
8354
|
+
|
|
8355
|
+
return true;
|
|
8356
|
+
}
|
|
8357
|
+
|
|
8166
8358
|
this.DocOnMouseMove=function(e)
|
|
8167
8359
|
{
|
|
8168
8360
|
//加载数据中,禁用鼠标事件
|
|
@@ -8178,6 +8370,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8178
8370
|
var moveSetpY=Math.abs(drag.LastMove.Y-e.clientY);
|
|
8179
8371
|
var isDragSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Index>=0);
|
|
8180
8372
|
var isDragSubSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Type==4);
|
|
8373
|
+
var bShfitDragKLine=this.IsShfitDragKLine(e); //shift+鼠标移动K线
|
|
8181
8374
|
if (drag.CurrentMove)
|
|
8182
8375
|
{
|
|
8183
8376
|
drag.CurrentMove.X=e.clientX;
|
|
@@ -8285,7 +8478,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8285
8478
|
{
|
|
8286
8479
|
this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
|
|
8287
8480
|
}
|
|
8288
|
-
else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect) //左右键区间选择
|
|
8481
|
+
else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect && !bShfitDragKLine) //左右键区间选择
|
|
8289
8482
|
{
|
|
8290
8483
|
var yMoveSetp=Math.abs(drag.LastMove.Y-e.clientY);
|
|
8291
8484
|
|
|
@@ -8397,6 +8590,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8397
8590
|
var isLeft=true;
|
|
8398
8591
|
if (drag.LastMove.X<e.clientX) isLeft=false;//右移数据
|
|
8399
8592
|
|
|
8593
|
+
//按住shift才能移动K线
|
|
8594
|
+
if (this.KLineDragConfig && this.KLineDragConfig.EnableShfit && !e.shiftKey) return;
|
|
8595
|
+
|
|
8400
8596
|
var cursorStatus="pointer";
|
|
8401
8597
|
var oneStepWidth=this.GetMoveOneStepWidth();
|
|
8402
8598
|
if (moveSetp<oneStepWidth)
|
|
@@ -8494,6 +8690,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8494
8690
|
var isDragSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Index>=0);
|
|
8495
8691
|
var isDragSubSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Type==4);
|
|
8496
8692
|
var bClearDrawPicture=true;
|
|
8693
|
+
var bShfitDragKLine=this.IsShfitDragKLine(e);
|
|
8497
8694
|
if (this.CurrentChartDrawPicture)
|
|
8498
8695
|
{
|
|
8499
8696
|
var drawPicture=this.CurrentChartDrawPicture;
|
|
@@ -8536,7 +8733,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8536
8733
|
{
|
|
8537
8734
|
if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
|
|
8538
8735
|
}
|
|
8539
|
-
else if (bLButtonSelectRect || bRButtonSelectRect) //K线图区间选择
|
|
8736
|
+
else if ((bLButtonSelectRect || bRButtonSelectRect) && !bShfitDragKLine) //K线图区间选择
|
|
8540
8737
|
{
|
|
8541
8738
|
var drag=this.MouseDrag;
|
|
8542
8739
|
drag.LastMove.X=e.clientX;
|
|
@@ -9825,6 +10022,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9825
10022
|
item.Draw();
|
|
9826
10023
|
}
|
|
9827
10024
|
|
|
10025
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_5);
|
|
10026
|
+
|
|
9828
10027
|
if (this.Frame.DrawOveraly)
|
|
9829
10028
|
this.Frame.DrawOveraly(true); //画叠加指标
|
|
9830
10029
|
|
|
@@ -9848,9 +10047,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9848
10047
|
item.Draw();
|
|
9849
10048
|
}
|
|
9850
10049
|
|
|
10050
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_8);
|
|
10051
|
+
|
|
9851
10052
|
if (this.Frame.DrawOveraly)
|
|
9852
10053
|
this.Frame.DrawOveraly(false); //画叠加指标
|
|
9853
10054
|
|
|
10055
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_10);
|
|
10056
|
+
|
|
10057
|
+
/*
|
|
9854
10058
|
//固定扩展图形
|
|
9855
10059
|
for(var i=0;i<this.ExtendChartPaint.length;++i)
|
|
9856
10060
|
{
|
|
@@ -9859,6 +10063,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9859
10063
|
if (item.DrawAfterPicture) continue;
|
|
9860
10064
|
if (!item.IsDynamic && item.IsAnimation==false) item.Draw();
|
|
9861
10065
|
}
|
|
10066
|
+
*/
|
|
9862
10067
|
|
|
9863
10068
|
if (this.Frame.DrawInsideHorizontal) this.Frame.DrawInsideHorizontal();
|
|
9864
10069
|
this.KLineIncreaseCustomHorizontal();
|
|
@@ -9887,6 +10092,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9887
10092
|
|
|
9888
10093
|
var moveonPoint=null;
|
|
9889
10094
|
if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
|
|
10095
|
+
|
|
10096
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20, { MoveonPoint:moveonPoint} );
|
|
10097
|
+
|
|
10098
|
+
/*
|
|
9890
10099
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
9891
10100
|
{
|
|
9892
10101
|
var item=this.ExtendChartPaint[i];
|
|
@@ -9898,6 +10107,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9898
10107
|
if (item.DrawToolbar) item.DrawToolbar(moveonPoint);
|
|
9899
10108
|
}
|
|
9900
10109
|
}
|
|
10110
|
+
*/
|
|
9901
10111
|
|
|
9902
10112
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
9903
10113
|
{
|
|
@@ -9987,6 +10197,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9987
10197
|
item.Draw(moveonPoint, this.LastMouseStatus);
|
|
9988
10198
|
}
|
|
9989
10199
|
|
|
10200
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25);
|
|
10201
|
+
/*
|
|
9990
10202
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
9991
10203
|
{
|
|
9992
10204
|
var item=this.ExtendChartPaint[i];
|
|
@@ -9994,7 +10206,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9994
10206
|
if (item.DrawAfterPicture) continue;
|
|
9995
10207
|
if (item.IsDynamic && item.DrawAfterTitle===true && item.IsAnimation==false) item.Draw();
|
|
9996
10208
|
}
|
|
10209
|
+
*/
|
|
10210
|
+
|
|
10211
|
+
if (this.EnableAnimation) this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_30);
|
|
9997
10212
|
|
|
10213
|
+
/*
|
|
9998
10214
|
if (this.EnableAnimation)
|
|
9999
10215
|
{
|
|
10000
10216
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动画
|
|
@@ -10003,6 +10219,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10003
10219
|
if (item.IsAnimation===true) item.Draw();
|
|
10004
10220
|
}
|
|
10005
10221
|
}
|
|
10222
|
+
*/
|
|
10006
10223
|
|
|
10007
10224
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
10008
10225
|
{
|
|
@@ -10021,12 +10238,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10021
10238
|
this.CurrentChartDrawPicture.Draw();
|
|
10022
10239
|
}
|
|
10023
10240
|
|
|
10241
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50);
|
|
10242
|
+
/*
|
|
10024
10243
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //画图工具绘制完成以后 动态扩展图形
|
|
10025
10244
|
{
|
|
10026
10245
|
var item=this.ExtendChartPaint[i];
|
|
10027
10246
|
if (item.DrawAfterPicture)
|
|
10028
10247
|
item.Draw();
|
|
10029
10248
|
}
|
|
10249
|
+
*/
|
|
10030
10250
|
|
|
10031
10251
|
this.OffscreenToShowCanvas();
|
|
10032
10252
|
|
|
@@ -10055,6 +10275,45 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10055
10275
|
++this.TouchDrawCount;
|
|
10056
10276
|
}
|
|
10057
10277
|
|
|
10278
|
+
this.DrawExtendChartPaint=function(level, option)
|
|
10279
|
+
{
|
|
10280
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.ExtendChartPaint)) return;
|
|
10281
|
+
|
|
10282
|
+
//扩展图形
|
|
10283
|
+
for(var i=0;i<this.ExtendChartPaint.length;++i)
|
|
10284
|
+
{
|
|
10285
|
+
var item=this.ExtendChartPaint[i];
|
|
10286
|
+
if (item.IsCallbackDraw) continue;
|
|
10287
|
+
|
|
10288
|
+
var value=item.GetPriority(); //绘图优先级
|
|
10289
|
+
if (value!=level) continue;
|
|
10290
|
+
|
|
10291
|
+
if (level==IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20)
|
|
10292
|
+
{
|
|
10293
|
+
item.Draw();
|
|
10294
|
+
if (item.DrawToolbar && option) item.DrawToolbar(option.MoveonPoint, option.LastMouseStatus);
|
|
10295
|
+
}
|
|
10296
|
+
else if (level==IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25 && option)
|
|
10297
|
+
{
|
|
10298
|
+
if (item.ClassName=='KLineTooltipPaint' && option)
|
|
10299
|
+
{
|
|
10300
|
+
if (option.Tooltip==false) continue;
|
|
10301
|
+
if (option.Point) item.LatestPoint=option.Point;
|
|
10302
|
+
}
|
|
10303
|
+
else if (item.ClassName=="MinuteTooltipPaint" && option)
|
|
10304
|
+
{
|
|
10305
|
+
if (option.Point) item.LatestPoint=option.Point;
|
|
10306
|
+
}
|
|
10307
|
+
|
|
10308
|
+
item.Draw(option.MoveonPoint, option.LastMouseStatus);
|
|
10309
|
+
}
|
|
10310
|
+
else
|
|
10311
|
+
{
|
|
10312
|
+
item.Draw();
|
|
10313
|
+
}
|
|
10314
|
+
}
|
|
10315
|
+
}
|
|
10316
|
+
|
|
10058
10317
|
this.PtInButton=function(x, y)
|
|
10059
10318
|
{
|
|
10060
10319
|
var button=this.Frame.PtInButtons(x,y);
|
|
@@ -10367,6 +10626,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10367
10626
|
|
|
10368
10627
|
var moveonPoint=null;
|
|
10369
10628
|
if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
|
|
10629
|
+
|
|
10630
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20, { MoveonPoint:moveonPoint, LastMouseStatus:this.LastMouseStatus } );
|
|
10631
|
+
|
|
10632
|
+
/*
|
|
10370
10633
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
10371
10634
|
{
|
|
10372
10635
|
var item=this.ExtendChartPaint[i];
|
|
@@ -10378,6 +10641,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10378
10641
|
if (item.DrawToolbar) item.DrawToolbar(moveonPoint, this.LastMouseStatus);
|
|
10379
10642
|
}
|
|
10380
10643
|
}
|
|
10644
|
+
*/
|
|
10381
10645
|
|
|
10382
10646
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
10383
10647
|
{
|
|
@@ -10476,6 +10740,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10476
10740
|
item.Draw(moveonPoint, this.LastMouseStatus);
|
|
10477
10741
|
}
|
|
10478
10742
|
|
|
10743
|
+
|
|
10744
|
+
var exChartOption={ MoveonPoint:moveonPoint, LastMouseStatus:this.LastMouseStatus };
|
|
10745
|
+
if (option)
|
|
10746
|
+
{
|
|
10747
|
+
exChartOption.Tooltip=option.Tooltip;
|
|
10748
|
+
exChartOption.Point=option.Point;
|
|
10749
|
+
}
|
|
10750
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25,exChartOption);
|
|
10751
|
+
/*
|
|
10479
10752
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形 在动态标题以后画
|
|
10480
10753
|
{
|
|
10481
10754
|
var item=this.ExtendChartPaint[i];
|
|
@@ -10493,7 +10766,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10493
10766
|
|
|
10494
10767
|
if (item.IsDynamic && item.DrawAfterTitle===true) item.Draw(moveonPoint, this.LastMouseStatus);
|
|
10495
10768
|
}
|
|
10769
|
+
*/
|
|
10496
10770
|
|
|
10771
|
+
if (this.EnableAnimation) this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_30);
|
|
10772
|
+
/*
|
|
10497
10773
|
if (this.EnableAnimation)
|
|
10498
10774
|
{
|
|
10499
10775
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动画
|
|
@@ -10502,6 +10778,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10502
10778
|
if (item.IsAnimation===true) item.Draw();
|
|
10503
10779
|
}
|
|
10504
10780
|
}
|
|
10781
|
+
*/
|
|
10505
10782
|
|
|
10506
10783
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
10507
10784
|
{
|
|
@@ -10523,12 +10800,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10523
10800
|
this.CurrentChartDrawPicture.Draw();
|
|
10524
10801
|
}
|
|
10525
10802
|
|
|
10803
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50);
|
|
10804
|
+
/*
|
|
10526
10805
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
10527
10806
|
{
|
|
10528
10807
|
var item=this.ExtendChartPaint[i];
|
|
10529
10808
|
if (item.DrawAfterPicture)
|
|
10530
10809
|
item.Draw();
|
|
10531
10810
|
}
|
|
10811
|
+
*/
|
|
10532
10812
|
|
|
10533
10813
|
if (this.LastMouseStatus.MouseOnToolbar) //工具栏按钮提示信息
|
|
10534
10814
|
{
|
|
@@ -11005,7 +11285,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11005
11285
|
}
|
|
11006
11286
|
|
|
11007
11287
|
var draw=false;
|
|
11008
|
-
if (this.
|
|
11288
|
+
if (keyID==27 && this.PopMinuteChart && this.PopMinuteChart.IsShow())
|
|
11289
|
+
{
|
|
11290
|
+
this.PopMinuteChart.Close();
|
|
11291
|
+
draw=true;
|
|
11292
|
+
}
|
|
11293
|
+
else if (this.ChartCorssCursor && this.ChartCorssCursor.OnKeyDown) //十字光标 隐藏显示
|
|
11009
11294
|
{
|
|
11010
11295
|
var sendData={ e:e, KeyID:keyID, Draw:false, PreventDefault:false };
|
|
11011
11296
|
this.ChartCorssCursor.OnKeyDown(sendData);
|
|
@@ -11028,6 +11313,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11028
11313
|
if (this.OnCustomKeyDown(keyID, e))
|
|
11029
11314
|
break;
|
|
11030
11315
|
}
|
|
11316
|
+
|
|
11317
|
+
//K线 如果超出K线数据了 调整到最后一个数据
|
|
11318
|
+
if (this.FixCursorIndexValid && this.FixCursorIndexValid())
|
|
11319
|
+
{
|
|
11320
|
+
this.UpdatePointByCursorIndex();
|
|
11321
|
+
this.DrawDynamicInfo();
|
|
11322
|
+
this.ShowTooltipByKeyDown();
|
|
11323
|
+
break;
|
|
11324
|
+
}
|
|
11031
11325
|
|
|
11032
11326
|
if (this.CursorIndex<=0.99999)
|
|
11033
11327
|
{
|
|
@@ -11059,6 +11353,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11059
11353
|
break;
|
|
11060
11354
|
}
|
|
11061
11355
|
|
|
11356
|
+
//K线 如果超出K线数据了 调整到最后一个数据
|
|
11357
|
+
if (this.FixCursorIndexValid && this.FixCursorIndexValid())
|
|
11358
|
+
{
|
|
11359
|
+
this.UpdatePointByCursorIndex();
|
|
11360
|
+
this.DrawDynamicInfo();
|
|
11361
|
+
this.ShowTooltipByKeyDown();
|
|
11362
|
+
break;
|
|
11363
|
+
}
|
|
11364
|
+
|
|
11062
11365
|
var xPointcount=0;
|
|
11063
11366
|
if (this.Frame.XPointCount) xPointcount=this.Frame.XPointCount;
|
|
11064
11367
|
else xPointcount=this.Frame.SubFrame[0].Frame.XPointCount;
|
|
@@ -11169,6 +11472,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11169
11472
|
this.CurrentChartDrawPicture=null;
|
|
11170
11473
|
}
|
|
11171
11474
|
break;
|
|
11475
|
+
case 13: //回车
|
|
11476
|
+
if (this.OnCustomKeyDown) this.OnCustomKeyDown(keyID, e);
|
|
11477
|
+
break;
|
|
11172
11478
|
default:
|
|
11173
11479
|
return;
|
|
11174
11480
|
}
|
|
@@ -11182,7 +11488,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11182
11488
|
|
|
11183
11489
|
this.OnDoubleClick=function(x,y,e)
|
|
11184
11490
|
{
|
|
11185
|
-
|
|
11491
|
+
|
|
11186
11492
|
}
|
|
11187
11493
|
|
|
11188
11494
|
this.ZoomIndexWindow=function(frameID, option) //最大化/最小化指标窗口
|
|
@@ -11476,13 +11782,21 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11476
11782
|
return;
|
|
11477
11783
|
}
|
|
11478
11784
|
|
|
11785
|
+
var kData=this.GetKData();
|
|
11786
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return;
|
|
11787
|
+
|
|
11479
11788
|
var index=Math.abs(this.CursorIndex-0.5);
|
|
11480
11789
|
index=parseInt(index.toFixed(0));
|
|
11481
11790
|
if (this.ClassName=='KLineChartContainer' || this.ClassName=='KLineTrainChartContainer') index=this.CursorIndex;
|
|
11482
11791
|
|
|
11792
|
+
var dataIndex=kData.DataOffset+index;
|
|
11793
|
+
if (dataIndex<0 || dataIndex>=kData.Data.length) return;
|
|
11794
|
+
var kItem=kData.Data[dataIndex];
|
|
11795
|
+
if (!kItem) return;
|
|
11796
|
+
|
|
11483
11797
|
var data=this.Frame.Data;
|
|
11484
11798
|
var toolTip=new TooltipData();
|
|
11485
|
-
toolTip.Data=
|
|
11799
|
+
toolTip.Data=kItem;
|
|
11486
11800
|
toolTip.ChartPaint=this.ChartPaint[0];
|
|
11487
11801
|
|
|
11488
11802
|
var pixelTatio = GetDevicePixelRatio();
|
|
@@ -14538,6 +14852,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
14538
14852
|
case JSCHART_MENU_ID.CMD_CORSS_POINT_ID:
|
|
14539
14853
|
if (IFrameSplitOperator.IsBool(srcParam) && this.ChartCorssCursor) this.ChartCorssCursor.CorssPointConfig.Enable=srcParam;
|
|
14540
14854
|
break;
|
|
14855
|
+
case JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID:
|
|
14856
|
+
if (IFrameSplitOperator.IsBool(srcParam) && this.ChartCorssCursor) this.ChartCorssCursor.EnableDBClick=srcParam;
|
|
14857
|
+
break;
|
|
14541
14858
|
case JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID:
|
|
14542
14859
|
if (IFrameSplitOperator.IsBool(srcParam) && this.ChartDragSelectRect) this.ChartDragSelectRect.EnableRButton=srcParam;
|
|
14543
14860
|
break;
|
|
@@ -49220,12 +49537,34 @@ function IExtendChartPainting()
|
|
|
49220
49537
|
this.IsCallbackDraw=false; //在回调函数里绘制, 不在Draw()中绘制
|
|
49221
49538
|
this.ID=Guid();
|
|
49222
49539
|
|
|
49540
|
+
this.DrawPriority=null; //绘图优先级
|
|
49541
|
+
|
|
49223
49542
|
//上下左右间距
|
|
49224
49543
|
this.Left=5;
|
|
49225
49544
|
this.Right=5;
|
|
49226
49545
|
this.Top=5;
|
|
49227
49546
|
this.Bottom=5;
|
|
49228
49547
|
|
|
49548
|
+
|
|
49549
|
+
this.GetPriority=function()
|
|
49550
|
+
{
|
|
49551
|
+
if (IFrameSplitOperator.IsNumber(this.DrawPriority)) return this.DrawPriority; //新版本
|
|
49552
|
+
|
|
49553
|
+
//老版本转换
|
|
49554
|
+
|
|
49555
|
+
if (!this.IsDynamic && !this.DrawAfterPicture) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_10;
|
|
49556
|
+
|
|
49557
|
+
if (this.DrawAfterTitle===false && this.IsAnimation==false) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20;
|
|
49558
|
+
|
|
49559
|
+
if (this.DrawAfterTitle===true) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
49560
|
+
|
|
49561
|
+
if (this.IsAnimation===true) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_35;
|
|
49562
|
+
|
|
49563
|
+
if (this.DrawAfterPicture===true) IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50;
|
|
49564
|
+
|
|
49565
|
+
return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50
|
|
49566
|
+
}
|
|
49567
|
+
|
|
49229
49568
|
this.Draw=function()
|
|
49230
49569
|
{
|
|
49231
49570
|
|
|
@@ -49262,6 +49601,23 @@ function IExtendChartPainting()
|
|
|
49262
49601
|
}
|
|
49263
49602
|
}
|
|
49264
49603
|
|
|
49604
|
+
//绘图优先级
|
|
49605
|
+
IExtendChartPainting.DRAW_PRIORITY_ID=
|
|
49606
|
+
{
|
|
49607
|
+
LEVEL_1:1,
|
|
49608
|
+
LEVEL_5:5, // 叠加指数图形前面 指标图形 IsDrawFirst=true
|
|
49609
|
+
LEVEL_8:8, // 叠加指数图形前面 指标图形 IsDrawFirst=false
|
|
49610
|
+
LEVEL_10:10, // IsDynamic=false
|
|
49611
|
+
|
|
49612
|
+
LEVEL_20:20, // IsDynamic=true
|
|
49613
|
+
|
|
49614
|
+
LEVEL_25:25, // DrawAfterTitle=true 标题栏绘制完成以后
|
|
49615
|
+
|
|
49616
|
+
LEVEL_35:35, // IsAnimation=true
|
|
49617
|
+
|
|
49618
|
+
LEVEL_50:50, // DrawAfterPicture=true; 是否在画图工具以后绘制
|
|
49619
|
+
}
|
|
49620
|
+
|
|
49265
49621
|
//K线Tooltip, 显示在左边或右边
|
|
49266
49622
|
function KLineTooltipPaint()
|
|
49267
49623
|
{
|
|
@@ -49281,6 +49637,7 @@ function KLineTooltipPaint()
|
|
|
49281
49637
|
this.AmountColor=g_JSChartResource.TooltipPaint.AmountColor; //成交金额
|
|
49282
49638
|
this.LatestPoint; //手势位置
|
|
49283
49639
|
this.ShowPosition=0; //显示位置 0=左 1=右
|
|
49640
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
49284
49641
|
|
|
49285
49642
|
this.Left=1*GetDevicePixelRatio();
|
|
49286
49643
|
this.Top=5*GetDevicePixelRatio();
|
|
@@ -50024,6 +50381,7 @@ function MinuteLeftTooltipPaint()
|
|
|
50024
50381
|
this.IsDynamic=true;
|
|
50025
50382
|
this.IsEraseBG=true;
|
|
50026
50383
|
this.DrawAfterTitle=true;
|
|
50384
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
50027
50385
|
this.ClassName='MinuteLeftTooltipPaint';
|
|
50028
50386
|
this.BorderColor=g_JSChartResource.PCTooltipPaint.BorderColor; //边框颜色
|
|
50029
50387
|
this.BGColor=g_JSChartResource.PCTooltipPaint.BGColor; //背景色
|
|
@@ -50434,6 +50792,7 @@ function StockChip()
|
|
|
50434
50792
|
this.PixelRatio=GetDevicePixelRatio();
|
|
50435
50793
|
this.ShowType=0; //0=所有筹码 1=周期前 2=周期内
|
|
50436
50794
|
this.IsDynamic=true;
|
|
50795
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20;
|
|
50437
50796
|
this.ClientRect={};
|
|
50438
50797
|
this.Font=g_JSChartResource.StockChip.Font;
|
|
50439
50798
|
this.InfoColor=g_JSChartResource.StockChip.InfoColor;
|
|
@@ -54113,6 +54472,7 @@ function FrameButtomToolbarPaint()
|
|
|
54113
54472
|
this.FrameGuid=null;
|
|
54114
54473
|
this.IsDynamic=true;
|
|
54115
54474
|
this.DrawAfterTitle=true;
|
|
54475
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
54116
54476
|
|
|
54117
54477
|
this.AryButton=[]; // { Title:, ID:, Data:数据, TooltipText:提示信息 }
|
|
54118
54478
|
this.SelectedID=null; // 选中按钮ID
|
|
@@ -58258,6 +58618,7 @@ function ChartCorssCursor()
|
|
|
58258
58618
|
this.CallAcutionXOperator;
|
|
58259
58619
|
|
|
58260
58620
|
this.EnableKeyboard=false; //是否支持键盘隐藏显示
|
|
58621
|
+
this.EnableDBClick=false; //是否允许双击显示|隐藏十字光标
|
|
58261
58622
|
this.OnChangeStatusCallback; //状态切换以后回调
|
|
58262
58623
|
|
|
58263
58624
|
|
|
@@ -59486,6 +59847,27 @@ function ChartCorssCursor()
|
|
|
59486
59847
|
}
|
|
59487
59848
|
}
|
|
59488
59849
|
|
|
59850
|
+
this.OnDBClick=function(data)
|
|
59851
|
+
{
|
|
59852
|
+
if (!this.EnableDBClick) return;
|
|
59853
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return;
|
|
59854
|
+
|
|
59855
|
+
//在主图框架内
|
|
59856
|
+
var frame=this.Frame.SubFrame[0].Frame;
|
|
59857
|
+
if (!frame) return;
|
|
59858
|
+
|
|
59859
|
+
var border=frame.GetBorder();
|
|
59860
|
+
var rtClient={ Left:border.Left, Top:border.Top, Bottom:border.Bottom, Right:border.Right };
|
|
59861
|
+
var x=data.X, y=data.Y;
|
|
59862
|
+
if (x>=rtClient.Left && x<=rtClient.Right && y>=rtClient.Top && y<=rtClient.Bottom)
|
|
59863
|
+
{
|
|
59864
|
+
this.IsShowCorss=!this.IsShowCorss
|
|
59865
|
+
data.Draw=true;
|
|
59866
|
+
|
|
59867
|
+
if (this.OnChangeStatusCallback) this.OnChangeStatusCallback({ Type:1, IsShowCorss:this.IsShowCorss }, this);
|
|
59868
|
+
}
|
|
59869
|
+
}
|
|
59870
|
+
|
|
59489
59871
|
|
|
59490
59872
|
this.DrawCorssPoint=function(x,y)
|
|
59491
59873
|
{
|
|
@@ -80307,6 +80689,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
80307
80689
|
{ KeyID:87, SecondKeyID:3, CMD:JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID, Args:null, Description:"Alt+W 全屏区间统计" },
|
|
80308
80690
|
]
|
|
80309
80691
|
|
|
80692
|
+
this.KLineDragConfig={ EnableShfit:false }; //是否启动Shift+鼠标拖动K线
|
|
80693
|
+
|
|
80310
80694
|
this.GetKLineCalulate=function()
|
|
80311
80695
|
{
|
|
80312
80696
|
var kLineDrawType=this.GetKLineDrawType();
|
|
@@ -81379,6 +81763,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
81379
81763
|
this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);
|
|
81380
81764
|
return true;
|
|
81381
81765
|
}
|
|
81766
|
+
else if (keyID==13) //回车显示分时图
|
|
81767
|
+
{
|
|
81768
|
+
this.OnEnterKeyDown();
|
|
81769
|
+
}
|
|
81382
81770
|
else
|
|
81383
81771
|
{
|
|
81384
81772
|
return false;
|
|
@@ -81518,6 +81906,30 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
81518
81906
|
this.ShowTooltipByKeyDown();
|
|
81519
81907
|
}
|
|
81520
81908
|
|
|
81909
|
+
this.OnEnterKeyDown=function()
|
|
81910
|
+
{
|
|
81911
|
+
if (!this.PopMinuteChart) return false;
|
|
81912
|
+
if (!ChartData.IsDayPeriod(this.Period,true)) return false; //只支持日K
|
|
81913
|
+
if (!this.ChartCorssCursor || !this.ChartCorssCursor.IsShowCorss || this.ChartCorssCursor.ClientPos<0) return false;
|
|
81914
|
+
var index=this.ChartCorssCursor.CursorIndex;
|
|
81915
|
+
index=parseInt(index.toFixed(0));
|
|
81916
|
+
var kData=this.GetKData();
|
|
81917
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false;
|
|
81918
|
+
var dataIndex=kData.DataOffset+index;
|
|
81919
|
+
if (dataIndex<0 || dataIndex>=kData.Data.length) return false;
|
|
81920
|
+
|
|
81921
|
+
var kItem = kData.Data[dataIndex];
|
|
81922
|
+
if (!kItem) return false;
|
|
81923
|
+
|
|
81924
|
+
var frame=this.Frame.SubFrame[0].Frame;
|
|
81925
|
+
var x=frame.GetXFromIndex(index);
|
|
81926
|
+
var y=frame.GetYFromData(kItem.Close);
|
|
81927
|
+
|
|
81928
|
+
var data={ Chart:this, Tooltip:{ ChartPaint:this.ChartPaint[0], Data:kItem } };
|
|
81929
|
+
|
|
81930
|
+
this.ShowMinuteChartDialog(data, x, y);
|
|
81931
|
+
}
|
|
81932
|
+
|
|
81521
81933
|
//获取K线图实例
|
|
81522
81934
|
this.GetKLineChart=function()
|
|
81523
81935
|
{
|
|
@@ -86275,12 +86687,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86275
86687
|
var bCorssDrawKLine=false;
|
|
86276
86688
|
var bCorssDrawVaildTime=false;
|
|
86277
86689
|
var bCorssDrawPoint=false;
|
|
86690
|
+
var bCorssBCClick=false;
|
|
86278
86691
|
if (this.ChartCorssCursor)
|
|
86279
86692
|
{
|
|
86280
86693
|
bShowCorss=this.ChartCorssCursor.IsShowCorss;
|
|
86281
86694
|
bCorssDrawKLine=this.ChartCorssCursor.IsOnlyDrawKLine && this.ChartCorssCursor.IsShowClose;
|
|
86282
86695
|
bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
|
|
86283
86696
|
bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
|
|
86697
|
+
bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
|
|
86284
86698
|
}
|
|
86285
86699
|
|
|
86286
86700
|
var bPopMinuteChart=false;
|
|
@@ -86466,6 +86880,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86466
86880
|
{ Name:"显示在K线上", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_KLINE_ID, Args:[!bCorssDrawKLine]}, Checked:bCorssDrawKLine },
|
|
86467
86881
|
{ Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
|
|
86468
86882
|
{ Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
|
|
86883
|
+
{ Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
|
|
86469
86884
|
]
|
|
86470
86885
|
},
|
|
86471
86886
|
{
|
|
@@ -86939,6 +87354,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86939
87354
|
|
|
86940
87355
|
this.OnDoubleClick=function(x,y,e)
|
|
86941
87356
|
{
|
|
87357
|
+
var bDraw=false;
|
|
87358
|
+
if (this.ChartCorssCursor)
|
|
87359
|
+
{
|
|
87360
|
+
var data={ e:e, X:x, Y:y, Draw:false };
|
|
87361
|
+
this.ChartCorssCursor.OnDBClick(data);
|
|
87362
|
+
bDraw=data.Draw
|
|
87363
|
+
}
|
|
87364
|
+
|
|
86942
87365
|
if (this.EnableYDrag && (this.EnableYDrag.Left || this.EnableYDrag.Right) && this.Frame && this.Frame.PtInFrameY)
|
|
86943
87366
|
{
|
|
86944
87367
|
var pixelTatio = GetDevicePixelRatio();
|
|
@@ -86975,6 +87398,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86975
87398
|
}
|
|
86976
87399
|
}
|
|
86977
87400
|
|
|
87401
|
+
if (bDraw) this.Draw();
|
|
87402
|
+
|
|
86978
87403
|
var tooltip=new TooltipData();
|
|
86979
87404
|
if (!this.PtInChartPaintTooltip(x,y,tooltip))
|
|
86980
87405
|
{
|
|
@@ -88299,6 +88724,22 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
88299
88724
|
|
|
88300
88725
|
return result;
|
|
88301
88726
|
}
|
|
88727
|
+
|
|
88728
|
+
//修正十字光标位置有效的K线
|
|
88729
|
+
this.FixCursorIndexValid=function()
|
|
88730
|
+
{
|
|
88731
|
+
var kData=this.GetKData();
|
|
88732
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false;
|
|
88733
|
+
|
|
88734
|
+
var dataIndex=this.CursorIndex+kData.DataOffset;
|
|
88735
|
+
if (dataIndex>=kData.Data.length)
|
|
88736
|
+
{
|
|
88737
|
+
this.CursorIndex=kData.Data.length-kData.DataOffset-1;
|
|
88738
|
+
return true;
|
|
88739
|
+
}
|
|
88740
|
+
|
|
88741
|
+
return false;
|
|
88742
|
+
}
|
|
88302
88743
|
}
|
|
88303
88744
|
|
|
88304
88745
|
//API 返回数据 转化为array[]
|
|
@@ -90536,12 +90977,14 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90536
90977
|
var bCorssDrawCloseLine=false; //十字光标只能画在走势图价格线上
|
|
90537
90978
|
var bCorssDrawVaildTime=false;
|
|
90538
90979
|
var bCorssDrawPoint=false;
|
|
90980
|
+
var bCorssBCClick=false;
|
|
90539
90981
|
if (this.ChartCorssCursor)
|
|
90540
90982
|
{
|
|
90541
90983
|
bShowCorss=this.ChartCorssCursor.IsShowCorss;
|
|
90542
90984
|
bCorssDrawCloseLine=this.ChartCorssCursor.IsOnlyDrawMinute;
|
|
90543
90985
|
bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
|
|
90544
90986
|
bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
|
|
90987
|
+
bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
|
|
90545
90988
|
}
|
|
90546
90989
|
|
|
90547
90990
|
var bRButtonSelectRect=false,bLButtonSelectRect=false;
|
|
@@ -90638,6 +91081,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90638
91081
|
{ Name:"画在价格线上", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID, Args:[!bCorssDrawCloseLine]}, Checked:bCorssDrawCloseLine },
|
|
90639
91082
|
{ Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
|
|
90640
91083
|
{ Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
|
|
91084
|
+
{ Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
|
|
90641
91085
|
]
|
|
90642
91086
|
},
|
|
90643
91087
|
|
|
@@ -90778,6 +91222,14 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90778
91222
|
{
|
|
90779
91223
|
JSConsole.Chart.Log("[MinuteChartContainer::OnDoubleClick]", e);
|
|
90780
91224
|
|
|
91225
|
+
var bDraw=false;
|
|
91226
|
+
if (this.ChartCorssCursor)
|
|
91227
|
+
{
|
|
91228
|
+
var data={ e:e, X:x, Y:y, Draw:false };
|
|
91229
|
+
this.ChartCorssCursor.OnDBClick(data);
|
|
91230
|
+
bDraw=data.Draw
|
|
91231
|
+
}
|
|
91232
|
+
|
|
90781
91233
|
if (this.EnableYDrag && (this.EnableYDrag.Left || this.EnableYDrag.Right) && this.Frame && this.Frame.PtInFrameY)
|
|
90782
91234
|
{
|
|
90783
91235
|
var pixelTatio = GetDevicePixelRatio();
|
|
@@ -90815,10 +91267,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90815
91267
|
if (this.ZoomIndexWindow(frameId, {X:x, Y:y}))
|
|
90816
91268
|
{
|
|
90817
91269
|
this.Frame.SetSizeChage(true);
|
|
90818
|
-
|
|
91270
|
+
bDraw=true;
|
|
90819
91271
|
}
|
|
90820
91272
|
}
|
|
90821
91273
|
}
|
|
91274
|
+
|
|
91275
|
+
if (bDraw) this.Draw();
|
|
90822
91276
|
}
|
|
90823
91277
|
|
|
90824
91278
|
this.GetDataItem=function(pointInfo)
|
|
@@ -104474,7 +104928,7 @@ function Node(ErrorHandler)
|
|
|
104474
104928
|
//CAPITAL流通股本(手), EXCHANGE 换手率, TOTALCAPITAL 总股本(手)
|
|
104475
104929
|
let setVariantName=new Set(
|
|
104476
104930
|
[
|
|
104477
|
-
"CAPITAL","TOTALCAPITAL","EXCHANGE",
|
|
104931
|
+
"CAPITAL","TOTALCAPITAL","EXCHANGE","HSL",
|
|
104478
104932
|
"HYBLOCK","DYBLOCK","GNBLOCK","FGBLOCK","ZSBLOCK","ZHBLOCK","ZDBLOCK","HYZSCODE",
|
|
104479
104933
|
"GNBLOCKNUM","FGBLOCKNUM","ZSBLOCKNUM","ZHBLOCKNUM","ZDBLOCKNUM",
|
|
104480
104934
|
"HYSYL","HYSJL","FROMOPEN",
|
|
@@ -118018,7 +118472,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
118018
118472
|
{
|
|
118019
118473
|
var dataType=0;
|
|
118020
118474
|
if (IFrameSplitOperator.IsNumber(recvData.DataType)) dataType=recvData.DataType;
|
|
118021
|
-
self.RecvStockValue(recvData.Data,jobItem,key,dataType);
|
|
118475
|
+
self.RecvStockValue(recvData.Data,jobItem,key,dataType,recvData);
|
|
118022
118476
|
}
|
|
118023
118477
|
|
|
118024
118478
|
self.Execute.RunNextJob();
|
|
@@ -118033,7 +118487,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
118033
118487
|
};
|
|
118034
118488
|
|
|
118035
118489
|
var apiDownload;
|
|
118036
|
-
if (jobItem.VariantName=="CAPITAL" || jobItem.VariantName=="TOTALCAPITAL" || jobItem.VariantName=="EXCHANGE")
|
|
118490
|
+
if (jobItem.VariantName=="CAPITAL" || jobItem.VariantName=="TOTALCAPITAL" || jobItem.VariantName=="EXCHANGE" || jobItem.VariantName=="HSL")
|
|
118037
118491
|
{
|
|
118038
118492
|
var callback=function(recvData, jobItem, key)
|
|
118039
118493
|
{
|
|
@@ -118228,7 +118682,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
118228
118682
|
}
|
|
118229
118683
|
}
|
|
118230
118684
|
|
|
118231
|
-
this.RecvStockValue=function(recvData,jobItem,key,dataType)
|
|
118685
|
+
this.RecvStockValue=function(recvData,jobItem,key,dataType, srcData)
|
|
118232
118686
|
{
|
|
118233
118687
|
if (!recvData)
|
|
118234
118688
|
{
|
|
@@ -118259,8 +118713,9 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
118259
118713
|
var bindData=new ChartData();
|
|
118260
118714
|
bindData.Data=aryFittingData;
|
|
118261
118715
|
var result=bindData.GetValue();
|
|
118716
|
+
var bVersion2=srcData && srcData.Ver==2; //2.0 版本
|
|
118262
118717
|
|
|
118263
|
-
if (key=="EXCHANGE") //计算换手率=成交量/流通股本*100
|
|
118718
|
+
if (!bVersion2 && (key=="EXCHANGE" || key=="HSL")) //计算换手率=成交量/流通股本*100
|
|
118264
118719
|
{
|
|
118265
118720
|
for(var i in result)
|
|
118266
118721
|
{
|
|
@@ -120280,7 +120735,7 @@ function JSExecute(ast,option)
|
|
|
120280
120735
|
|
|
120281
120736
|
['CAPITAL',null], //流通股本(手)
|
|
120282
120737
|
["TOTALCAPITAL",null], //TOTALCAPITAL 当前总股本 手
|
|
120283
|
-
['EXCHANGE',null], //换手率
|
|
120738
|
+
['EXCHANGE',null], ["HSL",null], //换手率
|
|
120284
120739
|
['SETCODE', null], //市场类型
|
|
120285
120740
|
['CODE',null], //品种代码
|
|
120286
120741
|
['STKNAME',null], //品种名称
|
|
@@ -120530,6 +120985,7 @@ function JSExecute(ast,option)
|
|
|
120530
120985
|
case "TOTALCAPITAL":
|
|
120531
120986
|
case 'CAPITAL':
|
|
120532
120987
|
case 'EXCHANGE':
|
|
120988
|
+
case "HSL":
|
|
120533
120989
|
|
|
120534
120990
|
case "HYBLOCK":
|
|
120535
120991
|
case "DYBLOCK":
|
|
@@ -122197,7 +122653,7 @@ function JSExplainer(ast,option)
|
|
|
122197
122653
|
['BARSTATUS',"数据位置状态"], //BARSTATUS返回数据位置信息,1表示第一根K线,2表示最后一个数据,0表示中间位置.
|
|
122198
122654
|
|
|
122199
122655
|
['CAPITAL',"当前流通股本(手)"], ["TOTALCAPITAL","当前总股本(手)"],
|
|
122200
|
-
['EXCHANGE',"换手率"],
|
|
122656
|
+
['EXCHANGE',"换手率"], ['HSL',"换手线"],
|
|
122201
122657
|
['SETCODE', "市场类型"], //市场类型
|
|
122202
122658
|
['CODE',"品种代码"], //品种代码
|
|
122203
122659
|
['STKNAME',"品种名称"], //品种名称
|
|
@@ -129455,6 +129911,7 @@ function DownloadFinanceData(obj)
|
|
|
129455
129911
|
case 1: //FINANCE(1) 总股本(随时间可能有变化) 股
|
|
129456
129912
|
case 7: //FINANCE(7) 流通股本(随时间可能有变化) 股
|
|
129457
129913
|
case "EXCHANGE": //换手率
|
|
129914
|
+
case "HSL"://换手率
|
|
129458
129915
|
this.DownloadHistoryData(id);
|
|
129459
129916
|
break;
|
|
129460
129917
|
case 3:
|
|
@@ -129581,6 +130038,7 @@ function DownloadFinanceData(obj)
|
|
|
129581
130038
|
return ["capital.total", "capital.date"];
|
|
129582
130039
|
case 7:
|
|
129583
130040
|
return ["capital.a", "capital.date"];
|
|
130041
|
+
case "HSL":
|
|
129584
130042
|
case "EXCHANGE":
|
|
129585
130043
|
return ["capital.a", "capital.date"];
|
|
129586
130044
|
|
|
@@ -129714,6 +130172,7 @@ function DownloadFinanceData(obj)
|
|
|
129714
130172
|
if (!item.capital) return null;
|
|
129715
130173
|
return { Date:date, Value:item.capital.total };
|
|
129716
130174
|
case 7:
|
|
130175
|
+
case "HSL": //换手率
|
|
129717
130176
|
case "EXCHANGE": //换手率 历史流通股本
|
|
129718
130177
|
if (!item.capital) return null;
|
|
129719
130178
|
return { Date:date, Value:item.capital.a };
|
|
@@ -155134,7 +155593,17 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
|
|
|
155134
155593
|
{Name:"OSC 变动速率线", ID:"OSC", Type:0},
|
|
155135
155594
|
{Name:"RSI 相对强弱指标", ID:"RSI", Type:0},
|
|
155136
155595
|
{Name:"ROC 变动率指标", ID:"ROC", Type:0},
|
|
155137
|
-
{Name:"WR 威廉指标", ID:"WR", Type:0}
|
|
155596
|
+
{Name:"WR 威廉指标", ID:"WR", Type:0},
|
|
155597
|
+
{Name:"UDL 引力线", ID:"UDL", Type:0},
|
|
155598
|
+
{Name:"LWR 威廉指标", ID:"LWR", Type:0},
|
|
155599
|
+
{Name:"MARSI 相对强弱平均线", ID:"MARSI", Type:0},
|
|
155600
|
+
{Name:"ACCER 幅度涨速", ID:"ACCER", Type:0},
|
|
155601
|
+
{Name:"CYD 承接因子", ID:"CYD", Type:0},
|
|
155602
|
+
{Name:"CYF 市场能量", ID:"CYF", Type:0},
|
|
155603
|
+
{Name:"ADTM 动态买卖气指标", ID:"ADTM", Type:0},
|
|
155604
|
+
{Name:"ATR 真实波幅", ID:"ATR", Type:0},
|
|
155605
|
+
{Name:"DKX 多空线", ID:"DKX", Type:0},
|
|
155606
|
+
{Name:"TAPI 加权指数成交值", ID:"TAPI", Type:0},
|
|
155138
155607
|
]
|
|
155139
155608
|
},
|
|
155140
155609
|
|
|
@@ -155149,7 +155618,22 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
|
|
|
155149
155618
|
{Name:"MACD 平滑异同平均", ID:"MACD", Type:0 },
|
|
155150
155619
|
{Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 },
|
|
155151
155620
|
{Name:"UOS 终极指标", ID:"UOS", Type:0 },
|
|
155152
|
-
{Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 }
|
|
155621
|
+
{Name:"TRIX 三重指数平均线", ID:"TRIX", Type:0 },
|
|
155622
|
+
{Name:"VMACD 量平滑异同平均", ID:"VMACD", Type:0 },
|
|
155623
|
+
|
|
155624
|
+
{Name:"VMACD 量平滑异同平均", ID:"VMACD", Type:0 },
|
|
155625
|
+
{Name:"SMACD 单线平滑异同平均线", ID:"SMACD", Type:0 },
|
|
155626
|
+
{Name:"QACD 快速异同平均", ID:"QACD", Type:0 },
|
|
155627
|
+
{Name:"VPT 量价曲线", ID:"VPT", Type:0 },
|
|
155628
|
+
{Name:"WVAD 威廉变异离散量", ID:"WVAD", Type:0 },
|
|
155629
|
+
|
|
155630
|
+
{Name:"DBQR 对比强弱", ID:"DBQR", Type:0 },
|
|
155631
|
+
{Name:"WVAD 威廉变异离散量", ID:"WVAD", Type:0 },
|
|
155632
|
+
{Name:"JS 加速线", ID:"JS", Type:0 },
|
|
155633
|
+
{Name:"CYE 市场趋势", ID:"CYE", Type:0 },
|
|
155634
|
+
{Name:"QR 强弱指标", ID:"QR", Type:0 },
|
|
155635
|
+
{Name:"GDX 轨道线", ID:"GDX", Type:0 },
|
|
155636
|
+
{Name:"JLHB 绝路航标", ID:"JLHB", Type:0 },
|
|
155153
155637
|
]
|
|
155154
155638
|
},
|
|
155155
155639
|
|
|
@@ -155161,7 +155645,18 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
|
|
|
155161
155645
|
{Name:"OBV 累积能量线", ID:"OBV", Type:0},
|
|
155162
155646
|
{Name:"NVI 负成交量", ID:"NVI", Type:0},
|
|
155163
155647
|
{Name:"PVI 正成交量", ID:"PVI", Type:0},
|
|
155164
|
-
{Name:"VOL 成交量", ID:"VOL", Type:0}
|
|
155648
|
+
{Name:"VOL 成交量", ID:"VOL", Type:0},
|
|
155649
|
+
{Name:"VOL-TDX 成交量(虚拟)", ID:"VOL-TDX", Type:0},
|
|
155650
|
+
{Name:"AMO 成交金额", ID:"AMO", Type:0},
|
|
155651
|
+
{Name:"AMO-TDX 成交金额(虚拟)", ID:"AMO-TDX", Type:0},
|
|
155652
|
+
{Name:"VRSI 相对强弱量", ID:"VRSI", Type:0},
|
|
155653
|
+
{Name:"HSCOL 换手柱", ID:"HSCOL", Type:0},
|
|
155654
|
+
{Name:"DBQRV 对比强弱量", ID:"DBQRV", Type:0},
|
|
155655
|
+
{Name:"DBLB 对比量比", ID:"DBLB", Type:0},
|
|
155656
|
+
{Name:"WSBVOL 维斯波成交量", ID:"WSBVOL", Type:0},
|
|
155657
|
+
|
|
155658
|
+
{Name:"CCYD 持仓异动(适用于期货)", ID:"CCYD", Type:0},
|
|
155659
|
+
{Name:"CCL 持仓量(适用于期货)", ID:"CCL", Type:0},
|
|
155165
155660
|
]
|
|
155166
155661
|
},
|
|
155167
155662
|
{
|
|
@@ -155169,7 +155664,22 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
|
|
|
155169
155664
|
AryIndex:
|
|
155170
155665
|
[
|
|
155171
155666
|
{Name:"MA 均线", ID:"MA", Type:0},
|
|
155172
|
-
{Name:"
|
|
155667
|
+
{Name:"MA4 4根均线", ID:"MA4", Type:0},
|
|
155668
|
+
{Name:"MA5 5根均线", ID:"MA5", Type:0},
|
|
155669
|
+
{Name:"MA7 6根均线", ID:"MA6", Type:0},
|
|
155670
|
+
{Name:"MA7 7根均线", ID:"MA7", Type:0},
|
|
155671
|
+
{Name:"MA8 8根均线", ID:"MA8", Type:0},
|
|
155672
|
+
{Name:"BBI 多空线", ID:"BBI", Type:0},
|
|
155673
|
+
{Name:"ACD 升降线", ID:"ACD", Type:0},
|
|
155674
|
+
{Name:"EXPMA 指数平均线", ID:"EXPMA", Type:0},
|
|
155675
|
+
{Name:"EXPMA_S 指数平均线-副图", ID:"EXPMA_S", Type:0},
|
|
155676
|
+
{Name:"HMA 高价平均线", ID:"HMA", Type:0},
|
|
155677
|
+
{Name:"LMA 低价平均线", ID:"LMA", Type:0},
|
|
155678
|
+
{Name:"VMA 变异平均线", ID:"VMA", Type:0},
|
|
155679
|
+
{Name:"AMV 成本价均线", ID:"AMV", Type:0},
|
|
155680
|
+
{Name:"BBIBOLL 多空布林线", ID:"BBIBOLL", Type:0},
|
|
155681
|
+
{Name:"ALLIGAT 鳄鱼线", ID:"ALLIGAT", Type:0},
|
|
155682
|
+
{Name:"GMMA 顾比均线", ID:"GMMA", Type:0},
|
|
155173
155683
|
]
|
|
155174
155684
|
},
|
|
155175
155685
|
{
|
|
@@ -155177,9 +155687,13 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
|
|
|
155177
155687
|
AryIndex:
|
|
155178
155688
|
[
|
|
155179
155689
|
{Name:"BOLL 布林线", ID:"BOLL", Type:0},
|
|
155180
|
-
{Name:"BOLL
|
|
155690
|
+
{Name:"BOLL 布林线-副图", ID:"BOLL副图", Type:0},
|
|
155181
155691
|
{Name:"MIKE 麦克支撑压力", ID:"MIKE", Type:0},
|
|
155182
|
-
{Name:"ENE 轨道线", ID:"ENE", Type:0}
|
|
155692
|
+
{Name:"ENE 轨道线", ID:"ENE", Type:0},
|
|
155693
|
+
{Name:"PBX 瀑布线", ID:"PBX", Type:0},
|
|
155694
|
+
{Name:"XS 薛斯通道", ID:"XS", Type:0},
|
|
155695
|
+
{Name:"XS2 薛斯通道II", ID:"XS2", Type:0},
|
|
155696
|
+
{Name:"DC 唐奇安通道", ID:"DC", Type:0}
|
|
155183
155697
|
]
|
|
155184
155698
|
},
|
|
155185
155699
|
{
|
|
@@ -155192,9 +155706,19 @@ JSDialogSearchIndex.GetDefaultIndexData=function()
|
|
|
155192
155706
|
{Name:"PSY 心理线", ID:"PSY", Type:0},
|
|
155193
155707
|
{Name:"CR 带状能量线", ID:"CR", Type:0},
|
|
155194
155708
|
{Name:"VR 成交量变异率", ID:"VR", Type:0},
|
|
155195
|
-
{Name:"WAD 威廉多空力度线", ID:"WAD", Type:0}
|
|
155709
|
+
{Name:"WAD 威廉多空力度线", ID:"WAD", Type:0},
|
|
155710
|
+
{Name:"PCNT 幅度比", ID:"PCNT", Type:0}
|
|
155711
|
+
]
|
|
155712
|
+
},
|
|
155713
|
+
{
|
|
155714
|
+
Group:{ ID:"大势型", Name:"大势型"},
|
|
155715
|
+
AryIndex:
|
|
155716
|
+
[
|
|
155717
|
+
{Name:"ABI 绝对广量指标", ID:"ABI", Type:0 },
|
|
155718
|
+
{Name:"ADL 腾落指标", ID:"ADL", Type:0 },
|
|
155196
155719
|
]
|
|
155197
155720
|
},
|
|
155721
|
+
|
|
155198
155722
|
{
|
|
155199
155723
|
Group:{ ID:"五彩K线", Name:"五彩K线"} ,
|
|
155200
155724
|
AryIndex:
|
|
@@ -155874,7 +156398,7 @@ function HQChartScriptWorker()
|
|
|
155874
156398
|
|
|
155875
156399
|
|
|
155876
156400
|
|
|
155877
|
-
var HQCHART_VERSION="1.1.
|
|
156401
|
+
var HQCHART_VERSION="1.1.14592";
|
|
155878
156402
|
|
|
155879
156403
|
function PrintHQChartVersion()
|
|
155880
156404
|
{
|