hqchart 1.1.14576 → 1.1.14591
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 +205 -72
- 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 +246 -5
- package/src/jscommon/umychart.testdata.js +82 -1
- package/src/jscommon/umychart.uniapp.h5/umychart.uniapp.h5.js +437 -20
- 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 +509 -27
|
@@ -111,7 +111,7 @@ function JSIndexScript()
|
|
|
111
111
|
['VRSI',this.VRSI],['HSCOL',this.HSCOL],['DBQRV',this.DBQRV],['DBLB',this.DBLB],
|
|
112
112
|
['ACD',this.ACD],['EXPMA',this.EXPMA],['EXPMA_S',this.EXPMA_S],['HMA',this.HMA],
|
|
113
113
|
['LMA',this.LMA],['VMA',this.VMA],['AMV',this.AMV],['BBIBOLL',this.BBIBOLL],
|
|
114
|
-
['ALLIGAT',this.ALLIGAT],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],
|
|
114
|
+
['ALLIGAT',this.ALLIGAT],["GMMA",this.GMMA],['ZX',this.ZX],['XS',this.XS],['XS2',this.XS2],
|
|
115
115
|
['SG-XDT',this.SG_XDT],['SG-SMX',this.SG_SMX],['SG-LB',this.SG_LB],['SG-PF',this.SG_PF],
|
|
116
116
|
['RAD',this.RAD],['SHT',this.SHT],['ZLJC',this.ZLJC],['ZLMM',this.ZLMM],['SLZT',this.SLZT],
|
|
117
117
|
['ADVOL',this.ADVOL],['CYC',this.CYC],['CYS',this.CYS],['CYQKL',this.CYQKL],
|
|
@@ -123,7 +123,8 @@ function JSIndexScript()
|
|
|
123
123
|
['神奇九转', this.NineTurns],
|
|
124
124
|
['EMA', this.EMA3], ['EMA4', this.EMA4], ['EMA5', this.EMA5],['EMA6', this.EMA6],
|
|
125
125
|
["ICHIMOKU",this.ICHIMOKU],["CDP-STD", this.CDP_STD],["TBP-STD",this.TBP_STD],
|
|
126
|
-
["ADX", this.ADX],
|
|
126
|
+
["ADX", this.ADX],["SMACD", this.SMACD],["ACCER",this.ACCER],["AMO-TDX", this.AMO_TDX],
|
|
127
|
+
["WSBVOL",this.WSBVOL], ["CCYD",this.CCYD], ["CCL",this.CCL],["ABI", this.ABI],
|
|
127
128
|
|
|
128
129
|
["持仓量", this.VOL_POSITION], //成交量+持仓量
|
|
129
130
|
|
|
@@ -143,11 +144,11 @@ function JSIndexScript()
|
|
|
143
144
|
|
|
144
145
|
["两融余额", this.Margin2],["两融余额2", this.Margin3],
|
|
145
146
|
|
|
146
|
-
|
|
147
|
-
['
|
|
148
|
-
['
|
|
149
|
-
['
|
|
150
|
-
['
|
|
147
|
+
//特色指标
|
|
148
|
+
['特色指标-操盘BS点',this.FXG_BSPoint],
|
|
149
|
+
['特色指标-涨停多空线',this.FXG_INDEX],
|
|
150
|
+
['特色指标-涨停吸筹区',this.FXG_INDEX2],
|
|
151
|
+
['特色指标-量能黄金点',this.FXG_INDEX3],
|
|
151
152
|
|
|
152
153
|
//五彩K线(函数COLOR_开头)
|
|
153
154
|
['五彩K线-十字星',this.COLOR_KSTAR1],['五彩K线-早晨之星',this.COLOR_KSTAR2],['五彩K线-黄昏之星',this.COLOR_KSTAR3],['五彩K线-长十字',this.COLOR_SHI1],
|
|
@@ -708,6 +709,28 @@ MAVOL2:MA(VOLUME,M2);'
|
|
|
708
709
|
return data;
|
|
709
710
|
}
|
|
710
711
|
|
|
712
|
+
|
|
713
|
+
JSIndexScript.prototype.AMO_TDX=function()
|
|
714
|
+
{
|
|
715
|
+
let data=
|
|
716
|
+
{
|
|
717
|
+
Name:'AMO-TDX', Description:'成交金额(虚拟)', IsMainIndex:false,FloatPrecision:0,
|
|
718
|
+
Args:[ { Name:'M1', Value:5}, { Name:'M2', Value:10} ],
|
|
719
|
+
Script: //脚本
|
|
720
|
+
'TOTAL:=IF(PERIOD=1,5,IF(PERIOD=2,15,IF(PERIOD=3,30,IF(PERIOD=4,60,IF(PERIOD=5,TOTALFZNUM,1)))));\n\
|
|
721
|
+
MTIME:=MOD(FROMOPEN,TOTAL);\n\
|
|
722
|
+
CTIME:=IF(MTIME<0.5,TOTAL,MTIME);\n\
|
|
723
|
+
VAMO:=IF((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),AMOUNT/10000.0*TOTAL/CTIME,DRAWNULL);\n\
|
|
724
|
+
STICKLINE((CURRBARSCOUNT=1 AND DYNAINFO(8)>1),VAMO,0,-1,-1),COLOR00C0C0;\n\
|
|
725
|
+
AMOW:AMOUNT/10000.0,VOLSTICK;\n\
|
|
726
|
+
AMO1:MA(AMOW,M1);\n\
|
|
727
|
+
AMO2:MA(AMOW,M2);'
|
|
728
|
+
|
|
729
|
+
};
|
|
730
|
+
|
|
731
|
+
return data;
|
|
732
|
+
}
|
|
733
|
+
|
|
711
734
|
JSIndexScript.prototype.RSI=function()
|
|
712
735
|
{
|
|
713
736
|
let data=
|
|
@@ -1445,6 +1468,40 @@ MACD:DIF-DEA,COLORSTICK;'
|
|
|
1445
1468
|
return data;
|
|
1446
1469
|
}
|
|
1447
1470
|
|
|
1471
|
+
JSIndexScript.prototype.SMACD = function ()
|
|
1472
|
+
{
|
|
1473
|
+
let data =
|
|
1474
|
+
{
|
|
1475
|
+
Name: 'SMACD', Description: '单线平滑异同平均线', IsMainIndex: false,
|
|
1476
|
+
Args: [{ Name: 'SHORT', Value: 12 },{ Name: 'LONG', Value: 26 },{ Name: 'MID', Value: 9 }],
|
|
1477
|
+
Script: //脚本
|
|
1478
|
+
'DIF:=EMA(CLOSE,SHORT)-EMA(CLOSE,LONG);\n\
|
|
1479
|
+
DEA:EMA(DIF,MID);\n\
|
|
1480
|
+
MACD:DIF,COLORSTICK;'
|
|
1481
|
+
|
|
1482
|
+
};
|
|
1483
|
+
|
|
1484
|
+
return data;
|
|
1485
|
+
}
|
|
1486
|
+
|
|
1487
|
+
|
|
1488
|
+
JSIndexScript.prototype.ACCER = function ()
|
|
1489
|
+
{
|
|
1490
|
+
let data =
|
|
1491
|
+
{
|
|
1492
|
+
Name: 'ACCER', Description: '幅度涨速', IsMainIndex: false,
|
|
1493
|
+
Args: [{ Name: 'N', Value: 8 }],
|
|
1494
|
+
Script: //脚本
|
|
1495
|
+
'ACCER:SLOPE(CLOSE,N)/CLOSE;'
|
|
1496
|
+
|
|
1497
|
+
};
|
|
1498
|
+
|
|
1499
|
+
return data;
|
|
1500
|
+
}
|
|
1501
|
+
|
|
1502
|
+
|
|
1503
|
+
|
|
1504
|
+
|
|
1448
1505
|
JSIndexScript.prototype.QACD = function ()
|
|
1449
1506
|
{
|
|
1450
1507
|
let data =
|
|
@@ -1869,6 +1926,32 @@ JSIndexScript.prototype.ALLIGAT = function ()
|
|
|
1869
1926
|
return data;
|
|
1870
1927
|
}
|
|
1871
1928
|
|
|
1929
|
+
|
|
1930
|
+
JSIndexScript.prototype.GMMA = function ()
|
|
1931
|
+
{
|
|
1932
|
+
let data =
|
|
1933
|
+
{
|
|
1934
|
+
Name: 'GMMA', Description: '顾比均线', IsMainIndex: true,
|
|
1935
|
+
Args: [],
|
|
1936
|
+
Script: //脚本
|
|
1937
|
+
'MA3:EMA(CLOSE,3),COLORC08080;\n\
|
|
1938
|
+
MA5:EMA(CLOSE,5),COLORC08080;\n\
|
|
1939
|
+
MA8:EMA(CLOSE,8),COLORC08080;\n\
|
|
1940
|
+
MA10:EMA(CLOSE,10),COLORC08080;\n\
|
|
1941
|
+
MA12:EMA(CLOSE,12),COLORC08080;\n\
|
|
1942
|
+
MA15:EMA(CLOSE,15),COLORC08080;\n\
|
|
1943
|
+
MA30:EMA(CLOSE,30),COLOR0080FF;\n\
|
|
1944
|
+
MA35:EMA(CLOSE,35),COLOR0080FF;\n\
|
|
1945
|
+
MA40:EMA(CLOSE,40),COLOR0080FF;\n\
|
|
1946
|
+
MA45:EMA(CLOSE,45),COLOR0080FF;\n\
|
|
1947
|
+
MA50:EMA(CLOSE,50),COLOR0080FF;\n\
|
|
1948
|
+
MA60:EMA(CLOSE,60),COLOR0080FF;'
|
|
1949
|
+
|
|
1950
|
+
};
|
|
1951
|
+
|
|
1952
|
+
return data;
|
|
1953
|
+
}
|
|
1954
|
+
|
|
1872
1955
|
JSIndexScript.prototype.ZX = function ()
|
|
1873
1956
|
{
|
|
1874
1957
|
let data =
|
|
@@ -3905,6 +3988,94 @@ B:=REF(LLV(CLOSE,N),1);
|
|
|
3905
3988
|
}
|
|
3906
3989
|
|
|
3907
3990
|
|
|
3991
|
+
JSIndexScript.prototype.WSBVOL = function()
|
|
3992
|
+
{
|
|
3993
|
+
let data =
|
|
3994
|
+
{
|
|
3995
|
+
Name: 'WSBVOL', Description: '维斯波成交量', IsMainIndex: false,
|
|
3996
|
+
Script: //脚本
|
|
3997
|
+
`UPTJ1:=CLOSE>REF(CLOSE,1);
|
|
3998
|
+
UPTJ2:=(CLOSE==REF(CLOSE,1) && REF(CLOSE,1)>REF(CLOSE,2));
|
|
3999
|
+
UPTJ3:=MAX(OPEN,CLOSE)<REF(C,BARSLAST(CLOSE>REF(CLOSE,1))) AND MIN(OPEN,CLOSE)>REF(O,BARSLAST(CLOSE>REF(CLOSE,1)));
|
|
4000
|
+
UPTJ4:=NOT (H<REF(H,1) AND L<REF(L,1));
|
|
4001
|
+
UP:=(UPTJ1 || UPTJ2 || UPTJ3) AND UPTJ4;
|
|
4002
|
+
DOWN:=NOT(UP);
|
|
4003
|
+
M1:=BARSLASTCOUNT(UP);
|
|
4004
|
+
N1:=BARSLASTCOUNT(DOWN);
|
|
4005
|
+
CZB:=IF(M1=1 OR N1=1,2*INTPART(VOL*100/10000),INTPART(VOL*100/10000));
|
|
4006
|
+
SZ:=IF(M1>0,SUM(CZB,M1),-1*SUM(CZB,N1));
|
|
4007
|
+
GY:=IF(N1>0,SUM(CZB,N1),0);
|
|
4008
|
+
XQ:=IF(M1>0,SUM(CZB,M1),0);
|
|
4009
|
+
NOTEXT1:STICKLINE(M1>0,0,XQ,1,0),COLORRED;
|
|
4010
|
+
NOTEXT2:STICKLINE(N1>0,0,GY,1,0),COLORGREEN;
|
|
4011
|
+
WSB:SZ,NODRAW;`
|
|
4012
|
+
};
|
|
4013
|
+
|
|
4014
|
+
return data;
|
|
4015
|
+
}
|
|
4016
|
+
|
|
4017
|
+
|
|
4018
|
+
JSIndexScript.prototype.CCL = function()
|
|
4019
|
+
{
|
|
4020
|
+
let data =
|
|
4021
|
+
{
|
|
4022
|
+
Name: 'CCL', Description: '持仓量(适用于期货)', IsMainIndex: false,
|
|
4023
|
+
Script: //脚本
|
|
4024
|
+
`持仓量:VOLINSTK;
|
|
4025
|
+
成交:VOL,COLORLIRED;
|
|
4026
|
+
仓差:VOLINSTK-REF(VOLINSTK,1),NODRAW;
|
|
4027
|
+
STICKLINE(仓差>0 AND C>REF(C,1),0,仓差,2,3),COLORRED;
|
|
4028
|
+
STICKLINE(仓差>0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;
|
|
4029
|
+
STICKLINE(仓差>0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;
|
|
4030
|
+
STICKLINE(仓差<0 AND C>REF(C,1),0,仓差,2,3),COLORRED;
|
|
4031
|
+
STICKLINE(仓差<0 AND C<REF(C,1),0,仓差,2,3),COLORCYAN;
|
|
4032
|
+
STICKLINE(仓差<0 AND C=REF(C,1),0,仓差,2,3),COLORGRAY;`
|
|
4033
|
+
};
|
|
4034
|
+
|
|
4035
|
+
return data;
|
|
4036
|
+
}
|
|
4037
|
+
|
|
4038
|
+
JSIndexScript.prototype.CCYD = function()
|
|
4039
|
+
{
|
|
4040
|
+
let data =
|
|
4041
|
+
{
|
|
4042
|
+
Name: 'CCYD', Description: '持仓异动(适用于期货)', IsMainIndex: false,
|
|
4043
|
+
Script: //脚本
|
|
4044
|
+
`CCYD:=VOLINSTK-REF(VOLINSTK,1);
|
|
4045
|
+
SPYD:=C-REF(C,1);
|
|
4046
|
+
多头增仓:IF(SPYD>=0 AND CCYD>=0,ABS(CCYD),DRAWNULL),COLOR3232FF,NODRAW;
|
|
4047
|
+
空头减仓:IF(SPYD>0 AND CCYD<0,ABS(CCYD),DRAWNULL),COLOR3232FF,NODRAW;
|
|
4048
|
+
空头增仓:IF(SPYD<0 AND CCYD>=0,ABS(CCYD),DRAWNULL),COLORFFFF54,NODRAW;
|
|
4049
|
+
多头减仓:IF(SPYD<0 AND CCYD<0,ABS(CCYD),DRAWNULL),COLORFFFF54,NODRAW;
|
|
4050
|
+
STICKLINE(SPYD>=0 AND CCYD>=0,0,CCYD,3,1),COLOR3232FF;
|
|
4051
|
+
STICKLINE(SPYD>0 AND CCYD<0,CCYD,0,3,1),COLOR3232FF;
|
|
4052
|
+
STICKLINE(SPYD<0 AND CCYD>=0,CCYD,0,3,0),COLORFFFF54;
|
|
4053
|
+
STICKLINE(SPYD<0 AND CCYD<0,CCYD,0,3,0),COLORFFFF54;`
|
|
4054
|
+
};
|
|
4055
|
+
|
|
4056
|
+
return data;
|
|
4057
|
+
}
|
|
4058
|
+
|
|
4059
|
+
JSIndexScript.prototype.ABI = function()
|
|
4060
|
+
{
|
|
4061
|
+
let data =
|
|
4062
|
+
{
|
|
4063
|
+
Name: 'ABI', Description: '绝对广量指标', IsMainIndex: false,
|
|
4064
|
+
Args: [{ Name: 'N', Value: 10 }],
|
|
4065
|
+
Condition:
|
|
4066
|
+
{
|
|
4067
|
+
Period:[CONDITION_PERIOD.KLINE_DAY_ID, CONDITION_PERIOD.KLINE_WEEK_ID, CONDITION_PERIOD.KLINE_TWOWEEK_ID,
|
|
4068
|
+
CONDITION_PERIOD.KLINE_MONTH_ID, CONDITION_PERIOD.KLINE_QUARTER_ID ,CONDITION_PERIOD.KLINE_YEAR_ID ],
|
|
4069
|
+
Include:["000001.SH", "000003.SH", "000016.SH", "000300.SH", "000905.SH", "399001.SZ", " 399005.SZ", "399006.SZ"]
|
|
4070
|
+
},
|
|
4071
|
+
Script: //脚本
|
|
4072
|
+
`ABI:100*ABS(ADVANCE-DECLINE)/(ADVANCE+DECLINE);
|
|
4073
|
+
MAABI:EMA(ABI,M);`
|
|
4074
|
+
};
|
|
4075
|
+
|
|
4076
|
+
return data;
|
|
4077
|
+
}
|
|
4078
|
+
|
|
3908
4079
|
|
|
3909
4080
|
|
|
3910
4081
|
|
|
@@ -4366,6 +4537,12 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4366
4537
|
if (IFrameSplitOperator.IsNumber(item.ZIndex)) zindex=item.ZIndex;
|
|
4367
4538
|
if (item.Enable) this.CreateExtraCanvasElement(JSChart.RectDragCanvasKey, { ZIndex:zindex }); //创建独立的区间选择画布
|
|
4368
4539
|
}
|
|
4540
|
+
|
|
4541
|
+
if (option.DragKLine)
|
|
4542
|
+
{
|
|
4543
|
+
var item=option.DragKLine;
|
|
4544
|
+
if (IFrameSplitOperator.IsBool(item.EnableShfit)) chart.KLineDragConfig.EnableShfit=item.EnableShfit;
|
|
4545
|
+
}
|
|
4369
4546
|
}
|
|
4370
4547
|
|
|
4371
4548
|
//创建子窗口
|
|
@@ -4417,6 +4594,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4417
4594
|
if (IFrameSplitOperator.IsNumber(item.PriceFormatType)) chart.ChartCorssCursor.StringFormatY.PriceFormatType=item.PriceFormatType;
|
|
4418
4595
|
if (IFrameSplitOperator.IsNumber(item.DataFormatType)) chart.ChartCorssCursor.StringFormatY.DataFormatType=item.DataFormatType;
|
|
4419
4596
|
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
4597
|
+
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
4420
4598
|
|
|
4421
4599
|
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
4422
4600
|
|
|
@@ -4922,6 +5100,7 @@ function JSChart(divElement, bOffscreen, bCacheCanvas)
|
|
|
4922
5100
|
if (IFrameSplitOperator.IsNumber(item.HPenType)) chart.ChartCorssCursor.HPenType=item.HPenType;
|
|
4923
5101
|
if (IFrameSplitOperator.IsNumber(item.VPenType)) chart.ChartCorssCursor.VPenType=item.VPenType;
|
|
4924
5102
|
if (IFrameSplitOperator.IsBool(item.EnableKeyboard)) chart.ChartCorssCursor.EnableKeyboard=item.EnableKeyboard;
|
|
5103
|
+
if (IFrameSplitOperator.IsBool(item.EnableDBClick)) chart.ChartCorssCursor.EnableDBClick=item.EnableDBClick;
|
|
4925
5104
|
if (IFrameSplitOperator.IsBool(item.IsShowCorssPoint)) chart.ChartCorssCursor.CorssPointConfig.Enable=item.IsShowCorssPoint;
|
|
4926
5105
|
if (IFrameSplitOperator.IsNumber(item.VLineType)) chart.ChartCorssCursor.VLineType=item.VLineType;
|
|
4927
5106
|
}
|
|
@@ -6820,12 +6999,14 @@ var JSCHART_MENU_ID=
|
|
|
6820
6999
|
CMD_CORSS_ON_VAILD_TIME_ID:50, //超出当前时间的,X轴调整到当前最后的时间(分时图)
|
|
6821
7000
|
CMD_CORSS_ON_KLINE_ID:51, //十字光标只能画在K线上
|
|
6822
7001
|
CMD_CORSS_POINT_ID:52, //十字光标圆点
|
|
7002
|
+
|
|
6823
7003
|
|
|
6824
7004
|
CMD_RBUTTON_SELECT_RECT_ID:53, //右键区间选择
|
|
6825
7005
|
CMD_LBUTTON_SELECT_RECT_ID:54, //左键区间选择
|
|
6826
7006
|
CMD_ENABLE_XDRAG_BOTTOM_ID:55, //X轴拖动缩放
|
|
6827
7007
|
|
|
6828
7008
|
CMD_FULLSCREEN_SUMMARY_ID:56, //当前屏区间统计
|
|
7009
|
+
CMD_CORSS_DBCLICK_ID:57, //双击显示隐藏十字光标
|
|
6829
7010
|
|
|
6830
7011
|
|
|
6831
7012
|
|
|
@@ -8119,6 +8300,17 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8119
8300
|
document.oncontextmenu=(e)=> { this.DocContextMenu(e); }
|
|
8120
8301
|
}
|
|
8121
8302
|
|
|
8303
|
+
|
|
8304
|
+
this.IsShfitDragKLine=function(e)
|
|
8305
|
+
{
|
|
8306
|
+
if (this.DragMode!=1) return false;
|
|
8307
|
+
if (!this.KLineDragConfig) return false;
|
|
8308
|
+
if (!this.KLineDragConfig.EnableShfit) return false;
|
|
8309
|
+
if (!e.shiftKey) return false;
|
|
8310
|
+
|
|
8311
|
+
return true;
|
|
8312
|
+
}
|
|
8313
|
+
|
|
8122
8314
|
this.DocOnMouseMove=function(e)
|
|
8123
8315
|
{
|
|
8124
8316
|
//加载数据中,禁用鼠标事件
|
|
@@ -8134,6 +8326,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8134
8326
|
var moveSetpY=Math.abs(drag.LastMove.Y-e.clientY);
|
|
8135
8327
|
var isDragSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Index>=0);
|
|
8136
8328
|
var isDragSubSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Type==4);
|
|
8329
|
+
var bShfitDragKLine=this.IsShfitDragKLine(e); //shift+鼠标移动K线
|
|
8137
8330
|
if (drag.CurrentMove)
|
|
8138
8331
|
{
|
|
8139
8332
|
drag.CurrentMove.X=e.clientX;
|
|
@@ -8241,7 +8434,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8241
8434
|
{
|
|
8242
8435
|
this.OnDragXCoordinateZoom(drag, {X:moveSetp, Y:moveSetpY}, e);
|
|
8243
8436
|
}
|
|
8244
|
-
else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect) //左右键区间选择
|
|
8437
|
+
else if ((bLButtonSelectRect || bRButtonSelectRect) && !isDragSelectRect && !isDragSubSelectRect && !bShfitDragKLine) //左右键区间选择
|
|
8245
8438
|
{
|
|
8246
8439
|
var yMoveSetp=Math.abs(drag.LastMove.Y-e.clientY);
|
|
8247
8440
|
|
|
@@ -8353,6 +8546,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8353
8546
|
var isLeft=true;
|
|
8354
8547
|
if (drag.LastMove.X<e.clientX) isLeft=false;//右移数据
|
|
8355
8548
|
|
|
8549
|
+
//按住shift才能移动K线
|
|
8550
|
+
if (this.KLineDragConfig && this.KLineDragConfig.EnableShfit && !e.shiftKey) return;
|
|
8551
|
+
|
|
8356
8552
|
var cursorStatus="pointer";
|
|
8357
8553
|
var oneStepWidth=this.GetMoveOneStepWidth();
|
|
8358
8554
|
if (moveSetp<oneStepWidth)
|
|
@@ -8450,6 +8646,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8450
8646
|
var isDragSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Index>=0);
|
|
8451
8647
|
var isDragSubSelectRect=(this.RectSelectDrag && this.RectSelectDrag.Type==4);
|
|
8452
8648
|
var bClearDrawPicture=true;
|
|
8649
|
+
var bShfitDragKLine=this.IsShfitDragKLine(e);
|
|
8453
8650
|
if (this.CurrentChartDrawPicture)
|
|
8454
8651
|
{
|
|
8455
8652
|
var drawPicture=this.CurrentChartDrawPicture;
|
|
@@ -8492,7 +8689,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
8492
8689
|
{
|
|
8493
8690
|
if (this.OnMinuteSelectRectMouseUp) this.OnMinuteSelectRectMouseUp(e); //分时图区间选择
|
|
8494
8691
|
}
|
|
8495
|
-
else if (bLButtonSelectRect || bRButtonSelectRect) //K线图区间选择
|
|
8692
|
+
else if ((bLButtonSelectRect || bRButtonSelectRect) && !bShfitDragKLine) //K线图区间选择
|
|
8496
8693
|
{
|
|
8497
8694
|
var drag=this.MouseDrag;
|
|
8498
8695
|
drag.LastMove.X=e.clientX;
|
|
@@ -9781,6 +9978,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9781
9978
|
item.Draw();
|
|
9782
9979
|
}
|
|
9783
9980
|
|
|
9981
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_5);
|
|
9982
|
+
|
|
9784
9983
|
if (this.Frame.DrawOveraly)
|
|
9785
9984
|
this.Frame.DrawOveraly(true); //画叠加指标
|
|
9786
9985
|
|
|
@@ -9804,9 +10003,14 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9804
10003
|
item.Draw();
|
|
9805
10004
|
}
|
|
9806
10005
|
|
|
10006
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_8);
|
|
10007
|
+
|
|
9807
10008
|
if (this.Frame.DrawOveraly)
|
|
9808
10009
|
this.Frame.DrawOveraly(false); //画叠加指标
|
|
9809
10010
|
|
|
10011
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_10);
|
|
10012
|
+
|
|
10013
|
+
/*
|
|
9810
10014
|
//固定扩展图形
|
|
9811
10015
|
for(var i=0;i<this.ExtendChartPaint.length;++i)
|
|
9812
10016
|
{
|
|
@@ -9815,6 +10019,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9815
10019
|
if (item.DrawAfterPicture) continue;
|
|
9816
10020
|
if (!item.IsDynamic && item.IsAnimation==false) item.Draw();
|
|
9817
10021
|
}
|
|
10022
|
+
*/
|
|
9818
10023
|
|
|
9819
10024
|
if (this.Frame.DrawInsideHorizontal) this.Frame.DrawInsideHorizontal();
|
|
9820
10025
|
this.KLineIncreaseCustomHorizontal();
|
|
@@ -9843,6 +10048,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9843
10048
|
|
|
9844
10049
|
var moveonPoint=null;
|
|
9845
10050
|
if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
|
|
10051
|
+
|
|
10052
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20, { MoveonPoint:moveonPoint} );
|
|
10053
|
+
|
|
10054
|
+
/*
|
|
9846
10055
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
9847
10056
|
{
|
|
9848
10057
|
var item=this.ExtendChartPaint[i];
|
|
@@ -9854,6 +10063,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9854
10063
|
if (item.DrawToolbar) item.DrawToolbar(moveonPoint);
|
|
9855
10064
|
}
|
|
9856
10065
|
}
|
|
10066
|
+
*/
|
|
9857
10067
|
|
|
9858
10068
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
9859
10069
|
{
|
|
@@ -9943,6 +10153,8 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9943
10153
|
item.Draw(moveonPoint, this.LastMouseStatus);
|
|
9944
10154
|
}
|
|
9945
10155
|
|
|
10156
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25);
|
|
10157
|
+
/*
|
|
9946
10158
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
9947
10159
|
{
|
|
9948
10160
|
var item=this.ExtendChartPaint[i];
|
|
@@ -9950,7 +10162,11 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9950
10162
|
if (item.DrawAfterPicture) continue;
|
|
9951
10163
|
if (item.IsDynamic && item.DrawAfterTitle===true && item.IsAnimation==false) item.Draw();
|
|
9952
10164
|
}
|
|
10165
|
+
*/
|
|
9953
10166
|
|
|
10167
|
+
if (this.EnableAnimation) this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_30);
|
|
10168
|
+
|
|
10169
|
+
/*
|
|
9954
10170
|
if (this.EnableAnimation)
|
|
9955
10171
|
{
|
|
9956
10172
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动画
|
|
@@ -9959,6 +10175,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9959
10175
|
if (item.IsAnimation===true) item.Draw();
|
|
9960
10176
|
}
|
|
9961
10177
|
}
|
|
10178
|
+
*/
|
|
9962
10179
|
|
|
9963
10180
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
9964
10181
|
{
|
|
@@ -9977,12 +10194,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
9977
10194
|
this.CurrentChartDrawPicture.Draw();
|
|
9978
10195
|
}
|
|
9979
10196
|
|
|
10197
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50);
|
|
10198
|
+
/*
|
|
9980
10199
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //画图工具绘制完成以后 动态扩展图形
|
|
9981
10200
|
{
|
|
9982
10201
|
var item=this.ExtendChartPaint[i];
|
|
9983
10202
|
if (item.DrawAfterPicture)
|
|
9984
10203
|
item.Draw();
|
|
9985
10204
|
}
|
|
10205
|
+
*/
|
|
9986
10206
|
|
|
9987
10207
|
this.OffscreenToShowCanvas();
|
|
9988
10208
|
|
|
@@ -10011,6 +10231,45 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10011
10231
|
++this.TouchDrawCount;
|
|
10012
10232
|
}
|
|
10013
10233
|
|
|
10234
|
+
this.DrawExtendChartPaint=function(level, option)
|
|
10235
|
+
{
|
|
10236
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.ExtendChartPaint)) return;
|
|
10237
|
+
|
|
10238
|
+
//扩展图形
|
|
10239
|
+
for(var i=0;i<this.ExtendChartPaint.length;++i)
|
|
10240
|
+
{
|
|
10241
|
+
var item=this.ExtendChartPaint[i];
|
|
10242
|
+
if (item.IsCallbackDraw) continue;
|
|
10243
|
+
|
|
10244
|
+
var value=item.GetPriority(); //绘图优先级
|
|
10245
|
+
if (value!=level) continue;
|
|
10246
|
+
|
|
10247
|
+
if (level==IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20)
|
|
10248
|
+
{
|
|
10249
|
+
item.Draw();
|
|
10250
|
+
if (item.DrawToolbar && option) item.DrawToolbar(option.MoveonPoint, option.LastMouseStatus);
|
|
10251
|
+
}
|
|
10252
|
+
else if (level==IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25 && option)
|
|
10253
|
+
{
|
|
10254
|
+
if (item.ClassName=='KLineTooltipPaint' && option)
|
|
10255
|
+
{
|
|
10256
|
+
if (option.Tooltip==false) continue;
|
|
10257
|
+
if (option.Point) item.LatestPoint=option.Point;
|
|
10258
|
+
}
|
|
10259
|
+
else if (item.ClassName=="MinuteTooltipPaint" && option)
|
|
10260
|
+
{
|
|
10261
|
+
if (option.Point) item.LatestPoint=option.Point;
|
|
10262
|
+
}
|
|
10263
|
+
|
|
10264
|
+
item.Draw(option.MoveonPoint, option.LastMouseStatus);
|
|
10265
|
+
}
|
|
10266
|
+
else
|
|
10267
|
+
{
|
|
10268
|
+
item.Draw();
|
|
10269
|
+
}
|
|
10270
|
+
}
|
|
10271
|
+
}
|
|
10272
|
+
|
|
10014
10273
|
this.PtInButton=function(x, y)
|
|
10015
10274
|
{
|
|
10016
10275
|
var button=this.Frame.PtInButtons(x,y);
|
|
@@ -10323,6 +10582,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10323
10582
|
|
|
10324
10583
|
var moveonPoint=null;
|
|
10325
10584
|
if (this.LastMouseStatus && this.LastMouseStatus.MoveOnPoint) moveonPoint=this.LastMouseStatus.MoveOnPoint;
|
|
10585
|
+
|
|
10586
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20, { MoveonPoint:moveonPoint, LastMouseStatus:this.LastMouseStatus } );
|
|
10587
|
+
|
|
10588
|
+
/*
|
|
10326
10589
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
10327
10590
|
{
|
|
10328
10591
|
var item=this.ExtendChartPaint[i];
|
|
@@ -10334,6 +10597,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10334
10597
|
if (item.DrawToolbar) item.DrawToolbar(moveonPoint, this.LastMouseStatus);
|
|
10335
10598
|
}
|
|
10336
10599
|
}
|
|
10600
|
+
*/
|
|
10337
10601
|
|
|
10338
10602
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
10339
10603
|
{
|
|
@@ -10432,6 +10696,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10432
10696
|
item.Draw(moveonPoint, this.LastMouseStatus);
|
|
10433
10697
|
}
|
|
10434
10698
|
|
|
10699
|
+
|
|
10700
|
+
var exChartOption={ MoveonPoint:moveonPoint, LastMouseStatus:this.LastMouseStatus };
|
|
10701
|
+
if (option)
|
|
10702
|
+
{
|
|
10703
|
+
exChartOption.Tooltip=option.Tooltip;
|
|
10704
|
+
exChartOption.Point=option.Point;
|
|
10705
|
+
}
|
|
10706
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25,exChartOption);
|
|
10707
|
+
/*
|
|
10435
10708
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形 在动态标题以后画
|
|
10436
10709
|
{
|
|
10437
10710
|
var item=this.ExtendChartPaint[i];
|
|
@@ -10449,7 +10722,10 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10449
10722
|
|
|
10450
10723
|
if (item.IsDynamic && item.DrawAfterTitle===true) item.Draw(moveonPoint, this.LastMouseStatus);
|
|
10451
10724
|
}
|
|
10725
|
+
*/
|
|
10452
10726
|
|
|
10727
|
+
if (this.EnableAnimation) this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_30);
|
|
10728
|
+
/*
|
|
10453
10729
|
if (this.EnableAnimation)
|
|
10454
10730
|
{
|
|
10455
10731
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动画
|
|
@@ -10458,6 +10734,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10458
10734
|
if (item.IsAnimation===true) item.Draw();
|
|
10459
10735
|
}
|
|
10460
10736
|
}
|
|
10737
|
+
*/
|
|
10461
10738
|
|
|
10462
10739
|
for(var i=0;i<this.ChartDrawPicture.length;++i)
|
|
10463
10740
|
{
|
|
@@ -10479,12 +10756,15 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10479
10756
|
this.CurrentChartDrawPicture.Draw();
|
|
10480
10757
|
}
|
|
10481
10758
|
|
|
10759
|
+
this.DrawExtendChartPaint(IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50);
|
|
10760
|
+
/*
|
|
10482
10761
|
for(var i=0;i<this.ExtendChartPaint.length;++i) //动态扩展图形
|
|
10483
10762
|
{
|
|
10484
10763
|
var item=this.ExtendChartPaint[i];
|
|
10485
10764
|
if (item.DrawAfterPicture)
|
|
10486
10765
|
item.Draw();
|
|
10487
10766
|
}
|
|
10767
|
+
*/
|
|
10488
10768
|
|
|
10489
10769
|
if (this.LastMouseStatus.MouseOnToolbar) //工具栏按钮提示信息
|
|
10490
10770
|
{
|
|
@@ -10961,7 +11241,12 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
10961
11241
|
}
|
|
10962
11242
|
|
|
10963
11243
|
var draw=false;
|
|
10964
|
-
if (this.
|
|
11244
|
+
if (keyID==27 && this.PopMinuteChart && this.PopMinuteChart.IsShow())
|
|
11245
|
+
{
|
|
11246
|
+
this.PopMinuteChart.Close();
|
|
11247
|
+
draw=true;
|
|
11248
|
+
}
|
|
11249
|
+
else if (this.ChartCorssCursor && this.ChartCorssCursor.OnKeyDown) //十字光标 隐藏显示
|
|
10965
11250
|
{
|
|
10966
11251
|
var sendData={ e:e, KeyID:keyID, Draw:false, PreventDefault:false };
|
|
10967
11252
|
this.ChartCorssCursor.OnKeyDown(sendData);
|
|
@@ -11125,6 +11410,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11125
11410
|
this.CurrentChartDrawPicture=null;
|
|
11126
11411
|
}
|
|
11127
11412
|
break;
|
|
11413
|
+
case 13: //回车
|
|
11414
|
+
if (this.OnCustomKeyDown) this.OnCustomKeyDown(keyID, e);
|
|
11415
|
+
break;
|
|
11128
11416
|
default:
|
|
11129
11417
|
return;
|
|
11130
11418
|
}
|
|
@@ -11138,7 +11426,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
11138
11426
|
|
|
11139
11427
|
this.OnDoubleClick=function(x,y,e)
|
|
11140
11428
|
{
|
|
11141
|
-
|
|
11429
|
+
|
|
11142
11430
|
}
|
|
11143
11431
|
|
|
11144
11432
|
this.ZoomIndexWindow=function(frameID, option) //最大化/最小化指标窗口
|
|
@@ -14494,6 +14782,9 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
|
|
|
14494
14782
|
case JSCHART_MENU_ID.CMD_CORSS_POINT_ID:
|
|
14495
14783
|
if (IFrameSplitOperator.IsBool(srcParam) && this.ChartCorssCursor) this.ChartCorssCursor.CorssPointConfig.Enable=srcParam;
|
|
14496
14784
|
break;
|
|
14785
|
+
case JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID:
|
|
14786
|
+
if (IFrameSplitOperator.IsBool(srcParam) && this.ChartCorssCursor) this.ChartCorssCursor.EnableDBClick=srcParam;
|
|
14787
|
+
break;
|
|
14497
14788
|
case JSCHART_MENU_ID.CMD_RBUTTON_SELECT_RECT_ID:
|
|
14498
14789
|
if (IFrameSplitOperator.IsBool(srcParam) && this.ChartDragSelectRect) this.ChartDragSelectRect.EnableRButton=srcParam;
|
|
14499
14790
|
break;
|
|
@@ -49176,12 +49467,34 @@ function IExtendChartPainting()
|
|
|
49176
49467
|
this.IsCallbackDraw=false; //在回调函数里绘制, 不在Draw()中绘制
|
|
49177
49468
|
this.ID=Guid();
|
|
49178
49469
|
|
|
49470
|
+
this.DrawPriority=null; //绘图优先级
|
|
49471
|
+
|
|
49179
49472
|
//上下左右间距
|
|
49180
49473
|
this.Left=5;
|
|
49181
49474
|
this.Right=5;
|
|
49182
49475
|
this.Top=5;
|
|
49183
49476
|
this.Bottom=5;
|
|
49184
49477
|
|
|
49478
|
+
|
|
49479
|
+
this.GetPriority=function()
|
|
49480
|
+
{
|
|
49481
|
+
if (IFrameSplitOperator.IsNumber(this.DrawPriority)) return this.DrawPriority; //新版本
|
|
49482
|
+
|
|
49483
|
+
//老版本转换
|
|
49484
|
+
|
|
49485
|
+
if (!this.IsDynamic && !this.DrawAfterPicture) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_10;
|
|
49486
|
+
|
|
49487
|
+
if (this.DrawAfterTitle===false && this.IsAnimation==false) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20;
|
|
49488
|
+
|
|
49489
|
+
if (this.DrawAfterTitle===true) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
49490
|
+
|
|
49491
|
+
if (this.IsAnimation===true) return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_35;
|
|
49492
|
+
|
|
49493
|
+
if (this.DrawAfterPicture===true) IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50;
|
|
49494
|
+
|
|
49495
|
+
return IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_50
|
|
49496
|
+
}
|
|
49497
|
+
|
|
49185
49498
|
this.Draw=function()
|
|
49186
49499
|
{
|
|
49187
49500
|
|
|
@@ -49218,6 +49531,23 @@ function IExtendChartPainting()
|
|
|
49218
49531
|
}
|
|
49219
49532
|
}
|
|
49220
49533
|
|
|
49534
|
+
//绘图优先级
|
|
49535
|
+
IExtendChartPainting.DRAW_PRIORITY_ID=
|
|
49536
|
+
{
|
|
49537
|
+
LEVEL_1:1,
|
|
49538
|
+
LEVEL_5:5, // 叠加指数图形前面 指标图形 IsDrawFirst=true
|
|
49539
|
+
LEVEL_8:8, // 叠加指数图形前面 指标图形 IsDrawFirst=false
|
|
49540
|
+
LEVEL_10:10, // IsDynamic=false
|
|
49541
|
+
|
|
49542
|
+
LEVEL_20:20, // IsDynamic=true
|
|
49543
|
+
|
|
49544
|
+
LEVEL_25:25, // DrawAfterTitle=true 标题栏绘制完成以后
|
|
49545
|
+
|
|
49546
|
+
LEVEL_35:35, // IsAnimation=true
|
|
49547
|
+
|
|
49548
|
+
LEVEL_50:50, // DrawAfterPicture=true; 是否在画图工具以后绘制
|
|
49549
|
+
}
|
|
49550
|
+
|
|
49221
49551
|
//K线Tooltip, 显示在左边或右边
|
|
49222
49552
|
function KLineTooltipPaint()
|
|
49223
49553
|
{
|
|
@@ -49237,6 +49567,7 @@ function KLineTooltipPaint()
|
|
|
49237
49567
|
this.AmountColor=g_JSChartResource.TooltipPaint.AmountColor; //成交金额
|
|
49238
49568
|
this.LatestPoint; //手势位置
|
|
49239
49569
|
this.ShowPosition=0; //显示位置 0=左 1=右
|
|
49570
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
49240
49571
|
|
|
49241
49572
|
this.Left=1*GetDevicePixelRatio();
|
|
49242
49573
|
this.Top=5*GetDevicePixelRatio();
|
|
@@ -49980,6 +50311,7 @@ function MinuteLeftTooltipPaint()
|
|
|
49980
50311
|
this.IsDynamic=true;
|
|
49981
50312
|
this.IsEraseBG=true;
|
|
49982
50313
|
this.DrawAfterTitle=true;
|
|
50314
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
49983
50315
|
this.ClassName='MinuteLeftTooltipPaint';
|
|
49984
50316
|
this.BorderColor=g_JSChartResource.PCTooltipPaint.BorderColor; //边框颜色
|
|
49985
50317
|
this.BGColor=g_JSChartResource.PCTooltipPaint.BGColor; //背景色
|
|
@@ -50390,6 +50722,7 @@ function StockChip()
|
|
|
50390
50722
|
this.PixelRatio=GetDevicePixelRatio();
|
|
50391
50723
|
this.ShowType=0; //0=所有筹码 1=周期前 2=周期内
|
|
50392
50724
|
this.IsDynamic=true;
|
|
50725
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_20;
|
|
50393
50726
|
this.ClientRect={};
|
|
50394
50727
|
this.Font=g_JSChartResource.StockChip.Font;
|
|
50395
50728
|
this.InfoColor=g_JSChartResource.StockChip.InfoColor;
|
|
@@ -54069,6 +54402,7 @@ function FrameButtomToolbarPaint()
|
|
|
54069
54402
|
this.FrameGuid=null;
|
|
54070
54403
|
this.IsDynamic=true;
|
|
54071
54404
|
this.DrawAfterTitle=true;
|
|
54405
|
+
this.DrawPriority=IExtendChartPainting.DRAW_PRIORITY_ID.LEVEL_25;
|
|
54072
54406
|
|
|
54073
54407
|
this.AryButton=[]; // { Title:, ID:, Data:数据, TooltipText:提示信息 }
|
|
54074
54408
|
this.SelectedID=null; // 选中按钮ID
|
|
@@ -58214,6 +58548,7 @@ function ChartCorssCursor()
|
|
|
58214
58548
|
this.CallAcutionXOperator;
|
|
58215
58549
|
|
|
58216
58550
|
this.EnableKeyboard=false; //是否支持键盘隐藏显示
|
|
58551
|
+
this.EnableDBClick=false; //是否允许双击显示|隐藏十字光标
|
|
58217
58552
|
this.OnChangeStatusCallback; //状态切换以后回调
|
|
58218
58553
|
|
|
58219
58554
|
|
|
@@ -59442,6 +59777,27 @@ function ChartCorssCursor()
|
|
|
59442
59777
|
}
|
|
59443
59778
|
}
|
|
59444
59779
|
|
|
59780
|
+
this.OnDBClick=function(data)
|
|
59781
|
+
{
|
|
59782
|
+
if (!this.EnableDBClick) return;
|
|
59783
|
+
if (!IFrameSplitOperator.IsNonEmptyArray(this.Frame.SubFrame)) return;
|
|
59784
|
+
|
|
59785
|
+
//在主图框架内
|
|
59786
|
+
var frame=this.Frame.SubFrame[0].Frame;
|
|
59787
|
+
if (!frame) return;
|
|
59788
|
+
|
|
59789
|
+
var border=frame.GetBorder();
|
|
59790
|
+
var rtClient={ Left:border.Left, Top:border.Top, Bottom:border.Bottom, Right:border.Right };
|
|
59791
|
+
var x=data.X, y=data.Y;
|
|
59792
|
+
if (x>=rtClient.Left && x<=rtClient.Right && y>=rtClient.Top && y<=rtClient.Bottom)
|
|
59793
|
+
{
|
|
59794
|
+
this.IsShowCorss=!this.IsShowCorss
|
|
59795
|
+
data.Draw=true;
|
|
59796
|
+
|
|
59797
|
+
if (this.OnChangeStatusCallback) this.OnChangeStatusCallback({ Type:1, IsShowCorss:this.IsShowCorss }, this);
|
|
59798
|
+
}
|
|
59799
|
+
}
|
|
59800
|
+
|
|
59445
59801
|
|
|
59446
59802
|
this.DrawCorssPoint=function(x,y)
|
|
59447
59803
|
{
|
|
@@ -80263,6 +80619,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
80263
80619
|
{ KeyID:87, SecondKeyID:3, CMD:JSCHART_MENU_ID.CMD_FULLSCREEN_SUMMARY_ID, Args:null, Description:"Alt+W 全屏区间统计" },
|
|
80264
80620
|
]
|
|
80265
80621
|
|
|
80622
|
+
this.KLineDragConfig={ EnableShfit:false }; //是否启动Shift+鼠标拖动K线
|
|
80623
|
+
|
|
80266
80624
|
this.GetKLineCalulate=function()
|
|
80267
80625
|
{
|
|
80268
80626
|
var kLineDrawType=this.GetKLineDrawType();
|
|
@@ -81335,6 +81693,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
81335
81693
|
this.MoveCorssCursorDown(this.ShiftUpDownStepPixel);
|
|
81336
81694
|
return true;
|
|
81337
81695
|
}
|
|
81696
|
+
else if (keyID==13) //回车显示分时图
|
|
81697
|
+
{
|
|
81698
|
+
this.OnEnterKeyDown();
|
|
81699
|
+
}
|
|
81338
81700
|
else
|
|
81339
81701
|
{
|
|
81340
81702
|
return false;
|
|
@@ -81474,6 +81836,30 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
81474
81836
|
this.ShowTooltipByKeyDown();
|
|
81475
81837
|
}
|
|
81476
81838
|
|
|
81839
|
+
this.OnEnterKeyDown=function()
|
|
81840
|
+
{
|
|
81841
|
+
if (!this.PopMinuteChart) return false;
|
|
81842
|
+
if (!ChartData.IsDayPeriod(this.Period,true)) return false; //只支持日K
|
|
81843
|
+
if (!this.ChartCorssCursor || !this.ChartCorssCursor.IsShowCorss || this.ChartCorssCursor.ClientPos<0) return false;
|
|
81844
|
+
var index=this.ChartCorssCursor.CursorIndex;
|
|
81845
|
+
index=parseInt(index.toFixed(0));
|
|
81846
|
+
var kData=this.GetKData();
|
|
81847
|
+
if (!kData || !IFrameSplitOperator.IsNonEmptyArray(kData.Data)) return false;
|
|
81848
|
+
var dataIndex=kData.DataOffset+index;
|
|
81849
|
+
if (dataIndex<0 || dataIndex>=kData.Data.length) return false;
|
|
81850
|
+
|
|
81851
|
+
var kItem = kData.Data[dataIndex];
|
|
81852
|
+
if (!kItem) return false;
|
|
81853
|
+
|
|
81854
|
+
var frame=this.Frame.SubFrame[0].Frame;
|
|
81855
|
+
var x=frame.GetXFromIndex(index);
|
|
81856
|
+
var y=frame.GetYFromData(kItem.Close);
|
|
81857
|
+
|
|
81858
|
+
var data={ Chart:this, Tooltip:{ ChartPaint:this.ChartPaint[0], Data:kItem } };
|
|
81859
|
+
|
|
81860
|
+
this.ShowMinuteChartDialog(data, x, y);
|
|
81861
|
+
}
|
|
81862
|
+
|
|
81477
81863
|
//获取K线图实例
|
|
81478
81864
|
this.GetKLineChart=function()
|
|
81479
81865
|
{
|
|
@@ -86231,12 +86617,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86231
86617
|
var bCorssDrawKLine=false;
|
|
86232
86618
|
var bCorssDrawVaildTime=false;
|
|
86233
86619
|
var bCorssDrawPoint=false;
|
|
86620
|
+
var bCorssBCClick=false;
|
|
86234
86621
|
if (this.ChartCorssCursor)
|
|
86235
86622
|
{
|
|
86236
86623
|
bShowCorss=this.ChartCorssCursor.IsShowCorss;
|
|
86237
86624
|
bCorssDrawKLine=this.ChartCorssCursor.IsOnlyDrawKLine && this.ChartCorssCursor.IsShowClose;
|
|
86238
86625
|
bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
|
|
86239
86626
|
bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
|
|
86627
|
+
bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
|
|
86240
86628
|
}
|
|
86241
86629
|
|
|
86242
86630
|
var bPopMinuteChart=false;
|
|
@@ -86422,6 +86810,7 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86422
86810
|
{ Name:"显示在K线上", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_KLINE_ID, Args:[!bCorssDrawKLine]}, Checked:bCorssDrawKLine },
|
|
86423
86811
|
{ Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
|
|
86424
86812
|
{ Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
|
|
86813
|
+
{ Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
|
|
86425
86814
|
]
|
|
86426
86815
|
},
|
|
86427
86816
|
{
|
|
@@ -86895,6 +87284,14 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86895
87284
|
|
|
86896
87285
|
this.OnDoubleClick=function(x,y,e)
|
|
86897
87286
|
{
|
|
87287
|
+
var bDraw=false;
|
|
87288
|
+
if (this.ChartCorssCursor)
|
|
87289
|
+
{
|
|
87290
|
+
var data={ e:e, X:x, Y:y, Draw:false };
|
|
87291
|
+
this.ChartCorssCursor.OnDBClick(data);
|
|
87292
|
+
bDraw=data.Draw
|
|
87293
|
+
}
|
|
87294
|
+
|
|
86898
87295
|
if (this.EnableYDrag && (this.EnableYDrag.Left || this.EnableYDrag.Right) && this.Frame && this.Frame.PtInFrameY)
|
|
86899
87296
|
{
|
|
86900
87297
|
var pixelTatio = GetDevicePixelRatio();
|
|
@@ -86931,6 +87328,8 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
|
|
|
86931
87328
|
}
|
|
86932
87329
|
}
|
|
86933
87330
|
|
|
87331
|
+
if (bDraw) this.Draw();
|
|
87332
|
+
|
|
86934
87333
|
var tooltip=new TooltipData();
|
|
86935
87334
|
if (!this.PtInChartPaintTooltip(x,y,tooltip))
|
|
86936
87335
|
{
|
|
@@ -90492,12 +90891,14 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90492
90891
|
var bCorssDrawCloseLine=false; //十字光标只能画在走势图价格线上
|
|
90493
90892
|
var bCorssDrawVaildTime=false;
|
|
90494
90893
|
var bCorssDrawPoint=false;
|
|
90894
|
+
var bCorssBCClick=false;
|
|
90495
90895
|
if (this.ChartCorssCursor)
|
|
90496
90896
|
{
|
|
90497
90897
|
bShowCorss=this.ChartCorssCursor.IsShowCorss;
|
|
90498
90898
|
bCorssDrawCloseLine=this.ChartCorssCursor.IsOnlyDrawMinute;
|
|
90499
90899
|
bCorssDrawVaildTime=this.ChartCorssCursor.IsFixXLastTime;
|
|
90500
90900
|
bCorssDrawPoint=this.ChartCorssCursor.CorssPointConfig.Enable;
|
|
90901
|
+
bCorssBCClick=this.ChartCorssCursor.EnableDBClick;
|
|
90501
90902
|
}
|
|
90502
90903
|
|
|
90503
90904
|
var bRButtonSelectRect=false,bLButtonSelectRect=false;
|
|
@@ -90594,6 +90995,7 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90594
90995
|
{ Name:"画在价格线上", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_CLOSE_LINE_ID, Args:[!bCorssDrawCloseLine]}, Checked:bCorssDrawCloseLine },
|
|
90595
90996
|
{ Name:"画在有效X轴上",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_ON_VAILD_TIME_ID, Args:[!bCorssDrawVaildTime]}, Checked:bCorssDrawVaildTime },
|
|
90596
90997
|
{ Name:"画圆点",Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_POINT_ID, Args:[!bCorssDrawPoint]}, Checked:bCorssDrawPoint },
|
|
90998
|
+
{ Name:"双击显示/隐藏", Data:{ ID:JSCHART_MENU_ID.CMD_CORSS_DBCLICK_ID, Args:[!bCorssBCClick]}, Checked:bCorssBCClick },
|
|
90597
90999
|
]
|
|
90598
91000
|
},
|
|
90599
91001
|
|
|
@@ -90734,6 +91136,14 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90734
91136
|
{
|
|
90735
91137
|
JSConsole.Chart.Log("[MinuteChartContainer::OnDoubleClick]", e);
|
|
90736
91138
|
|
|
91139
|
+
var bDraw=false;
|
|
91140
|
+
if (this.ChartCorssCursor)
|
|
91141
|
+
{
|
|
91142
|
+
var data={ e:e, X:x, Y:y, Draw:false };
|
|
91143
|
+
this.ChartCorssCursor.OnDBClick(data);
|
|
91144
|
+
bDraw=data.Draw
|
|
91145
|
+
}
|
|
91146
|
+
|
|
90737
91147
|
if (this.EnableYDrag && (this.EnableYDrag.Left || this.EnableYDrag.Right) && this.Frame && this.Frame.PtInFrameY)
|
|
90738
91148
|
{
|
|
90739
91149
|
var pixelTatio = GetDevicePixelRatio();
|
|
@@ -90771,10 +91181,12 @@ function MinuteChartContainer(uielement,offscreenElement,cacheElement)
|
|
|
90771
91181
|
if (this.ZoomIndexWindow(frameId, {X:x, Y:y}))
|
|
90772
91182
|
{
|
|
90773
91183
|
this.Frame.SetSizeChage(true);
|
|
90774
|
-
|
|
91184
|
+
bDraw=true;
|
|
90775
91185
|
}
|
|
90776
91186
|
}
|
|
90777
91187
|
}
|
|
91188
|
+
|
|
91189
|
+
if (bDraw) this.Draw();
|
|
90778
91190
|
}
|
|
90779
91191
|
|
|
90780
91192
|
this.GetDataItem=function(pointInfo)
|
|
@@ -104430,7 +104842,7 @@ function Node(ErrorHandler)
|
|
|
104430
104842
|
//CAPITAL流通股本(手), EXCHANGE 换手率, TOTALCAPITAL 总股本(手)
|
|
104431
104843
|
let setVariantName=new Set(
|
|
104432
104844
|
[
|
|
104433
|
-
"CAPITAL","TOTALCAPITAL","EXCHANGE",
|
|
104845
|
+
"CAPITAL","TOTALCAPITAL","EXCHANGE","HSL",
|
|
104434
104846
|
"HYBLOCK","DYBLOCK","GNBLOCK","FGBLOCK","ZSBLOCK","ZHBLOCK","ZDBLOCK","HYZSCODE",
|
|
104435
104847
|
"GNBLOCKNUM","FGBLOCKNUM","ZSBLOCKNUM","ZHBLOCKNUM","ZDBLOCKNUM",
|
|
104436
104848
|
"HYSYL","HYSJL","FROMOPEN",
|
|
@@ -117974,7 +118386,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
117974
118386
|
{
|
|
117975
118387
|
var dataType=0;
|
|
117976
118388
|
if (IFrameSplitOperator.IsNumber(recvData.DataType)) dataType=recvData.DataType;
|
|
117977
|
-
self.RecvStockValue(recvData.Data,jobItem,key,dataType);
|
|
118389
|
+
self.RecvStockValue(recvData.Data,jobItem,key,dataType,recvData);
|
|
117978
118390
|
}
|
|
117979
118391
|
|
|
117980
118392
|
self.Execute.RunNextJob();
|
|
@@ -117989,7 +118401,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
117989
118401
|
};
|
|
117990
118402
|
|
|
117991
118403
|
var apiDownload;
|
|
117992
|
-
if (jobItem.VariantName=="CAPITAL" || jobItem.VariantName=="TOTALCAPITAL" || jobItem.VariantName=="EXCHANGE")
|
|
118404
|
+
if (jobItem.VariantName=="CAPITAL" || jobItem.VariantName=="TOTALCAPITAL" || jobItem.VariantName=="EXCHANGE" || jobItem.VariantName=="HSL")
|
|
117993
118405
|
{
|
|
117994
118406
|
var callback=function(recvData, jobItem, key)
|
|
117995
118407
|
{
|
|
@@ -118184,7 +118596,7 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
118184
118596
|
}
|
|
118185
118597
|
}
|
|
118186
118598
|
|
|
118187
|
-
this.RecvStockValue=function(recvData,jobItem,key,dataType)
|
|
118599
|
+
this.RecvStockValue=function(recvData,jobItem,key,dataType, srcData)
|
|
118188
118600
|
{
|
|
118189
118601
|
if (!recvData)
|
|
118190
118602
|
{
|
|
@@ -118215,8 +118627,9 @@ function JSSymbolData(ast,option,jsExecute)
|
|
|
118215
118627
|
var bindData=new ChartData();
|
|
118216
118628
|
bindData.Data=aryFittingData;
|
|
118217
118629
|
var result=bindData.GetValue();
|
|
118630
|
+
var bVersion2=srcData && srcData.Ver==2; //2.0 版本
|
|
118218
118631
|
|
|
118219
|
-
if (key=="EXCHANGE") //计算换手率=成交量/流通股本*100
|
|
118632
|
+
if (!bVersion2 && (key=="EXCHANGE" || key=="HSL")) //计算换手率=成交量/流通股本*100
|
|
118220
118633
|
{
|
|
118221
118634
|
for(var i in result)
|
|
118222
118635
|
{
|
|
@@ -120236,7 +120649,7 @@ function JSExecute(ast,option)
|
|
|
120236
120649
|
|
|
120237
120650
|
['CAPITAL',null], //流通股本(手)
|
|
120238
120651
|
["TOTALCAPITAL",null], //TOTALCAPITAL 当前总股本 手
|
|
120239
|
-
['EXCHANGE',null], //换手率
|
|
120652
|
+
['EXCHANGE',null], ["HSL",null], //换手率
|
|
120240
120653
|
['SETCODE', null], //市场类型
|
|
120241
120654
|
['CODE',null], //品种代码
|
|
120242
120655
|
['STKNAME',null], //品种名称
|
|
@@ -120486,6 +120899,7 @@ function JSExecute(ast,option)
|
|
|
120486
120899
|
case "TOTALCAPITAL":
|
|
120487
120900
|
case 'CAPITAL':
|
|
120488
120901
|
case 'EXCHANGE':
|
|
120902
|
+
case "HSL":
|
|
120489
120903
|
|
|
120490
120904
|
case "HYBLOCK":
|
|
120491
120905
|
case "DYBLOCK":
|
|
@@ -122153,7 +122567,7 @@ function JSExplainer(ast,option)
|
|
|
122153
122567
|
['BARSTATUS',"数据位置状态"], //BARSTATUS返回数据位置信息,1表示第一根K线,2表示最后一个数据,0表示中间位置.
|
|
122154
122568
|
|
|
122155
122569
|
['CAPITAL',"当前流通股本(手)"], ["TOTALCAPITAL","当前总股本(手)"],
|
|
122156
|
-
['EXCHANGE',"换手率"],
|
|
122570
|
+
['EXCHANGE',"换手率"], ['HSL',"换手线"],
|
|
122157
122571
|
['SETCODE', "市场类型"], //市场类型
|
|
122158
122572
|
['CODE',"品种代码"], //品种代码
|
|
122159
122573
|
['STKNAME',"品种名称"], //品种名称
|
|
@@ -129411,6 +129825,7 @@ function DownloadFinanceData(obj)
|
|
|
129411
129825
|
case 1: //FINANCE(1) 总股本(随时间可能有变化) 股
|
|
129412
129826
|
case 7: //FINANCE(7) 流通股本(随时间可能有变化) 股
|
|
129413
129827
|
case "EXCHANGE": //换手率
|
|
129828
|
+
case "HSL"://换手率
|
|
129414
129829
|
this.DownloadHistoryData(id);
|
|
129415
129830
|
break;
|
|
129416
129831
|
case 3:
|
|
@@ -129537,6 +129952,7 @@ function DownloadFinanceData(obj)
|
|
|
129537
129952
|
return ["capital.total", "capital.date"];
|
|
129538
129953
|
case 7:
|
|
129539
129954
|
return ["capital.a", "capital.date"];
|
|
129955
|
+
case "HSL":
|
|
129540
129956
|
case "EXCHANGE":
|
|
129541
129957
|
return ["capital.a", "capital.date"];
|
|
129542
129958
|
|
|
@@ -129670,6 +130086,7 @@ function DownloadFinanceData(obj)
|
|
|
129670
130086
|
if (!item.capital) return null;
|
|
129671
130087
|
return { Date:date, Value:item.capital.total };
|
|
129672
130088
|
case 7:
|
|
130089
|
+
case "HSL": //换手率
|
|
129673
130090
|
case "EXCHANGE": //换手率 历史流通股本
|
|
129674
130091
|
if (!item.capital) return null;
|
|
129675
130092
|
return { Date:date, Value:item.capital.a };
|
|
@@ -145239,7 +145656,7 @@ function ScrollBarBGChart()
|
|
|
145239
145656
|
|
|
145240
145657
|
|
|
145241
145658
|
|
|
145242
|
-
var HQCHART_VERSION="1.1.
|
|
145659
|
+
var HQCHART_VERSION="1.1.14590";
|
|
145243
145660
|
|
|
145244
145661
|
function PrintHQChartVersion()
|
|
145245
145662
|
{
|