hqchart 1.1.10813 → 1.1.10826

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.
@@ -6664,13 +6664,14 @@ CBOT:".CBOT",//芝商所
6664
6664
  LME:".LME",//伦敦金属交易所
6665
6665
  TOCOM:".TOCOM",//东京商品交易所(TOCOM)
6666
6666
  IPE:".IPE",//美国洲际交易所 (ICE EUROPE)
6667
- TW:".TW",//台湾股票 //上午9:00——下午1:30
6667
+ TW:".TW",//台湾股票 9:00-13:30
6668
+ JP:".JP",//日本股票 9:00-11:30, 12:30-15:00
6668
6669
  ET:'.ET',//其他未知的品种
6669
6670
  IsET:function IsET(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.ET)>0;},IsETShowAvPrice:function IsETShowAvPrice(upperSymbol)//是否显示均价
6670
6671
  {return false;},IsNYMEX:function IsNYMEX(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.NYMEX)>0;},IsCOMEX:function IsCOMEX(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.COMEX)>0;},IsNYBOT:function IsNYBOT(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.NYBOT)>0;},IsCBOT:function IsCBOT(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.CBOT)>0;},IsLME:function IsLME(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.LME)>0;},IsTOCOM:function IsTOCOM(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.TOCOM)>0;},IsIPE:function IsIPE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.IPE)>0;},IsForeignExchange:function IsForeignExchange(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.FOREX)>0;},IsFTSE:function IsFTSE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.FTSE)>0;},IsFHK:function IsFHK(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.FHK)>0;},IsBIT:function IsBIT(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.BIT)>0)return true;if(upperSymbol.indexOf(this.BIZ)>0)return true;return false;},IsUSA:function IsUSA(upperSymbol)//是否是美股
6671
6672
  {if(!upperSymbol)return false;return upperSymbol.indexOf(this.USA)>0;},IsSH:function IsSH(upperSymbol){//需要精确匹配最后3位
6672
6673
  var pos=upperSymbol.length-this.SH.length;var find=upperSymbol.indexOf(this.SH);return find==pos;},IsSZ:function IsSZ(upperSymbol){var pos=upperSymbol.length-this.SZ.length;var find=upperSymbol.indexOf(this.SZ);return find==pos;},IsBJ:function IsBJ(upperSymbol){var pos=upperSymbol.length-this.BJ.length;var find=upperSymbol.indexOf(this.BJ);return find==pos;},//自定义指数
6673
- IsSHSZCustomIndex:function IsSHSZCustomIndex(upperSymbol){var pos=upperSymbol.length-this.SHSZ_C_Index.length;var find=upperSymbol.indexOf(this.SHSZ_C_Index);return find==pos;},IsSHO:function IsSHO(upperSymbol){var pos=upperSymbol.length-this.SHO.length;var find=upperSymbol.indexOf(this.SHO);return find==pos;},IsSZO:function IsSZO(upperSymbol){var pos=upperSymbol.length-this.SZO.length;var find=upperSymbol.indexOf(this.SZO);return find==pos;},IsHK:function IsHK(upperSymbol){var pos=upperSymbol.length-this.HK.length;var find=upperSymbol.indexOf(this.HK);return find==pos;},IsTW:function IsTW(upperSymbol){var pos=upperSymbol.length-this.TW.length;var find=upperSymbol.indexOf(this.TW);return find==pos;},IsSHFE:function IsSHFE(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.SHFE)>0)return true;if(upperSymbol.indexOf(this.SHFE2)>0)return true;return false;},IsCFFEX:function IsCFFEX(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.CFFEX)>0)return true;return false;},IsDCE:function IsDCE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.DCE)>0;},IsCZCE:function IsCZCE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.CZCE)>0;},IsChinaFutures:function IsChinaFutures(upperSymbol)//是否是国内期货 /期权
6674
+ IsSHSZCustomIndex:function IsSHSZCustomIndex(upperSymbol){var pos=upperSymbol.length-this.SHSZ_C_Index.length;var find=upperSymbol.indexOf(this.SHSZ_C_Index);return find==pos;},IsSHO:function IsSHO(upperSymbol){var pos=upperSymbol.length-this.SHO.length;var find=upperSymbol.indexOf(this.SHO);return find==pos;},IsSZO:function IsSZO(upperSymbol){var pos=upperSymbol.length-this.SZO.length;var find=upperSymbol.indexOf(this.SZO);return find==pos;},IsHK:function IsHK(upperSymbol){var pos=upperSymbol.length-this.HK.length;var find=upperSymbol.indexOf(this.HK);return find==pos;},IsTW:function IsTW(upperSymbol){var pos=upperSymbol.length-this.TW.length;var find=upperSymbol.indexOf(this.TW);return find==pos;},IsJP:function IsJP(upperSymbol){var pos=upperSymbol.length-this.JP.length;var find=upperSymbol.indexOf(this.JP);return find==pos;},IsSHFE:function IsSHFE(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.SHFE)>0)return true;if(upperSymbol.indexOf(this.SHFE2)>0)return true;return false;},IsCFFEX:function IsCFFEX(upperSymbol){if(!upperSymbol)return false;if(upperSymbol.indexOf(this.CFFEX)>0)return true;return false;},IsDCE:function IsDCE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.DCE)>0;},IsCZCE:function IsCZCE(upperSymbol){if(!upperSymbol)return false;return upperSymbol.indexOf(this.CZCE)>0;},IsChinaFutures:function IsChinaFutures(upperSymbol)//是否是国内期货 /期权
6674
6675
  {return this.IsSHO(upperSymbol)||this.IsSZO(upperSymbol)||this.IsCFFEX(upperSymbol)||this.IsCZCE(upperSymbol)||this.IsDCE(upperSymbol)||this.IsSHFE(upperSymbol);},IsFutures:function IsFutures(upperSymbol)//是否是期货 包含国外的
6675
6676
  {return this.IsChinaFutures(upperSymbol)||this.IsNYMEX(upperSymbol)||this.IsCOMEX(upperSymbol)||this.IsNYBOT(upperSymbol)||this.IsCBOT(upperSymbol)||this.IsLME(upperSymbol)||this.IsTOCOM(upperSymbol);},IsSHSZ:function IsSHSZ(upperSymbol)//是否是沪深的股票
6676
6677
  {return this.IsSZ(upperSymbol)||this.IsSH(upperSymbol)||this.IsSHSZCustomIndex(upperSymbol);},IsSHSZFund:function IsSHSZFund(upperSymbol)//是否是交易所基金
@@ -6696,7 +6697,9 @@ if(time>=900&&time<=2359)return 2;if(time>=0&&time<=320)return 2;return 0;}else
6696
6697
  {if(day==6||day==0)return 0;//周末
6697
6698
  if(time>1630)return 3;if(time<925)return 1;return 2;}else if(this.IsTW(upperSymbol))//台湾股票 上午9:00——下午1:30
6698
6699
  {if(day==6||day==0)return 0;//周末
6699
- if(time>1410)return 3;if(time<820)return 1;return 2;}else if(this.IsNYMEX(upperSymbol)){return this.GetNYMEXMarketStatus(upperSymbol);}else if(this.IsCOMEX(upperSymbol)){return this.GetCOMEXMarketStatus(upperSymbol);}else if(this.IsNYBOT(upperSymbol)){return this.GetNYBOTMarketStatus(upperSymbol);}else if(this.IsCBOT(upperSymbol)){return this.GetCBOTMarketStatus(upperSymbol);}else if(this.IsLME(upperSymbol)){return this.GetLMEMarketStatus(upperSymbol);}else if(this.IsTOCOM(upperSymbol)){return this.GetTOCOMMarketStatus(upperSymbol);}else if(this.IsChinaFutures(upperSymbol))//国内期货
6700
+ if(time>1410)return 3;if(time<820)return 1;return 2;}else if(this.IsJP(upperSymbol))//日本股票 9:00-11:30 12:30-15:00
6701
+ {if(day==6||day==0)return 0;//周末
6702
+ if(time>1520)return 3;if(time<830)return 1;return 2;}else if(this.IsNYMEX(upperSymbol)){return this.GetNYMEXMarketStatus(upperSymbol);}else if(this.IsCOMEX(upperSymbol)){return this.GetCOMEXMarketStatus(upperSymbol);}else if(this.IsNYBOT(upperSymbol)){return this.GetNYBOTMarketStatus(upperSymbol);}else if(this.IsCBOT(upperSymbol)){return this.GetCBOTMarketStatus(upperSymbol);}else if(this.IsLME(upperSymbol)){return this.GetLMEMarketStatus(upperSymbol);}else if(this.IsTOCOM(upperSymbol)){return this.GetTOCOMMarketStatus(upperSymbol);}else if(this.IsChinaFutures(upperSymbol))//国内期货
6700
6703
  {if(day==6||day==0)return 0;//周末
6701
6704
  //21:00-2:30
6702
6705
  if(time>=2100)return 2;if(time<=240)return 2;//8:55-11:30, 13:00-15:00
@@ -6709,7 +6712,7 @@ return{Max:0.1,Min:-0.1};//[10% - -10%]
6709
6712
  },GetDefaultDecimal:function GetDefaultDecimal(symbol)//默认小数位数
6710
6713
  {return 2;},GetFHKDecimal:function GetFHKDecimal(symbol)//港股指数期货 小数位数
6711
6714
  {return 0;},GetFTSEDecimal:function GetFTSEDecimal(symbol)//富时中国A50期货 小数位数
6712
- {return 0;},GetBITDecimal:function GetBITDecimal(symbol){return 2;},GetSHODecimal:function GetSHODecimal(symbol){return 4;},GetETDecimal:function GetETDecimal(symbol){return 2;},GetHKDecimal:function GetHKDecimal(symbol){return 2;},GetTWDecimal:function GetTWDecimal(symbol){return 2;},GetForeignExchangeDecimal:function GetForeignExchangeDecimal(symbol){return 4;},GetNYMEXDecimal:function GetNYMEXDecimal(symbol)//纽约期货交易所
6715
+ {return 0;},GetBITDecimal:function GetBITDecimal(symbol){return 2;},GetSHODecimal:function GetSHODecimal(symbol){return 4;},GetETDecimal:function GetETDecimal(symbol){return 2;},GetHKDecimal:function GetHKDecimal(symbol){return 2;},GetTWDecimal:function GetTWDecimal(symbol){return 2;},GetJPDecimal:function GetJPDecimal(symbol){return 2;},GetForeignExchangeDecimal:function GetForeignExchangeDecimal(symbol){return 4;},GetNYMEXDecimal:function GetNYMEXDecimal(symbol)//纽约期货交易所
6713
6716
  {return g_NYMEXTimeData.GetDecimal(symbol);},GetCOMEXDecimal:function GetCOMEXDecimal(symbol){return g_COMEXTimeData.GetDecimal(symbol);},GetNYBOTDecimal:function GetNYBOTDecimal(symbol){return g_NYBOTTimeData.GetDecimal(symbol);},GetCBOTDecimal:function GetCBOTDecimal(symbol){return g_CBOTTimeData.GetDecimal(symbol);},GetLMEDecimal:function GetLMEDecimal(symbol){return g_LMETimeData.GetDecimal(symbol);},GetTOCOMDecimal:function GetTOCOMDecimal(symbol){return g_TOCOMTimeData.GetDecimal(symbol);},GetIPEDecimal:function GetIPEDecimal(symbol){return g_IPETimeData.GetDecimal(symbol);},GetETMarketStatus:function GetETMarketStatus(symbol){// 0=闭市 1=盘前 2=盘中 3=盘后
6714
6717
  return 2;},GetNYMEXMarketStatus:function GetNYMEXMarketStatus(symbol){return g_NYMEXTimeData.GetMarketStatus(symbol);},GetCOMEXMarketStatus:function GetCOMEXMarketStatus(symbol){return g_COMEXTimeData.GetMarketStatus(symbol);},GetNYBOTMarketStatus:function GetNYBOTMarketStatus(symbol){return g_NYBOTTimeData.GetMarketStatus(symbol);},GetCBOTMarketStatus:function GetCBOTMarketStatus(symbol){return g_CBOTTimeData.GetMarketStatus(symbol);},GetLMEMarketStatus:function GetLMEMarketStatus(symbol){return g_LMETimeData.GetMarketStatus(symbol);},GetTOCOMMarketStatus:function GetTOCOMMarketStatus(symbol){return g_TOCOMTimeData.GetMarketStatus(symbol);},GetIPEMarketStatus:function GetIPEMarketStatus(symbol){return g_IPETimeData.GetMarketStatus(symbol);},IsShowMinuteVolTitle:function IsShowMinuteVolTitle(symbol)//是否画走势图成交量标题
6715
6718
  {if(!symbol)return false;var upperSymbol=symbol.toUpperCase();//if (this.IsChinaFutures(upperSymbol)) return true;
@@ -6728,12 +6731,14 @@ this.FTSE=null;//富时中国
6728
6731
  this.FHK=null;//港股指数期货
6729
6732
  this.ForeEx=null;//外汇
6730
6733
  this.BIT=null;//数字货币
6731
- this.TW=null;this.Initialize=function()//初始化 默认只初始化沪深的 其他市场动态生成
6734
+ this.TW=null;//台湾股票
6735
+ this.JP=null;//日本股票
6736
+ this.Initialize=function()//初始化 默认只初始化沪深的 其他市场动态生成
6732
6737
  {//this.SHSZ = this.CreateSHSZData();
6733
6738
  //this.HK = this.CreateHKData();
6734
6739
  };this.GetET=function(upperSymbol)//当天所有的分钟
6735
6740
  {throw{Name:'MinuteTimeStringData::GetET',Error:'not implement'};};this.GetSHSZ=function(upperSymbol)//动态创建
6736
- {if(!this.SHSZ)this.SHSZ=this.CreateSHSZData();return this.SHSZ;};this.GetBJ=function(upperSymbol){if(!this.BJ)this.BJ=this.CreateBJData();return this.BJ;};this.GetSHO=function(){if(!this.SHO)this.SHO=this.CreateSHOData();return this.SHO;};this.GetHK=function(upperSymbol){if(!this.HK)this.HK=this.CreateHKData();return this.HK;};this.GetTW=function(upperSymbol){if(this.TW)this.TW=this.CreateTWData();return this.TW;};this.GetFutures=function(splitData){if(!this.Futures.has(splitData.Name)){var data=this.CreateTimeData(splitData.Data);this.Futures.set(splitData.Name,data);}return this.Futures.get(splitData.Name);};this.GetUSA=function(){if(!this.USA)this.USA=this.CreateUSAData(0);return this.USA;};this.GetFTSE=function(){if(!this.FTSE)this.FTSE=this.CreateFTSEData();return this.FTSE;};this.GetFHK=function(){if(!this.FHK)this.FHK=this.CreateFHKData();return this.FHK;};this.GetForeignExchange=function(){if(!this.ForeEx)this.ForeEx=this.CreateForeignExchangeData();return this.ForeEx;};this.GetBIT=function(upperSymbol){if(!this.BIT)this.BIT=this.CreateBITData();return this.BIT;};this.CreateSHSZData=function(){var TIME_SPLIT=[{Start:925,End:925},{Start:930,End:1130},{Start:1300,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateBJData=function(){var TIME_SPLIT=[{Start:925,End:925},{Start:930,End:1130},{Start:1300,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateSHOData=function(){var TIME_SPLIT=[{Start:930,End:1129},{Start:1300,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateHKData=function(){var TIME_SPLIT=[{Start:930,End:1200},{Start:1300,End:1600}];return this.CreateTimeData(TIME_SPLIT);};this.CreateTWData=function(){var TIME_SPLIT=[{Start:900,End:1330}];return this.CreateTimeData(TIME_SPLIT);};this.CreateFTSEData=function(){var TIME_SPLIT=[{Start:1700,End:2359},{Start:0,End:445},{Start:900,End:1630}];return this.CreateTimeData(TIME_SPLIT);};this.CreateFHKData=function(){//港股指数期货 9:15-12:00 13:00-16:30 17:15-03:00
6741
+ {if(!this.SHSZ)this.SHSZ=this.CreateSHSZData();return this.SHSZ;};this.GetBJ=function(upperSymbol){if(!this.BJ)this.BJ=this.CreateBJData();return this.BJ;};this.GetSHO=function(){if(!this.SHO)this.SHO=this.CreateSHOData();return this.SHO;};this.GetHK=function(upperSymbol){if(!this.HK)this.HK=this.CreateHKData();return this.HK;};this.GetTW=function(upperSymbol){if(this.TW)this.TW=this.CreateTWData();return this.TW;};this.GetJP=function(upperSymbol){if(this.JP)this.JP=this.CreateJPData();return this.JP;};this.GetFutures=function(splitData){if(!this.Futures.has(splitData.Name)){var data=this.CreateTimeData(splitData.Data);this.Futures.set(splitData.Name,data);}return this.Futures.get(splitData.Name);};this.GetUSA=function(){if(!this.USA)this.USA=this.CreateUSAData(0);return this.USA;};this.GetFTSE=function(){if(!this.FTSE)this.FTSE=this.CreateFTSEData();return this.FTSE;};this.GetFHK=function(){if(!this.FHK)this.FHK=this.CreateFHKData();return this.FHK;};this.GetForeignExchange=function(){if(!this.ForeEx)this.ForeEx=this.CreateForeignExchangeData();return this.ForeEx;};this.GetBIT=function(upperSymbol){if(!this.BIT)this.BIT=this.CreateBITData();return this.BIT;};this.CreateSHSZData=function(){var TIME_SPLIT=[{Start:925,End:925},{Start:930,End:1130},{Start:1300,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateBJData=function(){var TIME_SPLIT=[{Start:925,End:925},{Start:930,End:1130},{Start:1300,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateSHOData=function(){var TIME_SPLIT=[{Start:930,End:1129},{Start:1300,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateHKData=function(){var TIME_SPLIT=[{Start:930,End:1200},{Start:1300,End:1600}];return this.CreateTimeData(TIME_SPLIT);};this.CreateTWData=function(){var TIME_SPLIT=[{Start:900,End:1330}];return this.CreateTimeData(TIME_SPLIT);};this.CreateJPData=function(){var TIME_SPLIT=[{Start:900,End:1130},{Start:1230,End:1500}];return this.CreateTimeData(TIME_SPLIT);};this.CreateFTSEData=function(){var TIME_SPLIT=[{Start:1700,End:2359},{Start:0,End:445},{Start:900,End:1630}];return this.CreateTimeData(TIME_SPLIT);};this.CreateFHKData=function(){//港股指数期货 9:15-12:00 13:00-16:30 17:15-03:00
6737
6742
  var TIME_SPLIT=[{Start:1715,End:2359},{Start:0,End:300},{Start:915,End:1200},{Start:1300,End:1630}];return this.CreateTimeData(TIME_SPLIT);};this.CreateUSAData=function(type){if(type==1)//美国夏令时
6738
6743
  {var TIME_SPLIT=[{Start:2130,End:2359},{Start:0,End:400}];return this.CreateTimeData(TIME_SPLIT);}else if(type==2)//非夏令时
6739
6744
  {var _TIME_SPLIT=[{Start:2230,End:2359},{Start:0,End:500}];return this.CreateTimeData(_TIME_SPLIT);}else//使用美国本地时间
@@ -6742,7 +6747,7 @@ var TIME_SPLIT=[{Start:1715,End:2359},{Start:0,End:300},{Start:915,End:1200},{St
6742
6747
  var TIME_SPLIT=[{Start:600,End:2359},{Start:0,End:559}];return this.CreateTimeData(TIME_SPLIT);};this.CreateBITData=function(){//数字货币 7:00 - 6:59
6743
6748
  var TIME_SPLIT=[{Start:600,End:2359},{Start:0,End:559}];return this.CreateTimeData(TIME_SPLIT);};this.CreateTimeData=function(timeSplit){var data=[];for(var i in timeSplit){var item=timeSplit[i];for(var j=item.Start;j<=item.End;++j){if(j%100>=60)continue;//大于60分钟的数据去掉
6744
6749
  data.push(j);}}return data;};this.GetTimeData=function(symbol){if(!symbol)return this.SHSZ;var upperSymbol=symbol.toLocaleUpperCase();//转成大写
6745
- if(MARKET_SUFFIX_NAME.IsSH(upperSymbol)||MARKET_SUFFIX_NAME.IsSZ(upperSymbol))return this.GetSHSZ(upperSymbol);if(MARKET_SUFFIX_NAME.IsBJ(upperSymbol))return this.GetBJ(upperSymbol);if(MARKET_SUFFIX_NAME.IsSHO(upperSymbol)||MARKET_SUFFIX_NAME.IsSZO(upperSymbol))return this.GetSHO();if(MARKET_SUFFIX_NAME.IsHK(upperSymbol))return this.GetHK(upperSymbol);if(MARKET_SUFFIX_NAME.IsTW(upperSymbol))return this.GetTW(upperSymbol);if(MARKET_SUFFIX_NAME.IsUSA(upperSymbol))return this.GetUSA(true);if(MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol)||MARKET_SUFFIX_NAME.IsCZCE(upperSymbol)||MARKET_SUFFIX_NAME.IsDCE(upperSymbol)||MARKET_SUFFIX_NAME.IsSHFE(upperSymbol)){var splitData=g_FuturesTimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}if(MARKET_SUFFIX_NAME.IsFTSE(upperSymbol))return this.GetFTSE();if(MARKET_SUFFIX_NAME.IsFHK(upperSymbol))return this.GetFHK();if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))return this.GetForeignExchange();if(MARKET_SUFFIX_NAME.IsET(upperSymbol))return this.GetET(upperSymbol);if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol))return this.GetBIT(upperSymbol);if(MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol))//纽约期货交易所
6750
+ if(MARKET_SUFFIX_NAME.IsSH(upperSymbol)||MARKET_SUFFIX_NAME.IsSZ(upperSymbol))return this.GetSHSZ(upperSymbol);if(MARKET_SUFFIX_NAME.IsBJ(upperSymbol))return this.GetBJ(upperSymbol);if(MARKET_SUFFIX_NAME.IsSHO(upperSymbol)||MARKET_SUFFIX_NAME.IsSZO(upperSymbol))return this.GetSHO();if(MARKET_SUFFIX_NAME.IsHK(upperSymbol))return this.GetHK(upperSymbol);if(MARKET_SUFFIX_NAME.IsTW(upperSymbol))return this.GetTW(upperSymbol);if(MARKET_SUFFIX_NAME.IsJP(upperSymbol))return this.GetJP(upperSymbol);if(MARKET_SUFFIX_NAME.IsUSA(upperSymbol))return this.GetUSA(true);if(MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol)||MARKET_SUFFIX_NAME.IsCZCE(upperSymbol)||MARKET_SUFFIX_NAME.IsDCE(upperSymbol)||MARKET_SUFFIX_NAME.IsSHFE(upperSymbol)){var splitData=g_FuturesTimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}if(MARKET_SUFFIX_NAME.IsFTSE(upperSymbol))return this.GetFTSE();if(MARKET_SUFFIX_NAME.IsFHK(upperSymbol))return this.GetFHK();if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))return this.GetForeignExchange();if(MARKET_SUFFIX_NAME.IsET(upperSymbol))return this.GetET(upperSymbol);if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol))return this.GetBIT(upperSymbol);if(MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol))//纽约期货交易所
6746
6751
  {var splitData=g_NYMEXTimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}if(MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol))//纽约期货交易所
6747
6752
  {var splitData=g_COMEXTimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}if(MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol))//纽约期货交易所
6748
6753
  {var splitData=g_NYBOTTimeData.GetSplitData(upperSymbol);if(!splitData)return null;return this.GetFutures(splitData);}if(MARKET_SUFFIX_NAME.IsCBOT(upperSymbol))//芝商所
@@ -6832,7 +6837,7 @@ var FTSE_MINUTE_X_COORDINATE={Full://完整模式
6832
6837
  [[0,1,"RGB(200,200,200)","09:00"],[60,1,"RGB(200,200,200)","10:00"],[120,1,"RGB(200,200,200)","11:00"],[180,1,"RGB(200,200,200)","12:00"],[270,0,"RGB(200,200,200)","13:30"]],Min://最小模式
6833
6838
  [[0,1,"RGB(200,200,200)","09:00"],[60,1,"RGB(200,200,200)","11:00"],[270,0,"RGB(200,200,200)","13:30"]],Count:271,MiddleCount:151,GetData:function GetData(width){if(width<200)return this.Min;else if(width<450)return this.Simple;return this.Full;}};this.GetCoordinateData=function(symbol,width){var data=null;if(!symbol){data=SHZE_MINUTE_X_COORDINATE;//默认沪深股票
6834
6839
  }else{var upperSymbol=symbol.toLocaleUpperCase();//转成大写
6835
- if(MARKET_SUFFIX_NAME.IsSH(upperSymbol)||MARKET_SUFFIX_NAME.IsSZ(upperSymbol)||MARKET_SUFFIX_NAME.IsSHSZIndex(upperSymbol))data=this.GetSHSZData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsBJ(upperSymbol))data=this.GetBJData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsSHO(upperSymbol)||MARKET_SUFFIX_NAME.IsSZO(upperSymbol))data=this.GetSHOData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsHK(upperSymbol))data=this.GetHKData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsTW(upperSymbol))data=this.GetTWData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol)||MARKET_SUFFIX_NAME.IsCZCE(upperSymbol)||MARKET_SUFFIX_NAME.IsDCE(upperSymbol)||MARKET_SUFFIX_NAME.IsSHFE(upperSymbol))return this.GetChinatFuturesData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsUSA(upperSymbol))data=this.GetUSAData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsFTSE(upperSymbol))data=this.GetFTSEData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsFHK(upperSymbol))data=this.GetFHKData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))data=this.GetForeignExchangeData(upperSymbol);else if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol,width))data=this.GetBITData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsET(upperSymbol))data=this.GetETData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol))return data=this.GetNYMEXData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol))return data=this.GetCOMEXData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol))return data=this.GetNYBOTData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsCBOT(upperSymbol))return data=this.GetCBOTData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsLME(upperSymbol))return data=this.GetLMEData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol))return data=this.GetTOCOMData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsIPE(upperSymbol))return data=this.GetIPEData(upperSymbol,width);}//JSConsole.Chart.Log('[MiuteCoordinateData]', width);
6840
+ if(MARKET_SUFFIX_NAME.IsSH(upperSymbol)||MARKET_SUFFIX_NAME.IsSZ(upperSymbol)||MARKET_SUFFIX_NAME.IsSHSZIndex(upperSymbol))data=this.GetSHSZData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsBJ(upperSymbol))data=this.GetBJData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsSHO(upperSymbol)||MARKET_SUFFIX_NAME.IsSZO(upperSymbol))data=this.GetSHOData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsHK(upperSymbol))data=this.GetHKData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsTW(upperSymbol))data=this.GetTWData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsJP(upperSymbol))data=this.GetJPData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol)||MARKET_SUFFIX_NAME.IsCZCE(upperSymbol)||MARKET_SUFFIX_NAME.IsDCE(upperSymbol)||MARKET_SUFFIX_NAME.IsSHFE(upperSymbol))return this.GetChinatFuturesData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsUSA(upperSymbol))data=this.GetUSAData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsFTSE(upperSymbol))data=this.GetFTSEData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsFHK(upperSymbol))data=this.GetFHKData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))data=this.GetForeignExchangeData(upperSymbol);else if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol,width))data=this.GetBITData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsET(upperSymbol))data=this.GetETData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol))return data=this.GetNYMEXData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol))return data=this.GetCOMEXData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol))return data=this.GetNYBOTData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsCBOT(upperSymbol))return data=this.GetCBOTData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsLME(upperSymbol))return data=this.GetLMEData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol))return data=this.GetTOCOMData(upperSymbol,width);else if(MARKET_SUFFIX_NAME.IsIPE(upperSymbol))return data=this.GetIPEData(upperSymbol,width);}//JSConsole.Chart.Log('[MiuteCoordinateData]', width);
6836
6841
  var result={Count:data.Count,MiddleCount:data.MiddleCount,Data:data.GetData(width)};return result;};this.GetSHSZData=function(upperSymbol,width){var result=SHZE_MINUTE_X_COORDINATE;return result;};this.GetBJData=function(upperSymbol,width){var result=SHZE_MINUTE_X_COORDINATE;return result;};this.GetUSAData=function(upperSymbol,width){var result=USA_MINUTE_X_COORDINATE;return result;};this.GetHKData=function(upperSymbol,width){var result=HK_MINUTE_X_COORDINATE;return result;};this.GetTWData=function(upperSymbol,width){return TW_MINUTE_X_COORDINATE;};this.GetSHOData=function(upperSymbol,width){var result=SHO_MINUTE_X_COORDINATE;return result;};this.GetFuturesData=function(upperSymbol,width,timeData){var splitData=timeData.GetSplitData(upperSymbol);if(!splitData)return null;var stringData=g_MinuteTimeStringData.GetFutures(splitData);if(!stringData)return null;var result={Count:stringData.length};var coordinate=null;var minWidth=200,simpleWidth=480;/*
6837
6842
  if (splitData.Name =='21:00-1:00,9:00-10:15,10:30-11:30,13:30-15:00')
6838
6843
  {
@@ -6840,7 +6845,7 @@ var result={Count:data.Count,MiddleCount:data.MiddleCount,Data:data.GetData(widt
6840
6845
  simpleWidth=500;
6841
6846
  }
6842
6847
  */if(width<minWidth)coordinate=splitData.Coordinate.Min;else if(width<simpleWidth)coordinate=splitData.Coordinate.Simple;else coordinate=splitData.Coordinate.Full;var data=[];for(var i=0;i<stringData.length;++i){var value=stringData[i];for(var j=0;j<coordinate.length;++j){var coordinateItem=coordinate[j];if(value==coordinateItem.Value){var item=[i,0,'RGB(200,200,200)',coordinateItem.Text];data.push(item);break;}}}result.Data=data;return result;};this.GetChinatFuturesData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_FuturesTimeData);};this.GetNYMEXData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_NYMEXTimeData);};this.GetCOMEXData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_COMEXTimeData);};this.GetNYBOTData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_NYBOTTimeData);};this.GetCBOTData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_CBOTTimeData);};this.GetLMEData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_LMETimeData);};this.GetTOCOMData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_TOCOMTimeData);};this.GetIPEData=function(upperSymbol,width){return this.GetFuturesData(upperSymbol,width,g_IPETimeData);};this.GetFTSEData=function(upperSymbol,width){var result=FTSE_MINUTE_X_COORDINATE;return result;};this.GetFHKData=function(upperSymbol,width){var result=FHK_MINUTE_X_COORDINATE;return result;};this.GetForeignExchangeData=function(upperSymbol,width){var result=FOREX_MINUTE_X_COORDINATE;return result;};this.GetBITData=function(upperSymbol,width){var result=FOREX_MINUTE_X_COORDINATE;//先用外汇的吧
6843
- return result;};this.GetETData=function(upperSymbol,width){throw{Name:'MinuteCoordinateData::GetETData',Error:'not implement'};};}//国内期货不同品种 交易时间数据
6848
+ return result;};this.GetETData=function(upperSymbol,width){throw{Name:'MinuteCoordinateData::GetETData',Error:'not implement'};};this.GetJPData=function(upperSymbol,width){throw{Name:'MinuteCoordinateData::GetJPData',Error:'not implement'};};}//国内期货不同品种 交易时间数据
6844
6849
  function FuturesTimeData(){this.TIME_SPLIT=[//ID=0 9:00-10:15,10:31-11:30,13:31-15:00
6845
6850
  {Name:'9:00-10:15,10:31-11:30,13:31-15:00',Data:[//9:00-10:15,10:30-11:30,13:30-15:00
6846
6851
  {Start:900,End:1015},{Start:1031,End:1130},{Start:1331,End:1500}],Coordinate:{Full://完整模式
@@ -7184,7 +7189,7 @@ this.TIME_SPLIT2=[//ID=0 09:00-07:00
7184
7189
  if(!symbol)return defaultfloatPrecision;var upperSymbol=symbol.toUpperCase();//全部由外部控制
7185
7190
  if(typeof MARKET_SUFFIX_NAME.GetCustomDecimal=='function')return MARKET_SUFFIX_NAME.GetCustomDecimal(upperSymbol);if(MARKET_SUFFIX_NAME.IsSHSZFund(upperSymbol))defaultfloatPrecision=3;//基金3位小数
7186
7191
  else if(MARKET_SUFFIX_NAME.IsSHO(upperSymbol)||MARKET_SUFFIX_NAME.IsSZO(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetSHODecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol))defaultfloatPrecision=g_FuturesTimeData.GetDecimal(upperSymbol);//期货小数位数读配置
7187
- else if(MARKET_SUFFIX_NAME.IsFHK(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetFHKDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsFTSE(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetFTSEDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetBITDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsET(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetETDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetForeignExchangeDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol))defaultfloatPrecision=g_NYMEXTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol))defaultfloatPrecision=g_COMEXTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol))defaultfloatPrecision=g_NYBOTTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsCBOT(upperSymbol))defaultfloatPrecision=g_CBOTTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsLME(upperSymbol))defaultfloatPrecision=g_LMETimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol))defaultfloatPrecision=g_TOCOMTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsIPE(upperSymbol))defaultfloatPrecision=g_IPETimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsHK(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHKDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsTW(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetTWDecimal(upperSymbol);else defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol);return defaultfloatPrecision;}//把不连续的分时数据转成连续的分时数据
7192
+ else if(MARKET_SUFFIX_NAME.IsFHK(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetFHKDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsFTSE(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetFTSEDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsBIT(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetBITDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsET(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetETDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetForeignExchangeDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol))defaultfloatPrecision=g_NYMEXTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol))defaultfloatPrecision=g_COMEXTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol))defaultfloatPrecision=g_NYBOTTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsCBOT(upperSymbol))defaultfloatPrecision=g_CBOTTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsLME(upperSymbol))defaultfloatPrecision=g_LMETimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol))defaultfloatPrecision=g_TOCOMTimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsIPE(upperSymbol))defaultfloatPrecision=g_IPETimeData.GetDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsHK(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHKDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsTW(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetTWDecimal(upperSymbol);else if(MARKET_SUFFIX_NAME.IsJP(upperSymbol))defaultfloatPrecision=MARKET_SUFFIX_NAME.GetJPDecimal(upperSymbol);else defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol);return defaultfloatPrecision;}//把不连续的分时数据转成连续的分时数据
7188
7193
  function GenerateMinuteStockJsonData(data){var stock={symbol:data.symbol,name:data.name,time:data.time,date:data.date,price:data.price,open:data.open,yclose:data.yclose,high:data.high,low:data.low,vol:data.vol,amount:data.amount,minute:[]};var mapMinute=new _map2.default();for(var i in data.minute){var item=data.minute[i];mapMinute.set(item.time,item);}var timeData=g_MinuteTimeStringData.GetTimeData(stock.symbol);for(var i in timeData)//根据交易时间产生数据
7189
7194
  {var time=timeData[i];var minuteItem={time:time,vaild:false};if(mapMinute.has(time)){var find=mapMinute.get(time);minuteItem.vaild=true;minuteItem.price=find.price;minuteItem.open=find.open;minuteItem.high=find.high;minuteItem.low=find.low;minuteItem.avprice=find.avprice;minuteItem.vol=find.vol;minuteItem.amount=find.amount;if(IFrameSplitOperator.IsNumber(find.increase))minuteItem.increase=find.increase;if(IFrameSplitOperator.IsNumber(find.risefall))minuteItem.risefall=find.risefall;if(IFrameSplitOperator.IsNumber(find.position))minuteItem.position=find.position;}stock.minute.push(minuteItem);}var vaildCount=0;for(var i=stock.minute.length-1;i>=0;--i){vaildCount=i+1;var item=stock.minute[i];if(item.vaild==true)break;}stock.minute=stock.minute.slice(0,vaildCount);//去掉最后无用的数据
7190
7195
  return stock;}function GetLocalTime(i)//得到标准时区的时间的函数
@@ -8363,9 +8368,13 @@ Explain:'DYNAINFO()',Args:aryArgs,Request:{Url:self.RealtimeApiUrl,Type:'POST',D
8363
8368
  this.RecvLatestDataVer2=function(data){if(!IFrameSplitOperator.IsNonEmptyArray(data.data))return;var symbol=data.symbol;for(var i=0;i<data.data.length;++i){var item=data.data[i];if(!item)continue;if(!IFrameSplitOperator.IsNumber(item.id))continue;if(IFrameSplitOperator.IsNumber(item.value)||IFrameSplitOperator.IsString(item.value)){JSConsole.Complier.Log('[JSSymbolData::RecvLatestDataVer2] symbol='+symbol+' DYNAINFO('+item.id+')='+item.value+'.');this.LatestData.set(item.id,item.value);}}JSConsole.Complier.Log('[JSSymbolData::RecvLatestDataVer2]',this.LatestData);};this.GetLatestCacheData=function(dataname){if(this.LatestData.has(dataname))return this.LatestData.get(dataname);return null;};this.GetLatestIndexData=function(){if(this.LatestIndexData)return this.Execute.RunNextJob();var self=this;if(this.NetworkFilter){var obj={Name:'JSSymbolData::GetLatestIndexData',//类名:: 函数
8364
8369
  Explain:'最新大盘数据',Request:{Url:self.RealtimeApiUrl,Type:'POST',Data:{symbol:['000001.sh'],field:["name","symbol","yclose","open","price","high","low","vol","amount","date","time","increase","amplitude"]}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvLatestIndexData(data);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
8365
8370
  }JSNetwork.HttpRequest({url:self.RealtimeApiUrl,data:{"field":["name","symbol","yclose","open","price","high","low","vol","amount","date","time","increase","amplitude"],"symbol":['000001.sh']},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvLatestIndexData(recvData);self.Execute.RunNextJob();},error:function error(request){self.RecvError(request);}});};this.RecvLatestIndexData=function(data){if(!data.stock||data.stock.length!=1)return;var stock=data.stock[0];this.LatestIndexData={Symbol:stock.symbol,Name:stock.name,Date:stock.date,Time:stock.time,YClose:stock.yclose,Price:stock.price,Open:stock.open,High:stock.high,Low:stock.low,Vol:stock.vol,Amount:stock.amount,Increase:stock.increase,Amplitude:stock.amplitude};JSConsole.Complier.Log('[JSSymbolData::RecvLatestIndexData]',this.LatestIndexData);};this.GetLatestIndexCacheData=function(dataname){if(!this.LatestIndexData)return null;switch(dataname){case'FROMOPEN':{var value=parseInt(this.LatestIndexData.Time/100);var time=parseInt(value/100)*60+value%100;//转化为分钟个数
8366
- var index=0;if(time<=9*60+25)index=0;else if(time<9*60+30)index=1;else if(time<=11*60+30)index=time-(9*60+30)+1;else if(time<13*60)index=121;else if(time<=15*60)index=122+time-13*60;else index=242;return index;}default:return null;}};this.GetVolRateData=function(job,node){var volrKey=job.ID.toString()+'-VolRate-'+this.Symbol;if(this.ExtendData.has(volrKey))return this.Execute.RunNextJob();var self=this;JSNetwork.HttpRequest({url:self.RealtimeApiUrl,data:{"field":["name","symbol","avgvol5",'date'],"symbol":[this.Symbol]},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvVolRateData(recvData,volrKey);self.Execute.RunNextJob();},error:function error(request){self.RecvError(request);}});};this.RecvVolRateData=function(data,key){if(!data.stock||data.stock.length!=1)return;var avgVol5=data.stock[0].avgvol5;var date=data.stock[0].date;var item={AvgVol5:avgVol5,Date:date};this.ExtendData.set(key,item);JSConsole.Complier.Log('[JSSymbolData::RecvVolRateData]',item);};this.GetVolRateCacheData=function(node){var key=JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VOLR_DATA.toString()+'-VolRate-'+this.Symbol;if(!key||!this.ExtendData.has(key))this.Execute.ThrowUnexpectedNode(node,'不支持VOLR');var result=[];var value=this.ExtendData.get(key);var avgVol5=value.AvgVol5/241;var totalVol=0;//5日成交总量只取了最新一天的,历史的暂时没有取,所以数据计算的时候只计算最新的一天, 其他都空
8367
- for(var i=0,j=0;i<this.Data.Data.length;++i){result[i]=null;var item=this.Data.Data[i];var dateTime=item.DateTime;//日期加时间
8368
- if(!dateTime)continue;var aryValue=dateTime.split(' ');if(aryValue.length!=2)continue;var date=parseInt(aryValue[0]);if(date!=value.Date)continue;totalVol+=item.Vol;if(avgVol5>0)result[i]=totalVol/(j+1)/avgVol5*100;++j;}return result;};//获取大盘指数数据
8371
+ var index=0;if(time<=9*60+25)index=0;else if(time<9*60+30)index=1;else if(time<=11*60+30)index=time-(9*60+30)+1;else if(time<13*60)index=121;else if(time<=15*60)index=122+time-13*60;else index=242;return index;}default:return null;}};this.GetVolRateData=function(job,node){var volrKey=job.ID.toString()+'-VolRate-'+this.Symbol;if(this.ExtendData.has(volrKey))return this.Execute.RunNextJob();var self=this;var dayCount=30;if(this.NetworkFilter){var dateRange=this.Data.GetDateRange();var dayCount=1;if(this.DataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID)dayCount=this.DayCount;var obj={Name:'JSSymbolData::GetVolRateData',//类名:: 函数
8372
+ Explain:'分时量比数据(成交量)',Request:{Url:self.KLineApiUrl,Type:'POST',Data:{symbol:self.Symbol,dayCount:dayCount,field:["name","symbol","vol"],period:0,right:0,dateRange:dateRange}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(recvData){self.RecvVolRateData(recvData,volrKey);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
8373
+ }JSNetwork.HttpRequest({url:self.KLineApiUrl,data:{"field":["name","symbol","vol"],"symbol":self.Symbol,"start":-1,"count":dayCount},type:"post",dataType:"json",async:true,success:function success(recvData){self.RecvVolRateData(recvData,volrKey);self.Execute.RunNextJob();},error:function error(request){self.RecvError(request);}});};this.RecvVolRateData=function(data,key){var sumVol=0,avgVol5=0;var mapAvgVol5=new _map2.default();if(data.Ver==2.0)// {Ver:2.0 , data:[ [日期,5日vol均值]] }
8374
+ {if(!IFrameSplitOperator.IsNonEmptyArray(data.data))return;for(var i=0;i<data.data.length;++i){var item=data.data[i];if(!IFrameSplitOperator.IsNonEmptyArray(item))continue;if(item.length<2)continue;if(IFrameSplitOperator.IsNumber(item[0])&&IFrameSplitOperator.IsPlusNumber(item[1])){mapAvgVol5.set(item[0],{AvgVol5:item[1]});}}}else{if(!IFrameSplitOperator.IsNonEmptyArray(data.data))return;var minuteCount=241;if(IFrameSplitOperator.IsNumber(data.minutecount))minuteCount=data.minutecount;for(var i=0,j=0,dayCount=0;i<data.data.length;++i)//每天的5日成交均量
8375
+ {sumVol=0;for(j=i,dayCount=0;j>=0&&dayCount<5;--j,++dayCount){var item=data.data[j];if(IFrameSplitOperator.IsNumber(item[6]))sumVol+=item[6];}if(dayCount>0){avgVol5=sumVol/dayCount/minuteCount;var item=data.data[i];mapAvgVol5.set(item[0],{//for debug
8376
+ //Vol5:sumVol, MinuteCount:minuteCount,,Count:dayCount,
8377
+ AvgVol5:avgVol5});}}}if(mapAvgVol5.size>0)this.ExtendData.set(key,mapAvgVol5);JSConsole.Complier.Log('[JSSymbolData::RecvVolRateData]',mapAvgVol5);};this.GetVolRateCacheData=function(node){var key=JS_EXECUTE_JOB_ID.JOB_DOWNLOAD_VOLR_DATA.toString()+'-VolRate-'+this.Symbol;if(!key||!this.ExtendData.has(key))this.Execute.ThrowUnexpectedNode(node,'不支持VOLR');var result=[];var mapAvgVol5=this.ExtendData.get(key);var totalVol=0,preDate=0,avgVol5=null;for(var i=0,j=0;i<this.Data.Data.length;++i){result[i]=null;var item=this.Data.Data[i];if(preDate!=item.Date){avgVol5=null;j=0;totalVol=0;if(mapAvgVol5.has(item.Date)){var volItem=mapAvgVol5.get(item.Date);avgVol5=volItem.AvgVol5;}preDate=item.Date;}if(avgVol5==null)continue;totalVol+=item.Vol;result[i]=totalVol/(j+1)/avgVol5*100;++j;}return result;};//获取大盘指数数据
8369
8378
  this.GetIndexData=function(){if(this.IndexData)return this.Execute.RunNextJob();var self=this;if(ChartData.IsDayPeriod(this.Period,true))//请求日线数据 9=季线
8370
8379
  {if(this.NetworkFilter){var dateRange=this.Data.GetDateRange();var obj={Name:'JSSymbolData::GetIndexData',//类名::
8371
8380
  Explain:'大盘数据',Period:self.Period,Request:{Url:self.KLineApiUrl,Type:'POST',Data:{field:["name","symbol","yclose","open","price","high","low","vol",'up','down','stop','unchanged'],indexSymbol:"000001.sh",symbol:this.Symbol,period:this.Period,dateRange:dateRange}},Self:this,PreventDefault:false};this.NetworkFilter(obj,function(data){self.RecvIndexHistroyData(data);self.Execute.RunNextJob();});if(obj.PreventDefault==true)return;//已被上层替换,不调用默认的网络请求
package/package.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "name": "hqchart",
3
3
  "description": "stock chart",
4
4
  "author": "jones2000",
5
- "version": "1.1.10813",
5
+ "version": "1.1.10826",
6
6
  "main": "lib/main.js",
7
7
  "private": false,
8
8
  "license": "Apache License 2.0",
@@ -66370,7 +66370,8 @@ var MARKET_SUFFIX_NAME=
66370
66370
  TOCOM:".TOCOM", //东京商品交易所(TOCOM)
66371
66371
  IPE:".IPE", //美国洲际交易所 (ICE EUROPE)
66372
66372
 
66373
- TW:".TW", //台湾股票 //上午9:00——下午1:30
66373
+ TW:".TW", //台湾股票 9:00-13:30
66374
+ JP:".JP", //日本股票 9:00-11:30, 12:30-15:00
66374
66375
 
66375
66376
  ET:'.ET', //其他未知的品种
66376
66377
 
@@ -66517,6 +66518,13 @@ var MARKET_SUFFIX_NAME=
66517
66518
  return find == pos;
66518
66519
  },
66519
66520
 
66521
+ IsJP:function(upperSymbol)
66522
+ {
66523
+ var pos = upperSymbol.length - this.JP.length;
66524
+ var find = upperSymbol.indexOf(this.JP);
66525
+ return find == pos;
66526
+ },
66527
+
66520
66528
  IsSHFE: function (upperSymbol)
66521
66529
  {
66522
66530
  if (!upperSymbol) return false;
@@ -66711,6 +66719,13 @@ var MARKET_SUFFIX_NAME=
66711
66719
  if(time<820) return 1;
66712
66720
  return 2;
66713
66721
  }
66722
+ else if (this.IsJP(upperSymbol)) //日本股票 9:00-11:30 12:30-15:00
66723
+ {
66724
+ if(day == 6 || day== 0) return 0; //周末
66725
+ if(time>1520) return 3;
66726
+ if(time<830) return 1;
66727
+ return 2;
66728
+ }
66714
66729
  else if (this.IsNYMEX(upperSymbol))
66715
66730
  {
66716
66731
  return this.GetNYMEXMarketStatus(upperSymbol);
@@ -66809,6 +66824,11 @@ var MARKET_SUFFIX_NAME=
66809
66824
  return 2;
66810
66825
  },
66811
66826
 
66827
+ GetJPDecimal:function(symbol)
66828
+ {
66829
+ return 2;
66830
+ },
66831
+
66812
66832
  GetForeignExchangeDecimal:function(symbol)
66813
66833
  {
66814
66834
  return 4;
@@ -66937,7 +66957,8 @@ function MinuteTimeStringData()
66937
66957
  this.FHK=null; //港股指数期货
66938
66958
  this.ForeEx=null; //外汇
66939
66959
  this.BIT=null; //数字货币
66940
- this.TW=null;
66960
+ this.TW=null; //台湾股票
66961
+ this.JP=null; //日本股票
66941
66962
 
66942
66963
  this.Initialize = function () //初始化 默认只初始化沪深的 其他市场动态生成
66943
66964
  {
@@ -66980,6 +67001,12 @@ function MinuteTimeStringData()
66980
67001
  return this.TW;
66981
67002
  }
66982
67003
 
67004
+ this.GetJP=function(upperSymbol)
67005
+ {
67006
+ if (this.JP) this.JP=this.CreateJPData();
67007
+ return this.JP;
67008
+ }
67009
+
66983
67010
  this.GetFutures=function(splitData)
66984
67011
  {
66985
67012
  if (!this.Futures.has(splitData.Name))
@@ -67077,6 +67104,17 @@ function MinuteTimeStringData()
67077
67104
  return this.CreateTimeData(TIME_SPLIT);
67078
67105
  }
67079
67106
 
67107
+ this.CreateJPData=function()
67108
+ {
67109
+ const TIME_SPLIT =
67110
+ [
67111
+ { Start: 900, End: 1130 },
67112
+ { Start: 1230, End: 1500 }
67113
+ ];
67114
+
67115
+ return this.CreateTimeData(TIME_SPLIT);
67116
+ }
67117
+
67080
67118
  this.CreateFTSEData=function()
67081
67119
  {
67082
67120
  const TIME_SPLIT=
@@ -67185,6 +67223,7 @@ function MinuteTimeStringData()
67185
67223
  if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol)) return this.GetSHO();
67186
67224
  if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) return this.GetHK(upperSymbol);
67187
67225
  if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) return this.GetTW(upperSymbol);
67226
+ if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) return this.GetJP(upperSymbol);
67188
67227
  if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol)) return this.GetUSA(true);
67189
67228
  if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol))
67190
67229
  {
@@ -67669,6 +67708,8 @@ function MinuteCoordinateData()
67669
67708
  data=this.GetHKData(upperSymbol,width);
67670
67709
  else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol))
67671
67710
  data=this.GetTWData(upperSymbol,width);
67711
+ else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol))
67712
+ data=this.GetJPData(upperSymbol,width);
67672
67713
  else if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol))
67673
67714
  return this.GetChinatFuturesData(upperSymbol,width);
67674
67715
  else if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol))
@@ -67849,6 +67890,12 @@ function MinuteCoordinateData()
67849
67890
  {
67850
67891
  throw {Name:'MinuteCoordinateData::GetETData', Error:'not implement'};
67851
67892
  }
67893
+
67894
+ this.GetJPData=function(upperSymbol,width)
67895
+ {
67896
+ throw {Name:'MinuteCoordinateData::GetJPData', Error:'not implement'};
67897
+ }
67898
+
67852
67899
  }
67853
67900
 
67854
67901
  //国内期货不同品种 交易时间数据
@@ -69993,6 +70040,7 @@ function GetfloatPrecision(symbol) //获取小数位数
69993
70040
  else if (MARKET_SUFFIX_NAME.IsIPE(upperSymbol)) defaultfloatPrecision=g_IPETimeData.GetDecimal(upperSymbol);
69994
70041
  else if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHKDecimal(upperSymbol);
69995
70042
  else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetTWDecimal(upperSymbol);
70043
+ else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetJPDecimal(upperSymbol);
69996
70044
  else defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol);
69997
70045
 
69998
70046
  return defaultfloatPrecision;
@@ -80811,12 +80859,41 @@ function JSSymbolData(ast,option,jsExecute)
80811
80859
  if (this.ExtendData.has(volrKey)) return this.Execute.RunNextJob();
80812
80860
 
80813
80861
  var self=this;
80862
+ var dayCount=30;
80863
+ if (this.NetworkFilter)
80864
+ {
80865
+ var dateRange=this.Data.GetDateRange();
80866
+ var dayCount=1;
80867
+ if (this.DataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID) dayCount=this.DayCount;
80868
+ var obj=
80869
+ {
80870
+ Name:'JSSymbolData::GetVolRateData', //类名:: 函数
80871
+ Explain:'分时量比数据(成交量)',
80872
+ Request:
80873
+ {
80874
+ Url:self.KLineApiUrl, Type:'POST' ,
80875
+ Data: { symbol:self.Symbol, dayCount:dayCount, field: ["name","symbol","vol"], period:0, right:0, dateRange:dateRange }
80876
+ },
80877
+ Self:this,
80878
+ PreventDefault:false
80879
+ };
80880
+ this.NetworkFilter(obj, function(recvData)
80881
+ {
80882
+ self.RecvVolRateData(recvData,volrKey);
80883
+ self.Execute.RunNextJob();
80884
+ });
80885
+
80886
+ if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
80887
+ }
80888
+
80814
80889
  JSNetwork.HttpRequest({
80815
- url: self.RealtimeApiUrl,
80890
+ url: self.KLineApiUrl,
80816
80891
  data:
80817
80892
  {
80818
- "field": ["name","symbol","avgvol5", 'date'],
80819
- "symbol": [this.Symbol]
80893
+ "field": ["name","symbol","vol"],
80894
+ "symbol": self.Symbol,
80895
+ "start": -1,
80896
+ "count": dayCount
80820
80897
  },
80821
80898
  type:"post",
80822
80899
  dataType: "json",
@@ -80835,13 +80912,54 @@ function JSSymbolData(ast,option,jsExecute)
80835
80912
 
80836
80913
  this.RecvVolRateData=function(data,key)
80837
80914
  {
80838
- if (!data.stock || data.stock.length!=1) return;
80839
- var avgVol5=data.stock[0].avgvol5;
80840
- var date=data.stock[0].date;
80841
- var item={AvgVol5:avgVol5, Date:date};
80842
- this.ExtendData.set(key,item);
80915
+ var sumVol=0,avgVol5=0;
80916
+ var mapAvgVol5=new Map();
80917
+ if (data.Ver==2.0) // {Ver:2.0 , data:[ [日期,5日vol均值]] }
80918
+ {
80919
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return;
80920
+ for(var i=0;i<data.data.length;++i)
80921
+ {
80922
+ var item=data.data[i];
80923
+ if (!IFrameSplitOperator.IsNonEmptyArray(item)) continue;
80924
+ if (item.length<2) continue;
80925
+ if (IFrameSplitOperator.IsNumber(item[0]) && IFrameSplitOperator.IsPlusNumber(item[1]))
80926
+ {
80927
+ mapAvgVol5.set(item[0],{ AvgVol5:item[1] } );
80928
+ }
80929
+ }
80930
+ }
80931
+ else
80932
+ {
80933
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return;
80843
80934
 
80844
- JSConsole.Complier.Log('[JSSymbolData::RecvVolRateData]', item);
80935
+ var minuteCount=241;
80936
+ if (IFrameSplitOperator.IsNumber(data.minutecount)) minuteCount=data.minutecount;
80937
+ for(var i=0,j=0,dayCount=0;i<data.data.length;++i) //每天的5日成交均量
80938
+ {
80939
+ sumVol=0;
80940
+ for(j=i,dayCount=0;j>=0 && dayCount<5;--j, ++dayCount)
80941
+ {
80942
+ var item=data.data[j];
80943
+ if (IFrameSplitOperator.IsNumber(item[6]))
80944
+ sumVol+=item[6];
80945
+ }
80946
+
80947
+ if (dayCount>0)
80948
+ {
80949
+ avgVol5=sumVol/dayCount/minuteCount;
80950
+ var item=data.data[i];
80951
+ mapAvgVol5.set(item[0],
80952
+ {
80953
+ //for debug
80954
+ //Vol5:sumVol, MinuteCount:minuteCount,,Count:dayCount,
80955
+ AvgVol5:avgVol5
80956
+ } );
80957
+ }
80958
+ }
80959
+ }
80960
+
80961
+ if (mapAvgVol5.size>0) this.ExtendData.set(key,mapAvgVol5);
80962
+ JSConsole.Complier.Log('[JSSymbolData::RecvVolRateData]', mapAvgVol5);
80845
80963
  }
80846
80964
 
80847
80965
  this.GetVolRateCacheData=function(node)
@@ -80850,23 +80968,31 @@ function JSSymbolData(ast,option,jsExecute)
80850
80968
  if (!key || !this.ExtendData.has(key)) this.Execute.ThrowUnexpectedNode(node,'不支持VOLR');
80851
80969
 
80852
80970
  var result=[];
80853
- var value=this.ExtendData.get(key);
80854
- var avgVol5=value.AvgVol5/241;
80855
- var totalVol=0;
80856
- //5日成交总量只取了最新一天的,历史的暂时没有取,所以数据计算的时候只计算最新的一天, 其他都空
80971
+ var mapAvgVol5=this.ExtendData.get(key);
80972
+ var totalVol=0, preDate=0, avgVol5=null;
80857
80973
  for(var i=0, j=0;i<this.Data.Data.length;++i)
80858
80974
  {
80859
80975
  result[i]=null;
80860
80976
  var item=this.Data.Data[i];
80861
- var dateTime=item.DateTime; //日期加时间
80862
- if (!dateTime) continue;
80863
- var aryValue=dateTime.split(' ');
80864
- if (aryValue.length!=2) continue;
80865
- var date=parseInt(aryValue[0]);
80866
- if (date!=value.Date) continue;
80977
+ if (preDate!=item.Date)
80978
+ {
80979
+ avgVol5=null;
80980
+ j=0;
80981
+ totalVol=0;
80982
+
80983
+ if (mapAvgVol5.has(item.Date))
80984
+ {
80985
+ var volItem=mapAvgVol5.get(item.Date);
80986
+ avgVol5=volItem.AvgVol5;
80987
+ }
80988
+
80989
+ preDate=item.Date;
80990
+ }
80991
+
80992
+ if (avgVol5==null) continue;
80867
80993
 
80868
80994
  totalVol+=item.Vol;
80869
- if (avgVol5>0) result[i]=totalVol/(j+1)/avgVol5*100;
80995
+ result[i]=totalVol/(j+1)/avgVol5*100;
80870
80996
  ++j;
80871
80997
  }
80872
80998
 
@@ -66414,7 +66414,8 @@ var MARKET_SUFFIX_NAME=
66414
66414
  TOCOM:".TOCOM", //东京商品交易所(TOCOM)
66415
66415
  IPE:".IPE", //美国洲际交易所 (ICE EUROPE)
66416
66416
 
66417
- TW:".TW", //台湾股票 //上午9:00——下午1:30
66417
+ TW:".TW", //台湾股票 9:00-13:30
66418
+ JP:".JP", //日本股票 9:00-11:30, 12:30-15:00
66418
66419
 
66419
66420
  ET:'.ET', //其他未知的品种
66420
66421
 
@@ -66561,6 +66562,13 @@ var MARKET_SUFFIX_NAME=
66561
66562
  return find == pos;
66562
66563
  },
66563
66564
 
66565
+ IsJP:function(upperSymbol)
66566
+ {
66567
+ var pos = upperSymbol.length - this.JP.length;
66568
+ var find = upperSymbol.indexOf(this.JP);
66569
+ return find == pos;
66570
+ },
66571
+
66564
66572
  IsSHFE: function (upperSymbol)
66565
66573
  {
66566
66574
  if (!upperSymbol) return false;
@@ -66755,6 +66763,13 @@ var MARKET_SUFFIX_NAME=
66755
66763
  if(time<820) return 1;
66756
66764
  return 2;
66757
66765
  }
66766
+ else if (this.IsJP(upperSymbol)) //日本股票 9:00-11:30 12:30-15:00
66767
+ {
66768
+ if(day == 6 || day== 0) return 0; //周末
66769
+ if(time>1520) return 3;
66770
+ if(time<830) return 1;
66771
+ return 2;
66772
+ }
66758
66773
  else if (this.IsNYMEX(upperSymbol))
66759
66774
  {
66760
66775
  return this.GetNYMEXMarketStatus(upperSymbol);
@@ -66853,6 +66868,11 @@ var MARKET_SUFFIX_NAME=
66853
66868
  return 2;
66854
66869
  },
66855
66870
 
66871
+ GetJPDecimal:function(symbol)
66872
+ {
66873
+ return 2;
66874
+ },
66875
+
66856
66876
  GetForeignExchangeDecimal:function(symbol)
66857
66877
  {
66858
66878
  return 4;
@@ -66981,7 +67001,8 @@ function MinuteTimeStringData()
66981
67001
  this.FHK=null; //港股指数期货
66982
67002
  this.ForeEx=null; //外汇
66983
67003
  this.BIT=null; //数字货币
66984
- this.TW=null;
67004
+ this.TW=null; //台湾股票
67005
+ this.JP=null; //日本股票
66985
67006
 
66986
67007
  this.Initialize = function () //初始化 默认只初始化沪深的 其他市场动态生成
66987
67008
  {
@@ -67024,6 +67045,12 @@ function MinuteTimeStringData()
67024
67045
  return this.TW;
67025
67046
  }
67026
67047
 
67048
+ this.GetJP=function(upperSymbol)
67049
+ {
67050
+ if (this.JP) this.JP=this.CreateJPData();
67051
+ return this.JP;
67052
+ }
67053
+
67027
67054
  this.GetFutures=function(splitData)
67028
67055
  {
67029
67056
  if (!this.Futures.has(splitData.Name))
@@ -67121,6 +67148,17 @@ function MinuteTimeStringData()
67121
67148
  return this.CreateTimeData(TIME_SPLIT);
67122
67149
  }
67123
67150
 
67151
+ this.CreateJPData=function()
67152
+ {
67153
+ const TIME_SPLIT =
67154
+ [
67155
+ { Start: 900, End: 1130 },
67156
+ { Start: 1230, End: 1500 }
67157
+ ];
67158
+
67159
+ return this.CreateTimeData(TIME_SPLIT);
67160
+ }
67161
+
67124
67162
  this.CreateFTSEData=function()
67125
67163
  {
67126
67164
  const TIME_SPLIT=
@@ -67229,6 +67267,7 @@ function MinuteTimeStringData()
67229
67267
  if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol)) return this.GetSHO();
67230
67268
  if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) return this.GetHK(upperSymbol);
67231
67269
  if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) return this.GetTW(upperSymbol);
67270
+ if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) return this.GetJP(upperSymbol);
67232
67271
  if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol)) return this.GetUSA(true);
67233
67272
  if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol))
67234
67273
  {
@@ -67713,6 +67752,8 @@ function MinuteCoordinateData()
67713
67752
  data=this.GetHKData(upperSymbol,width);
67714
67753
  else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol))
67715
67754
  data=this.GetTWData(upperSymbol,width);
67755
+ else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol))
67756
+ data=this.GetJPData(upperSymbol,width);
67716
67757
  else if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol) || MARKET_SUFFIX_NAME.IsCZCE(upperSymbol) || MARKET_SUFFIX_NAME.IsDCE(upperSymbol) || MARKET_SUFFIX_NAME.IsSHFE(upperSymbol))
67717
67758
  return this.GetChinatFuturesData(upperSymbol,width);
67718
67759
  else if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol))
@@ -67893,6 +67934,12 @@ function MinuteCoordinateData()
67893
67934
  {
67894
67935
  throw {Name:'MinuteCoordinateData::GetETData', Error:'not implement'};
67895
67936
  }
67937
+
67938
+ this.GetJPData=function(upperSymbol,width)
67939
+ {
67940
+ throw {Name:'MinuteCoordinateData::GetJPData', Error:'not implement'};
67941
+ }
67942
+
67896
67943
  }
67897
67944
 
67898
67945
  //国内期货不同品种 交易时间数据
@@ -70037,6 +70084,7 @@ function GetfloatPrecision(symbol) //获取小数位数
70037
70084
  else if (MARKET_SUFFIX_NAME.IsIPE(upperSymbol)) defaultfloatPrecision=g_IPETimeData.GetDecimal(upperSymbol);
70038
70085
  else if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHKDecimal(upperSymbol);
70039
70086
  else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetTWDecimal(upperSymbol);
70087
+ else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetJPDecimal(upperSymbol);
70040
70088
  else defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol);
70041
70089
 
70042
70090
  return defaultfloatPrecision;
@@ -80855,12 +80903,41 @@ function JSSymbolData(ast,option,jsExecute)
80855
80903
  if (this.ExtendData.has(volrKey)) return this.Execute.RunNextJob();
80856
80904
 
80857
80905
  var self=this;
80906
+ var dayCount=30;
80907
+ if (this.NetworkFilter)
80908
+ {
80909
+ var dateRange=this.Data.GetDateRange();
80910
+ var dayCount=1;
80911
+ if (this.DataType==HQ_DATA_TYPE.MULTIDAY_MINUTE_ID) dayCount=this.DayCount;
80912
+ var obj=
80913
+ {
80914
+ Name:'JSSymbolData::GetVolRateData', //类名:: 函数
80915
+ Explain:'分时量比数据(成交量)',
80916
+ Request:
80917
+ {
80918
+ Url:self.KLineApiUrl, Type:'POST' ,
80919
+ Data: { symbol:self.Symbol, dayCount:dayCount, field: ["name","symbol","vol"], period:0, right:0, dateRange:dateRange }
80920
+ },
80921
+ Self:this,
80922
+ PreventDefault:false
80923
+ };
80924
+ this.NetworkFilter(obj, function(recvData)
80925
+ {
80926
+ self.RecvVolRateData(recvData,volrKey);
80927
+ self.Execute.RunNextJob();
80928
+ });
80929
+
80930
+ if (obj.PreventDefault==true) return; //已被上层替换,不调用默认的网络请求
80931
+ }
80932
+
80858
80933
  JSNetwork.HttpRequest({
80859
- url: self.RealtimeApiUrl,
80934
+ url: self.KLineApiUrl,
80860
80935
  data:
80861
80936
  {
80862
- "field": ["name","symbol","avgvol5", 'date'],
80863
- "symbol": [this.Symbol]
80937
+ "field": ["name","symbol","vol"],
80938
+ "symbol": self.Symbol,
80939
+ "start": -1,
80940
+ "count": dayCount
80864
80941
  },
80865
80942
  type:"post",
80866
80943
  dataType: "json",
@@ -80879,13 +80956,54 @@ function JSSymbolData(ast,option,jsExecute)
80879
80956
 
80880
80957
  this.RecvVolRateData=function(data,key)
80881
80958
  {
80882
- if (!data.stock || data.stock.length!=1) return;
80883
- var avgVol5=data.stock[0].avgvol5;
80884
- var date=data.stock[0].date;
80885
- var item={AvgVol5:avgVol5, Date:date};
80886
- this.ExtendData.set(key,item);
80959
+ var sumVol=0,avgVol5=0;
80960
+ var mapAvgVol5=new Map();
80961
+ if (data.Ver==2.0) // {Ver:2.0 , data:[ [日期,5日vol均值]] }
80962
+ {
80963
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return;
80964
+ for(var i=0;i<data.data.length;++i)
80965
+ {
80966
+ var item=data.data[i];
80967
+ if (!IFrameSplitOperator.IsNonEmptyArray(item)) continue;
80968
+ if (item.length<2) continue;
80969
+ if (IFrameSplitOperator.IsNumber(item[0]) && IFrameSplitOperator.IsPlusNumber(item[1]))
80970
+ {
80971
+ mapAvgVol5.set(item[0],{ AvgVol5:item[1] } );
80972
+ }
80973
+ }
80974
+ }
80975
+ else
80976
+ {
80977
+ if (!IFrameSplitOperator.IsNonEmptyArray(data.data)) return;
80887
80978
 
80888
- JSConsole.Complier.Log('[JSSymbolData::RecvVolRateData]', item);
80979
+ var minuteCount=241;
80980
+ if (IFrameSplitOperator.IsNumber(data.minutecount)) minuteCount=data.minutecount;
80981
+ for(var i=0,j=0,dayCount=0;i<data.data.length;++i) //每天的5日成交均量
80982
+ {
80983
+ sumVol=0;
80984
+ for(j=i,dayCount=0;j>=0 && dayCount<5;--j, ++dayCount)
80985
+ {
80986
+ var item=data.data[j];
80987
+ if (IFrameSplitOperator.IsNumber(item[6]))
80988
+ sumVol+=item[6];
80989
+ }
80990
+
80991
+ if (dayCount>0)
80992
+ {
80993
+ avgVol5=sumVol/dayCount/minuteCount;
80994
+ var item=data.data[i];
80995
+ mapAvgVol5.set(item[0],
80996
+ {
80997
+ //for debug
80998
+ //Vol5:sumVol, MinuteCount:minuteCount,,Count:dayCount,
80999
+ AvgVol5:avgVol5
81000
+ } );
81001
+ }
81002
+ }
81003
+ }
81004
+
81005
+ if (mapAvgVol5.size>0) this.ExtendData.set(key,mapAvgVol5);
81006
+ JSConsole.Complier.Log('[JSSymbolData::RecvVolRateData]', mapAvgVol5);
80889
81007
  }
80890
81008
 
80891
81009
  this.GetVolRateCacheData=function(node)
@@ -80894,23 +81012,31 @@ function JSSymbolData(ast,option,jsExecute)
80894
81012
  if (!key || !this.ExtendData.has(key)) this.Execute.ThrowUnexpectedNode(node,'不支持VOLR');
80895
81013
 
80896
81014
  var result=[];
80897
- var value=this.ExtendData.get(key);
80898
- var avgVol5=value.AvgVol5/241;
80899
- var totalVol=0;
80900
- //5日成交总量只取了最新一天的,历史的暂时没有取,所以数据计算的时候只计算最新的一天, 其他都空
81015
+ var mapAvgVol5=this.ExtendData.get(key);
81016
+ var totalVol=0, preDate=0, avgVol5=null;
80901
81017
  for(var i=0, j=0;i<this.Data.Data.length;++i)
80902
81018
  {
80903
81019
  result[i]=null;
80904
81020
  var item=this.Data.Data[i];
80905
- var dateTime=item.DateTime; //日期加时间
80906
- if (!dateTime) continue;
80907
- var aryValue=dateTime.split(' ');
80908
- if (aryValue.length!=2) continue;
80909
- var date=parseInt(aryValue[0]);
80910
- if (date!=value.Date) continue;
81021
+ if (preDate!=item.Date)
81022
+ {
81023
+ avgVol5=null;
81024
+ j=0;
81025
+ totalVol=0;
81026
+
81027
+ if (mapAvgVol5.has(item.Date))
81028
+ {
81029
+ var volItem=mapAvgVol5.get(item.Date);
81030
+ avgVol5=volItem.AvgVol5;
81031
+ }
81032
+
81033
+ preDate=item.Date;
81034
+ }
81035
+
81036
+ if (avgVol5==null) continue;
80911
81037
 
80912
81038
  totalVol+=item.Vol;
80913
- if (avgVol5>0) result[i]=totalVol/(j+1)/avgVol5*100;
81039
+ result[i]=totalVol/(j+1)/avgVol5*100;
80914
81040
  ++j;
80915
81041
  }
80916
81042