hqchart 1.1.14258 → 1.1.14269

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.
@@ -178,6 +178,10 @@ HQData.NetworkFilter=function(data, callback)
178
178
  HQData.Report_RequestVirtualStockData(data, callback); //股票数据 虚拟表格
179
179
  break;
180
180
 
181
+ case "APIScriptIndex::ExecuteScript": //测试指标
182
+ HQData.Report_APIIndex(data, callback);
183
+ break;
184
+
181
185
  }
182
186
  }
183
187
 
@@ -1835,3 +1839,266 @@ HQData.GetMulitDayMinuteDataByDate=function(aryDay, aryDate)
1835
1839
  }
1836
1840
 
1837
1841
 
1842
+ HQData.Report_APIIndex=function(data, callback)
1843
+ {
1844
+ var request=data.Request;
1845
+ if (request.Data.indexname=='API-MULTI_POINT')
1846
+ HQData.APIIndex_MULTI_POINT(data, callback);
1847
+ else if (request.Data.indexname=="API-DRAWTEXTREL")
1848
+ HQData.APIIndex_DRAWTEXTREL(data, callback);
1849
+ else if (request.Data.indexname=="API-DRAWCOLORKLINE")
1850
+ HQData.APIIndex_DRAWCOLORKLINE(data, callback);
1851
+ else if (request.Data.indexname=="API-DRAWBAND")
1852
+ HQData.APIIndex_DRAWBAND(data, callback);
1853
+ else if (request.Data.indexname=="API-MULTI_LINE")
1854
+ HQData.APIIndex_MULTI_LINE(data, callback);
1855
+ }
1856
+
1857
+
1858
+ HQData.APIIndex_MULTI_POINT=function(data, callback)
1859
+ {
1860
+ data.PreventDefault=true;
1861
+ var hqchart=data.HQChart;
1862
+ var kData=hqchart.GetKData();
1863
+
1864
+ var pointData=
1865
+ {
1866
+ name:'MULTI_POINT', type:1,
1867
+ Draw:
1868
+ {
1869
+ DrawType:'MULTI_POINT',
1870
+ DrawData:[],
1871
+ }
1872
+ };
1873
+
1874
+ var point=
1875
+ {
1876
+ Color:'rgb(211,211,211)',
1877
+ BGColor:"rgb(255,215,0)",
1878
+ PointRadius:10,
1879
+ LineWidth:2,
1880
+ Point:[ ]
1881
+ };
1882
+
1883
+ for(var i=kData.Data.length-1, j=0; i>=0 && j<6; i-=5, ++j)
1884
+ {
1885
+ var item=kData.Data[i];
1886
+ point.Point.push({Date:item.Date, Time:item.Time, Value:item.Low});
1887
+ }
1888
+
1889
+ pointData.Draw.DrawData.push(point);
1890
+
1891
+
1892
+ var point=
1893
+ {
1894
+ Color:'rgb(148,0,211)',
1895
+ BGColor:"rgb(30,144,255)",
1896
+ PointRadius:5,
1897
+ LineWidth:1,
1898
+ Point:[ ]
1899
+ };
1900
+
1901
+ for(var i=kData.Data.length-3, j=0; i>=0 && j<5; i-=6, ++j)
1902
+ {
1903
+ var item=kData.Data[i];
1904
+ point.Point.push({Date:item.Date, Time:item.Time, Value:(item.High+item.Low)/2});
1905
+ }
1906
+
1907
+ pointData.Draw.DrawData.push(point);
1908
+
1909
+ var apiData=
1910
+ {
1911
+ code:0, stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
1912
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar: [pointData] }
1913
+ };
1914
+
1915
+ console.log('[HQData.APIIndex_MULTI_POINT] apiData ', apiData);
1916
+ callback(apiData);
1917
+ }
1918
+
1919
+ HQData.APIIndex_DRAWTEXTREL=function(data, callback)
1920
+ {
1921
+ data.PreventDefault=true;
1922
+ var hqchart=data.HQChart;
1923
+ var kData=hqchart.GetKData();
1924
+
1925
+ var closeLine={ name:'价', type:0, data:kData.GetClose(), color:"rgb(255, 52, 179)" };
1926
+
1927
+ var divText=
1928
+ {
1929
+ name:'DRAWTEXTREL', type:1,
1930
+ Draw:
1931
+ {
1932
+ DrawType:'DRAWTEXTREL',
1933
+ DrawData:
1934
+ {
1935
+ Point: {X: 500, Y: 500 },
1936
+ Text: "!!!!前方高能!!!!"
1937
+ },
1938
+
1939
+ Font:"20px 微软雅黑"
1940
+ },
1941
+ color:"rgb(255,0,0)",
1942
+
1943
+ DrawVAlign:1,
1944
+ DrawAlign:1,
1945
+ }
1946
+
1947
+ var divText2=
1948
+ {
1949
+ name:'DRAWTEXTABS', type:1,
1950
+ Draw:
1951
+ {
1952
+ DrawType:'DRAWTEXTABS',
1953
+ DrawData:
1954
+ {
1955
+ Point: {X: 5, Y: 5 },
1956
+ Text: "后台指标示例"
1957
+ },
1958
+
1959
+ Font:"24px 微软雅黑"
1960
+ },
1961
+ color:"rgb(255,200,0)",
1962
+
1963
+ DrawVAlign:2,
1964
+ }
1965
+
1966
+ var apiData=
1967
+ {
1968
+ code:0,
1969
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
1970
+ outdata: { date:kData.GetDate() ,time:kData.GetTime(), outvar:[closeLine,divText, divText2] }
1971
+ };
1972
+
1973
+ console.log('[HQData::APIIndex_DRAWTEXTREL] apiData ', apiData);
1974
+ callback(apiData);
1975
+ }
1976
+
1977
+
1978
+ HQData.APIIndex_DRAWCOLORKLINE=function(data, callback)
1979
+ {
1980
+ data.PreventDefault=true;
1981
+ var hqchart=data.HQChart;
1982
+ var kData=hqchart.GetKData();
1983
+
1984
+ var aryTestKData=[];
1985
+ var aryTestkData2=[];
1986
+ for(var i=0;i<kData.Data.length;++i)
1987
+ {
1988
+ var item=kData.Data[i];
1989
+ if (i%5==3) aryTestKData[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
1990
+ else aryTestKData[i]=null;
1991
+
1992
+ if (i%13==5) aryTestkData2[i]={ Open:item.Open, High:item.High, Low:item.Low, Close:item.Close };
1993
+ else aryTestkData2[i]=null;
1994
+ }
1995
+
1996
+ var varKLine={ type:1, name:"条件K线", Draw:{ DrawData:aryTestKData, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(100,0,100)"} };
1997
+ var varKLine2={ type:1, name:"条件K线2", Draw:{ DrawData:aryTestkData2, DrawType:'DRAWCOLORKLINE', IsEmptyBar:false, Color:"rgb(255, 140, 0)"} };
1998
+
1999
+ var hqchartData=
2000
+ {
2001
+ outdata:
2002
+ {
2003
+ date:kData.GetDate(), time:kData.GetTime(),
2004
+ outvar:[ varKLine, varKLine2]
2005
+ } ,
2006
+ code:0
2007
+ };
2008
+
2009
+ console.log("[HQData.APIIndex_DRAWCOLORKLINE] DRAWCOLORKLINE=",hqchartData);
2010
+
2011
+ callback(hqchartData);
2012
+ }
2013
+
2014
+
2015
+ HQData.APIIndex_DRAWBAND=function(data, callback)
2016
+ {
2017
+ data.PreventDefault=true;
2018
+ var hqchart=data.HQChart;
2019
+ var kData=hqchart.GetKData();
2020
+
2021
+
2022
+ var bandData=
2023
+ {
2024
+ name:"DRAWBAND", type:1,
2025
+ Draw:
2026
+ {
2027
+ Name:"DRAWBAND",
2028
+ DrawType:"DRAWBAND",
2029
+ DrawData:[],
2030
+ Color:["rgb(220,20,60)","rgb(34,139,34)"]
2031
+ }
2032
+ };
2033
+
2034
+ for(var i=0;i<kData.Data.length;++i)
2035
+ {
2036
+ var kItem=kData.Data[i];
2037
+ bandData.Draw.DrawData[i]={ Value:kItem.Close, Value2:kItem.Open };
2038
+ }
2039
+
2040
+ //var closeLine={ Name:'收', Type:0, Data:aryClose };
2041
+ //var openLine={ Name:'开', Type:0, Data:aryOpen};
2042
+
2043
+ var hqchartData=
2044
+ {
2045
+ outdata:{ date:kData.GetDate(), time:kData.GetTime(), outvar:[ bandData, ] } ,
2046
+ code:0
2047
+ };
2048
+
2049
+ callback(hqchartData);
2050
+ }
2051
+
2052
+
2053
+ HQData.APIIndex_MULTI_LINE=function(data, callback)
2054
+ {
2055
+ data.PreventDefault=true;
2056
+ var hqchart=data.HQChart;
2057
+ var kData=hqchart.GetKData();
2058
+
2059
+ var line3=
2060
+ {
2061
+ name:'MULTI_LINE', type:1,
2062
+
2063
+ Draw:
2064
+ {
2065
+ DrawType:'MULTI_LINE', DrawData:[],
2066
+ LineWidth:5,
2067
+ Arrow:
2068
+ {
2069
+ Start:true, //是否绘制开始箭头 <-
2070
+ End:true, //是否绘制结束箭头 ->
2071
+ Angle:30, //三角斜边一直线夹角
2072
+ Length:10, //三角斜边长度
2073
+ LineWidth:4, //箭头粗细
2074
+ }
2075
+ }, //绘制线段数组
2076
+
2077
+ IsShowTitle:false
2078
+ };
2079
+
2080
+ var point3=
2081
+ {
2082
+ Color:'rgb(255,0,255)',
2083
+ Point:[]
2084
+ }
2085
+
2086
+ for(var i=kData.Data.length-10;i<kData.Data.length;++i)
2087
+ {
2088
+ var item=kData.Data[i];
2089
+ point3.Point.push({Date:item.Date, Time:item.Time, Value:item.High});
2090
+ }
2091
+ line3.Draw.DrawData.push(point3);
2092
+
2093
+ var apiData=
2094
+ {
2095
+ code:0,
2096
+ stock:{ name:hqchart.Name, symbol:hqchart.Symbol },
2097
+ outdata: { date:kData.GetDate(), time:kData.GetTime(), outvar:[line3] }
2098
+ };
2099
+
2100
+ console.log('[HQData.APIIndex_MULTI_LINE] apiData ', apiData);
2101
+ callback(apiData);
2102
+ }
2103
+
2104
+
@@ -6683,6 +6683,8 @@ var JSCHART_BUTTON_ID=
6683
6683
  INDEX_NAME_BUTTON:43,
6684
6684
 
6685
6685
  ADD_INDEX_WINDOW:44, //增加指标窗口
6686
+
6687
+ CHIP_CLOSE:45, //关闭筹码图
6686
6688
  }
6687
6689
 
6688
6690
  var JSCHART_DATA_FIELD_ID=
@@ -8767,6 +8769,34 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8767
8769
 
8768
8770
  }
8769
8771
 
8772
+ this.TryPhoneClickButton=function(x,y,e)
8773
+ {
8774
+ if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域 , 指标标题点击
8775
+ {
8776
+ if (this.TryClickLock && this.TryClickLock(x, y)) return true;
8777
+ if (this.TryClickIndexTitle && this.TryClickIndexTitle(x,y)) return true;
8778
+ }
8779
+
8780
+ if (this.ClickFrameButton)
8781
+ {
8782
+ var button=this.Frame.PtInButtons(x,y);
8783
+ if (button)
8784
+ {
8785
+ this.ClickFrameButton(button, e);
8786
+ return true;
8787
+ }
8788
+ }
8789
+
8790
+ button=this.PtInExtendChartButtons(x,y);
8791
+ if (button && this.ClickExtendChartButton)
8792
+ {
8793
+ this.ClickExtendChartButton(button, e);
8794
+ return true;
8795
+ }
8796
+
8797
+ return false;
8798
+ }
8799
+
8770
8800
  this.OnTouchStart=function(e)
8771
8801
  {
8772
8802
  if (this.ChartSplashPaint && this.ChartSplashPaint.IsEnableSplash == true) return;
@@ -8789,23 +8819,7 @@ function JSChartContainer(uielement, OffscreenElement, cacheElement)
8789
8819
  var touches = this.GetToucheData(e, this.IsForceLandscape);
8790
8820
  var pt=this.PointAbsoluteToRelative(touches[0].clientX, touches[0].clientY, true);
8791
8821
 
8792
- if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域 , 指标标题点击
8793
- {
8794
- var x = pt.X;
8795
- var y = pt.Y;
8796
- if (this.TryClickLock && this.TryClickLock(x, y)) return;
8797
- if (this.TryClickIndexTitle && this.TryClickIndexTitle(x,y)) return;
8798
- }
8799
-
8800
- if (this.ClickFrameButton)
8801
- {
8802
- var button=this.Frame.PtInButtons(pt.X,pt.Y);
8803
- if (button)
8804
- {
8805
- this.ClickFrameButton(button, e);
8806
- return;
8807
- }
8808
- }
8822
+ if (this.TryPhoneClickButton(pt.X, pt.Y, e)) return;
8809
8823
 
8810
8824
  if (this.EnableVerticalDrag )
8811
8825
  {
@@ -48686,8 +48700,12 @@ function StockChipPhone()
48686
48700
  //手机端没有按钮
48687
48701
  this.DrawToolbar=function(moveonPoint, mouseStatus) { }
48688
48702
 
48703
+ this.CloseButtonConfig=CloneData(g_JSChartResource.StockChip.PhoneCloseButton);
48704
+
48705
+
48689
48706
  this.Draw=function()
48690
48707
  {
48708
+ this.Buttons=[];
48691
48709
  this.IsHScreen=this.ChartFrame.IsHScreen==true;
48692
48710
  this.PixelRatio=GetDevicePixelRatio();
48693
48711
  if (this.IsHScreen)
@@ -48730,6 +48748,7 @@ function StockChipPhone()
48730
48748
  }
48731
48749
 
48732
48750
  this.DrawBorder();
48751
+ this.DrawCloseButton();
48733
48752
  this.SizeChange=false;
48734
48753
  }
48735
48754
 
@@ -49092,6 +49111,73 @@ function StockChipPhone()
49092
49111
 
49093
49112
  this.Canvas.fill();
49094
49113
  }
49114
+
49115
+ //关闭按钮
49116
+ this.DrawCloseButton=function()
49117
+ {
49118
+ var config=this.CloseButtonConfig;
49119
+ var font=`${config.Size}px ${config.Family}`;
49120
+ var rtButton=null;
49121
+ if (this.IsHScreen)
49122
+ {
49123
+ var border=this.ChartBorder.GetHScreenBorder();
49124
+ var right=border.Left-2;
49125
+ var bottom=border.ChartHeight-2;
49126
+ var left=right-config.Size;
49127
+ var top=bottom-config.Size;
49128
+
49129
+ var rtButton={ Left:left, Top:top, Bottom:bottom, Right:right };
49130
+ rtButton.Width=rtButton.Right-rtButton.Left;
49131
+ rtButton.Height=rtButton.Bottom-rtButton.Top;
49132
+ }
49133
+ else
49134
+ {
49135
+ var border=this.ChartBorder.GetBorder();
49136
+ var top=border.Bottom+2;
49137
+ var bottom=top+config.Size;
49138
+ var right=border.ChartWidth-2;
49139
+ var left=right-config.Size;
49140
+
49141
+ var rtButton={ Left:left, Top:top, Bottom:bottom, Right:right };
49142
+ rtButton.Width=rtButton.Right-rtButton.Left;
49143
+ rtButton.Height=rtButton.Bottom-rtButton.Top;
49144
+ }
49145
+
49146
+ if (!rtButton) return;
49147
+
49148
+ if (config.Border)
49149
+ {
49150
+ if (config.Border.BGColor)
49151
+ {
49152
+ this.Canvas.fillStyle=config.Border.BGColor;
49153
+ this.Canvas.fillRect(rtButton.Left,rtButton.Top,rtButton.Width,rtButton.Height);
49154
+ }
49155
+ }
49156
+
49157
+ this.Canvas.fillStyle=config.Color;
49158
+ this.Canvas.font=font;
49159
+ this.Canvas.textAlign="left";
49160
+ this.Canvas.textBaseline="bottom";
49161
+ if (this.IsHScreen)
49162
+ {
49163
+ var radius=config.Size/2;
49164
+ var x=rtButton.Left+radius, y=rtButton.Bottom-radius;
49165
+ this.Canvas.save();
49166
+ this.Canvas.translate(x,y);
49167
+ this.Canvas.rotate(90 * Math.PI / 180);
49168
+ this.Canvas.fillText(config.Text,-radius,radius);
49169
+ this.Canvas.restore();
49170
+
49171
+ }
49172
+ else
49173
+ {
49174
+ this.Canvas.fillText(config.Text, rtButton.Left, rtButton.Bottom);
49175
+ }
49176
+
49177
+ var btnItem={ ID:JSCHART_BUTTON_ID.CHIP_CLOSE, Rect:rtButton };
49178
+ this.Buttons.push(btnItem);
49179
+
49180
+ }
49095
49181
  }
49096
49182
 
49097
49183
  //窗口分割
@@ -52773,6 +52859,10 @@ IFrameSplitOperator.FormatDateString=function(value,format, languageID)
52773
52859
  {
52774
52860
  case 'MM-DD':
52775
52861
  return IFrameSplitOperator.NumberToString(month) + '-' + IFrameSplitOperator.NumberToString(day);
52862
+ case "MM-DD/W":
52863
+ var date=new Date(year,month-1,day);
52864
+ var week=g_JSChartLocalization.GetText(WEEK_NAME[date.getDay()],languageID);
52865
+ return `${IFrameSplitOperator.NumberToString(month)}-${IFrameSplitOperator.NumberToString(day)}/${week}`;
52776
52866
  case "MM/DD":
52777
52867
  return `${IFrameSplitOperator.NumberToString(month)}/${IFrameSplitOperator.NumberToString(day)}`;
52778
52868
  case "MM/DD/W":
@@ -74326,6 +74416,16 @@ function JSChartResource()
74326
74416
  Size:13*GetDevicePixelRatio(),
74327
74417
  MerginLeft:4
74328
74418
  },
74419
+
74420
+ //手机端
74421
+ PhoneCloseButton:
74422
+ {
74423
+ Family:"iconfont",
74424
+ Size:16*GetDevicePixelRatio(),
74425
+ Text:"\ue60c",
74426
+ Color:"rgb(255,255,255)",
74427
+ Border:{ BGColor:"rgb(169,169,169)" }
74428
+ }
74329
74429
  }
74330
74430
 
74331
74431
  //深度图
@@ -75244,6 +75344,20 @@ function JSChartResource()
75244
75344
  if (item.DefaultButton) T_SetButtonStyle(item.DefaultButton, this.StockChip.DefaultButton);
75245
75345
  if (item.LongButton) T_SetButtonStyle(item.LongButton, this.StockChip.LongButton);
75246
75346
  if (item.RecentButton) T_SetButtonStyle(item.RecentButton, this.StockChip.RecentButton);
75347
+ if (item.CloseButton) T_SetButtonStyle(item.CloseButton, this.StockChip.CloseButton);
75348
+
75349
+ if (item.PhoneCloseButton)
75350
+ {
75351
+ var subItem=item.PhoneCloseButton;
75352
+ if (subItem.Family) this.StockChip.PhoneCloseButton.Family=subItem.Family;
75353
+ if (subItem.Text) this.StockChip.PhoneCloseButton.Text=subItem.Text;
75354
+ if (subItem.Color) this.StockChip.PhoneCloseButton.Color=subItem.Color;
75355
+ if (IFrameSplitOperator.IsNumber(subItem.Size)) this.StockChip.PhoneCloseButton.Size=subItem.Size;
75356
+ if (subItem.Border)
75357
+ {
75358
+ if (subItem.Border.BGColor) this.StockChip.PhoneCloseButton.Border.BGColor=subItem.Border.BGColor;
75359
+ }
75360
+ }
75247
75361
  }
75248
75362
 
75249
75363
  if (style.DepthChart)
@@ -84490,6 +84604,10 @@ function KLineChartContainer(uielement,OffscreenElement, cacheElement)
84490
84604
  button.Chart.ShowType=2;
84491
84605
  this.Draw();
84492
84606
  }
84607
+ else if (button.ID==JSCHART_BUTTON_ID.CHIP_CLOSE)
84608
+ {
84609
+ if (this.DeleteStockChipChart) this.DeleteStockChipChart();
84610
+ }
84493
84611
  }
84494
84612
 
84495
84613
  //成交量分布图数据请求
@@ -92090,6 +92208,9 @@ function KLineChartHScreenContainer(uielement)
92090
92208
  var touches = this.GetToucheData(e, false);
92091
92209
  var pt=this.PointAbsoluteToRelative(touches[0].clientX, touches[0].clientY, true);
92092
92210
 
92211
+ if (this.TryPhoneClickButton(pt.X,pt.Y,e)) return;
92212
+
92213
+ /*
92093
92214
  if (this.TryClickLock || this.TryClickIndexTitle) //指标枷锁区域, 指标标题点击
92094
92215
  {
92095
92216
  var x = pt.X;
@@ -92107,6 +92228,7 @@ function KLineChartHScreenContainer(uielement)
92107
92228
  return;
92108
92229
  }
92109
92230
  }
92231
+ */
92110
92232
 
92111
92233
  if (this.EnableVerticalDrag )
92112
92234
  {
@@ -126000,7 +126122,17 @@ function GetBlackStyle()
126000
126122
  StockChip:
126001
126123
  {
126002
126124
  InfoColor:'rgb(255,255,255)', //文字颜色
126003
- DayInfoColor:'rgb(0,0,0)' //周期颜色内文字颜色
126125
+ DayInfoColor:'rgb(0,0,0)', //周期颜色内文字颜色
126126
+
126127
+ //手机端
126128
+ PhoneCloseButton:
126129
+ {
126130
+ Family:"iconfont",
126131
+ Size:16*GetDevicePixelRatio(),
126132
+ Text:"\ue60c",
126133
+ Color:"rgb(255,255,255)",
126134
+ Border:{ BGColor:"rgb(40,42,44)" }
126135
+ }
126004
126136
  },
126005
126137
 
126006
126138
  //深度图
@@ -140409,7 +140541,7 @@ function ScrollBarBGChart()
140409
140541
 
140410
140542
 
140411
140543
 
140412
- var HQCHART_VERSION="1.1.14257";
140544
+ var HQCHART_VERSION="1.1.14268";
140413
140545
 
140414
140546
  function PrintHQChartVersion()
140415
140547
  {
@@ -5,7 +5,7 @@
5
5
 
6
6
 
7
7
 
8
- var HQCHART_VERSION="1.1.14257";
8
+ var HQCHART_VERSION="1.1.14268";
9
9
 
10
10
  function PrintHQChartVersion()
11
11
  {