/* copyright (c) 2018 jones http://www.apache.org/licenses/LICENSE-2.0 开源项目 https://github.com/jones2000/HQChart jones_2000@163.com 各个品种分钟走势图坐标信息 */ import { ChartData } from "./umychart.data.wechat"; function GetLocalTime(i) //得到标准时区的时间的函数 { if (typeof i !== 'number') return; var d = new Date(); //得到1970年一月一日到现在的秒数 var len = d.getTime(); //本地时间与GMT时间的时间偏移差 var offset = d.getTimezoneOffset() * 60000; //得到现在的格林尼治时间 var utcTime = len + offset; return new Date(utcTime + 3600000 * i); } var MARKET_SUFFIX_NAME= { SH:'.SH', SZ:'.SZ', SHSZ_C_Index:'.CI', //自定义指数 BJ:".BJ", //北交所 BeiJing stock exchange SHO:'.SHO', //上海交易所 股票期权 SZO:".SZO", //深证交易所 股票期权 HK:'.HK', FHK: '.FHK', //港股期货 SHFE: '.SHF', //上期所 (Shanghai Futures Exchange) SHFE2: '.SHFE', //上期所 (Shanghai Futures Exchange) CFFEX: '.CFE', //中期所 (China Financial Futures Exchange) CFFEX2:'.CFFEX', //中期所 (China Financial Futures Exchange) DCE: '.DCE', //大连商品交易所(Dalian Commodity Exchange) CZCE: '.CZC', //郑州期货交易所 GZFE:".GZFE", //广州期货交易所 USA: '.USA', //美股 FTSE: '.FTSE', //富时中国 BIT: '.BIT', //数字货币 如比特币 BIZ: '.BIZ', //数字货币 FOREX:'.FOREX', //外汇 (Foreign Exchange) NYMEX: '.NYMEX', //纽约商品期货交易所(New York Mercantile Exchange) COMEX: ".COMEX", //纽约商品期货交易所(New York Mercantile Exchange) NYBOT: ".NYBOT", //美國紐約商品交易所 CBOT: ".CBOT", //芝商所 LME:".LME", //伦敦金属交易所 TOCOM:".TOCOM", //东京商品交易所(TOCOM) IPE:".IPE", //美国洲际交易所 (ICE EUROPE) TW:".TW", //台湾股票 9:00-13:30 JP:".JP", //日本股票 9:00-11:30, 12:30-15:00 //越南股市 HSX:".HSX", //HSX胡志明交易所 HNX:".HNX", //HNX河內交易所 UPCOM:".UPCOM", //UPCOM未上市公司交易所 ET: '.ET', //其他未知的品种 IsET: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.ET) > 0; }, IsETShowAvPrice: function (upperSymbol) //是否显示均价 { return false; }, IsHSX:function(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.HSX)>0; }, IsHNX:function(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.HNX)>0; }, IsUPCOM:function(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.UPCOM)>0; }, IsNYMEX: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.NYMEX) > 0; }, IsCOMEX: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.COMEX) > 0; }, IsNYBOT: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.NYBOT) > 0; }, IsCBOT: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.CBOT) > 0; }, IsLME: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.LME) > 0; }, IsTOCOM:function(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.TOCOM)>0; }, IsIPE:function(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.IPE)>0; }, IsForeignExchange(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.FOREX) > 0; }, IsFTSE: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.FTSE) > 0; }, IsFHK: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.FHK) > 0; }, IsBIT: function (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 (upperSymbol) //是否是美股 { if (!upperSymbol) return false; return upperSymbol.indexOf(this.USA) > 0; }, IsSH: function (upperSymbol) { //需要精确匹配最后3位 var pos = upperSymbol.length-this.SH.length; var find = upperSymbol.indexOf(this.SH); return find == pos; }, IsSZ: function (upperSymbol) { var pos = upperSymbol.length - this.SZ.length; var find = upperSymbol.indexOf(this.SZ); return find == pos; }, IsBJ:function(upperSymbol) { var pos = upperSymbol.length - this.BJ.length; var find = upperSymbol.indexOf(this.BJ); return find == pos; }, //自定义指数 IsSHSZCustomIndex:function(upperSymbol) { var pos = upperSymbol.length - this.SHSZ_C_Index.length; var find = upperSymbol.indexOf(this.SHSZ_C_Index); return find == pos; }, IsSHO: function (upperSymbol) { var pos = upperSymbol.length - this.SHO.length; var find = upperSymbol.indexOf(this.SHO); return find == pos; }, IsSZO: function(upperSymbol) { var pos = upperSymbol.length - this.SZO.length; var find = upperSymbol.indexOf(this.SZO); return find == pos; }, IsHK: function (upperSymbol) { var pos = upperSymbol.length - this.HK.length; var find = upperSymbol.indexOf(this.HK); return find == pos; }, IsTW:function(upperSymbol) { var pos = upperSymbol.length - this.TW.length; var find = upperSymbol.indexOf(this.TW); return find == pos; }, IsJP:function(upperSymbol) { var pos = upperSymbol.length - this.JP.length; var find = upperSymbol.indexOf(this.JP); return find == pos; }, IsSHFE: function (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 (upperSymbol) { if (!upperSymbol) return false; if (upperSymbol.indexOf(this.CFFEX) > 0) return true; if (upperSymbol.indexOf(this.CFFEX2) > 0) return true; return false; }, IsDCE: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.DCE) > 0; }, IsCZCE: function (upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.CZCE) > 0; }, IsGZFE:function(upperSymbol) { if (!upperSymbol) return false; return upperSymbol.indexOf(this.GZFE) > 0; }, IsChinaFutures: function (upperSymbol) //是否是国内期货 { if (!upperSymbol) return false; return this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol) || this.IsGZFE(upperSymbol) ; }, IsFutures: function (upperSymbol) //是否是期货 包含国外的 { if (!upperSymbol) return false; return this.IsChinaFutures(upperSymbol) || this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) || this.IsLME(upperSymbol); }, IsSHSZ: function (upperSymbol) //是否是沪深的股票 { return this.IsSZ(upperSymbol) || this.IsSH(upperSymbol) || this.IsSHSZCustomIndex(upperSymbol); }, IsSHSZFund: function (upperSymbol) //是否是交易所基金 { if (!upperSymbol) return false; if (this.IsSH(upperSymbol)) //51XXXX.SH { if (upperSymbol.charAt(0) == '5' && upperSymbol.charAt(1) == '1') return true; } else if (this.IsSZ(upperSymbol)) //15XXXX.sz, 16XXXX.sz, 17XXXX.sz, 18XXXX.sz { if (upperSymbol.charAt(0) == '1' && (upperSymbol.charAt(1) == '5' || upperSymbol.charAt(1) == '6' || upperSymbol.charAt(1) == '7' || upperSymbol.charAt(1) == '8')) return true; } return false; }, IsSHSZIndex: function (symbol) //是否是沪深指数代码 { if (!symbol) return false; var upperSymbol = symbol.toUpperCase(); if (this.IsSH(upperSymbol)) { var temp = upperSymbol.replace('.SH', ''); if (upperSymbol.charAt(0) == '0' && parseInt(temp) <= 3000) return true; } else if (this.IsSZ(upperSymbol)) { if (upperSymbol.charAt(0) == '3' && upperSymbol.charAt(1) == '9') return true; } else if (this.IsSHSZCustomIndex(upperSymbol)) //自定义指数 { return true; } return false; }, IsSHSZStockA: function (symbol) //是否是沪深A股 { if (!symbol) return false; var upperSymbol = symbol.toUpperCase(); if (this.IsSH(upperSymbol)) { var temp = upperSymbol.replace('.SH', ''); if (upperSymbol.charAt(0) == '6') return true; } else if (this.IsSZ(upperSymbol)) { if (upperSymbol.charAt(0) == '0') { if (upperSymbol.charAt(1) == '0' && upperSymbol.charAt(2) == '2') return true; //002 中小板 if (upperSymbol.charAt(1) != '7' && upperSymbol.charAt(1) != '8') return true; } else if (upperSymbol.charAt(0)=='3') { if (upperSymbol.charAt(1)=='0') { if (upperSymbol.charAt(2)=='0') return true; //创业板 300XXX.sz if (upperSymbol.charAt(2)=='1') return true; //创业板 301XXX.sz } } } return false; }, IsBJStock:function(symbol) //北交所股票 { if (!symbol) return false; var upperSymbol=symbol.toUpperCase(); if (!this.IsBJ(upperSymbol)) return false; var value=upperSymbol.charAt(0); if (value=='4' || value=='8') return true; return false; }, IsSHStockSTAR: function (symbol) // 是否是科创板 Sci-Tech innovAtion boaRd (STAR Market) { if (!symbol) return false; var upperSymbol = symbol.toUpperCase(); if (!this.IsSH(upperSymbol)) return false; if (upperSymbol.charAt(0) == '6' && upperSymbol.charAt(1) == '8' && upperSymbol.charAt(2) == '8') return true; return false; }, GetMarketStatus: function (symbol) //获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后 { if (!symbol) return 0; var upperSymbol = symbol.toUpperCase(); var nowDate = new Date(); var day = nowDate.getDay(); var time = nowDate.getHours() * 100 + nowDate.getMinutes(); if (this.IsUSA(upperSymbol)) { var usaDate = GetLocalTime(-4); var day = usaDate.getDay(); var time = usaDate.getHours() * 100 + usaDate.getMinutes(); if (day == 6 || day == 0) return 0; //周末 //9:30 - 16:00 考虑夏令时间时间增加1小时 9:30 - 17:00 if (time > 1730) return 3; if (time < 930) return 1; return 2; } else if (this.IsBIT(upperSymbol)) //数字货币24小时 { return 2; } else if (this.IsForeignExchange(upperSymbol)) //外汇24小时 { return 2; } else if (this.IsFTSE(upperSymbol)) //富时中国 9:00-16:30 17:00-04:45 { if (day == 6 || day == 0) return 0; //周末 if (time >= 830 && time <= 2359) return 2; if (time >= 0 && time <= 500) return 2; return 0; } else if (this.IsFHK(upperSymbol)) //港股指数期货 9:15-12:00 13:00-16:30 17:15-01:00 { if (day == 6 || day == 0) return 0; //周末 if (time >= 900 && time <= 2359) return 2; if (time >= 0 && time <= 120) return 2; return 0; } else if (this.IsET(upperSymbol)) { return this.GetETMarketStatus(symbol); } else if (this.IsHK(upperSymbol)) //港股 { if (day == 6 || day == 0) return 0; //周末 if (time > 1630) return 3; if (time < 925) return 1; return 2; } else if (this.IsTW(upperSymbol)) //台湾股票 上午9:00——下午1:30 { if(day == 6 || day== 0) return 0; //周末 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 { if(day == 6 || day== 0) return 0; //周末 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.IsChinaFutures(upperSymbol)) //国内期货 { if(day == 6 || day== 0) return 0; //周末 //21:00-2:30 if(time>=2100) return 2; if (time<=240) return 2; //8:55-11:30, 13:00-15:00 if(time>=830 && time<=1510) return 2; return 1; } else //9:30 - 15:40 { if (day == 6 || day == 0) return 0; //周末 if (time > 1540) return 3; if (time < 925) return 1; return 2; } }, GetDefaultDecimal:function(symbol) { return 2; }, GetSHDecimal:function(symbol) { return 2; }, GetSZDecimal:function(symbol) { return 2; }, GetFHKDecimal: function (symbol) //港股指数期货 小数位数 { return 0; }, GetFTSEDecimal: function (symbol) //富时中国A50期货 小数位数 { return 0; }, GetForeignExchangeDecimal:function(symbol) { return 4; }, GetBITDecimal: function (symbol) { return 2; }, GetETDecimal: function (symbol) { return 2; }, GetHKDecimal:function(symbol) { return 2; }, GetTWDecimal:function(symbol) { return 2; }, GetJPDecimal:function(symbol) { return 2; }, GetHSXDecimal:function(symbol) { return 2; }, GetHNXDecimal:function(symbol) { return 2; }, GetUPCOMDecimal:function(symbol) { return 2; }, GetSHODecimal: function (symbol) { return 4; }, GetNYMEXDecimal: function (symbol) //纽约期货交易所 { return g_NYMEXTimeData.GetDecimal(symbol); }, GetCOMEXDecimal:function(symbol) { return g_COMEXTimeData.GetDecimal(symbol); }, GetNYBOTDecimal:function(symbol) { return g_NYBOTTimeData.GetDecimal(symbol); }, GetCBOTDecimal:function(symbol) { return g_CBOTTimeData.GetDecimal(symbol); }, GetLMEDecimal:function(symbol) { return g_LMETimeData.GetDecimal(symbol); }, GetTOCOMDecimal:function(symbol) { return g_TOCOMTimeData.GetDecimal(symbol); }, GetIPEDecimal:function(symbol) { return g_IPETimeData.GetDecimal(symbol); }, GetETMarketStatus: function (symbol) { // 0=闭市 1=盘前 2=盘中 3=盘后 return 2; }, GetCOMEXMarketStatus:function(symbol) { return g_COMEXTimeData.GetMarketStatus(symbol); }, GetNYBOTMarketStatus:function(symbol) { return g_NYBOTTimeData.GetMarketStatus(symbol); }, GetCBOTMarketStatus:function(symbol) { return g_CBOTTimeData.GetMarketStatus(symbol); }, GetNYMEXMarketStatus: function (symbol) { return g_NYMEXTimeData.GetMarketStatus(symbol); }, GetLimitPriceRange:function(symbol, name) //涨停范围 { if (!this.IsSHSZStockA(symbol)) return null; if (this.IsSHStockSTAR(symbol)) return {Max:0.2 , Min:-0.2}; //科创板 [20%- -20%] if (!name) return null; if (name.indexOf('ST')>=0) return { Max:0.05, Min:-0.05 }; //ST 股票 [5% - -5%] return {Max:0.1 , Min:-0.1}; //[10% - -10%] }, IsEnableRight:function(period, symbol, rightFormula) //是否支持复权 { if (!MARKET_SUFFIX_NAME.IsSHSZStockA(symbol) && !MARKET_SUFFIX_NAME.IsBJStock(symbol)) return false; if (ChartData.IsNumber(rightFormula) && rightFormula>=1) return true; //复权因子复权 if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权 //内置日线线支持复权,其他不支持复权 return false; } } //走势图分钟数据对应的时间 function MinuteTimeStringData() { this.SHSZ = null; //上海深证交易所时间 this.HK = null; //香港交易所时间 this.Futures=new Map(); //期货交易时间 key=时间名称 Value=数据 this.USA = null; //美股交易时间 this.FTSE = null; //富时中国 this.FHK = null; //港股指数期货 this.BIT=null; //数字货币 this.TW=null; //台湾股票 this.JP=null; //日本股票 this.Initialize = function () //初始化 默认只初始化沪深的 其他市场动态生成 { //this.SHSZ = this.CreateSHSZData(); //this.HK = this.CreateHKData(); } this.GetET = function (upperSymbol) //当天所有的分钟 { throw { Name: 'MinuteTimeStringData::GetET', Error: 'not implement' }; } this.GetSHSZ=function(upperSymbol) //动态创建 { 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.GetHSX=function(upperSymbol) { if (this.HSX) this.HSX=this.CreateHSXData(); return this.HSX; } this.GetHNX=function(upperSymbol) { if (this.HNX) this.HSX=this.CreateHNXData(); return this.HNX; } this.GetUPCOM=function(upperSymbol) { if (this.UPCOM) this.UPCOM=this.CreateUPCOMData(); return this.UPCOM; } 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(); 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.GetBIT=function(upperSymbol) { if (!this.BIT) this.BIT=this.CreateBITData(); return this.BIT; } this.GetForeignExchange=function() { if (!this.ForeEx) this.ForeEx=this.CreateForeignExchangeData(); return this.ForeEx; } this.CreateSHSZData = function () { const TIME_SPLIT = [ { Start: 925, End: 925 }, { Start: 930, End: 1130 }, { Start: 1300, End: 1500 } ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateSHOData = function () { const TIME_SPLIT = [ { Start: 930, End: 1129 }, { Start: 1300, End: 1500 } ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateHKData = function () { const TIME_SPLIT = [ { Start: 930, End: 1200 }, { Start: 1300, End: 1600 } ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateTWData=function() { const TIME_SPLIT = [ { Start: 900, End: 1330 } ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateJPData=function() { const TIME_SPLIT = [ { Start: 900, End: 1130 }, { Start: 1230, End: 1500 } ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateHSXData=function() { throw {Name:'MinuteTimeStringData::CreateHSXData', Error:'not implement'}; } this.CreateHNXData=function() { throw {Name:'MinuteTimeStringData::CreateHNXData', Error:'not implement'}; } this.CreateUPCOMData=function() { throw {Name:'MinuteTimeStringData::CreateUPCOMData', Error:'not implement'}; } this.CreateUSAData=function() { //美国夏令时 const TIME_SUMMER_SPLIT = [ { Start: 2130, End: 2359 }, { Start: 0, End: 400 } ]; //非夏令时 const TIME_SPLIT = [ { Start: 2230, End: 2359 }, { Start: 0, End: 500 } ]; //使用美国本地时间 const TIME_LOCAL_SPLIT = [ { Start: 930, End: 1600 } //美国东部时间9:30到16:00 ]; return this.CreateTimeData(TIME_LOCAL_SPLIT); } this.CreateFTSEData = function () { const 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-01:00 const TIME_SPLIT = [ { Start: 1715, End: 2359 }, { Start: 0, End: 100 }, { Start: 915, End: 1200 }, { Start: 1300, End: 1630 }, ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateForeignExchangeData=function() { //外汇 7:00 - 6:59 const TIME_SPLIT= [ { Start:600, End:2359 }, { Start:0, End:559 }, ]; return this.CreateTimeData(TIME_SPLIT); } this.CreateBITData=function() { //数字货币 7:00 - 6:59 const 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分钟的数据去掉 data.push(j); } } return data; } this.GetTimeData = function (symbol) { if (!symbol) return this.SHSZ; var upperSymbol = symbol.toLocaleUpperCase(); //转成大写 if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(upperSymbol) || MARKET_SUFFIX_NAME.IsSHSZIndex(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) || MARKET_SUFFIX_NAME.IsGZFE(upperSymbol)) { var splitData = g_FuturesTimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) return this.GetForeignExchange(); if (MARKET_SUFFIX_NAME.IsFTSE(upperSymbol)) return this.GetFTSE(); if (MARKET_SUFFIX_NAME.IsFHK(upperSymbol)) return this.GetFHK(); if (MARKET_SUFFIX_NAME.IsET(upperSymbol)) return this.GetET(upperSymbol); if (MARKET_SUFFIX_NAME.IsBIT(upperSymbol)) return this.GetBIT(upperSymbol); //越南股市 if (MARKET_SUFFIX_NAME.IsHSX(upperSymbol)) return this.GetHSX(upperSymbol); if (MARKET_SUFFIX_NAME.IsHNX(upperSymbol)) return this.GetHNX(upperSymbol); if (MARKET_SUFFIX_NAME.IsUPCOM(upperSymbol)) return this.GetUPCOM(upperSymbol); if (MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol)) //纽约期货交易所 { var splitData = g_NYMEXTimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol)) //纽约期货交易所 { var splitData = g_COMEXTimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol)) //纽约期货交易所 { var splitData = g_NYBOTTimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsCBOT(upperSymbol)) //芝商所 { var splitData = g_CBOTTimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsLME(upperSymbol)) //伦敦LME { var splitData = g_LMETimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol)) //东京商品交易所(TOCOM) { var splitData = g_TOCOMTimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } if (MARKET_SUFFIX_NAME.IsIPE(upperSymbol)) //东京商品交易所(TOCOM) { var splitData = g_IPETimeData.GetSplitData(upperSymbol); if (!splitData) return null; return this.GetFutures(splitData); } } } //走势图刻度分钟线 function MinuteCoordinateData() { //沪深走势图时间刻度 const SHZE_MINUTE_X_COORDINATE = { Full: //完整模式 [ [0, 0, "rgb(200,200,200)", "09:30"], [31, 0, "RGB(200,200,200)", "10:00"], [61, 0, "RGB(200,200,200)", "10:30"], [91, 0, "RGB(200,200,200)", "11:00"], [122, 1, "RGB(200,200,200)", "13:00"], [152, 0, "RGB(200,200,200)", "13:30"], [182, 0, "RGB(200,200,200)", "14:00"], [212, 0, "RGB(200,200,200)", "14:30"], [242, 1, "RGB(200,200,200)", "15:00"], // 15:00 ], Simple: //简洁模式 [ [0, 0, "rgb(200,200,200)", "09:30"], [61, 0, "RGB(200,200,200)", "10:30"], [122, 1, "RGB(200,200,200)", "13:00"], [182, 0, "RGB(200,200,200)", "14:00"], [242, 1, "RGB(200,200,200)", "15:00"] ], Min: //最小模式 [ [0, 0, "rgb(200,200,200)", "09:30"], [122, 1, "RGB(200,200,200)", "13:00"], [242, 1, "RGB(200,200,200)", "15:00"] ], Count: 243, MiddleCount: 122, GetData: function (width) { if (width < 200) return this.Min; else if (width < 400) return this.Simple; return this.Full; } }; //上海股票期权时间刻度 const SHO_MINUTE_X_COORDINATE = { Full: //完整模式 [ [0, 0, "rgb(200,200,200)", "09:30"], [30, 0, "RGB(200,200,200)", "10:00"], [60, 0, "RGB(200,200,200)", "10:30"], [90, 0, "RGB(200,200,200)", "11:00"], [120, 1, "RGB(200,200,200)", "13:00"], [150, 0, "RGB(200,200,200)", "13:30"], [180, 0, "RGB(200,200,200)", "14:00"], [210, 0, "RGB(200,200,200)", "14:30"], [240, 1, "RGB(200,200,200)", "15:00"], // 15:00 ], Simple: //简洁模式 [ [0, 0, "rgb(200,200,200)", "09:30"], [60, 0, "RGB(200,200,200)", "10:30"], [120, 1, "RGB(200,200,200)", "13:00"], [180, 0, "RGB(200,200,200)", "14:00"], [240, 1, "RGB(200,200,200)", "15:00"] ], Min: //最小模式 [ [0, 0, "rgb(200,200,200)", "09:30"], [120, 1, "RGB(200,200,200)", "13:00"], [240, 1, "RGB(200,200,200)", "15:00"] ], Count: 241, MiddleCount: 120, GetData: function (width) { if (width < 200) return this.Min; else if (width < 400) return this.Simple; return this.Full; } }; //港股走势图时间刻度 const HK_MINUTE_X_COORDINATE = { Full: //完整模式 [ [0, 1, "RGB(200,200,200)", "09:30"], [30, 0, "RGB(200,200,200)", "10:00"], [60, 1, "RGB(200,200,200)", "10:30"], [90, 0, "RGB(200,200,200)", "11:00"], [120, 1, "RGB(200,200,200)", "11:30"], [151, 0, "RGB(200,200,200)", "13:00"], [181, 1, "RGB(200,200,200)", "13:30"], [211, 0, "RGB(200,200,200)", "14:00"], [241, 1, "RGB(200,200,200)", "14:30"], [271, 0, "RGB(200,200,200)", "15:00"], [301, 1, "RGB(200,200,200)", "15:30"], [331, 1, "RGB(200,200,200)", "16:00"] ], Simple: //简洁模式 [ [0, 1, "RGB(200,200,200)", "09:30"], [60, 1, "RGB(200,200,200)", "10:30"], [120, 1, "RGB(200,200,200)", "11:30"], [211, 0, "RGB(200,200,200)", "14:00"], [271, 0, "RGB(200,200,200)", "15:00"], [331, 1, "RGB(200,200,200)", "16:00"] ], Min: //最小模式 [ [0, 1, "RGB(200,200,200)", "09:30"], [151, 0, "RGB(200,200,200)", "13:00"], [331, 1, "RGB(200,200,200)", "16:00"] ], Count: 332, MiddleCount: 151, GetData: function (width) { if (width < 200) return this.Min; else if (width < 450) return this.Simple; return this.Full; } }; //美股走势图时间刻度 const USA_MINUTE_X_COORDINATE = { /* Full: //完整模式 [ [0, 0, "rgb(200,200,200)", "21:30"], [60, 0, "RGB(200,200,200)", "22:30"], [120, 1, "RGB(200,200,200)", "23:30"], [210, 0, "RGB(200,200,200)", "01:00"], [270, 0, "RGB(200,200,200)", "02:00"], [330, 0, "RGB(200,200,200)", "03:00"], [390, 0, "RGB(200,200,200)", "04:00"], ], Simple: //简洁模式 [ [0, 0, "rgb(200,200,200)", "21:30"], [160, 1, "RGB(200,200,200)", "00:00"], [270, 0, "RGB(200,200,200)", "02:00"], [390, 0, "RGB(200,200,200)", "04:00"], ], Min: //最小模式 [ [0, 0, "rgb(200,200,200)", "21:30"], [160, 1, "RGB(200,200,200)", "00:00"], [390, 0, "RGB(200,200,200)", "04:00"], ], */ //美国本地时间 Full: //完整模式 [ [0, 0, "rgb(200,200,200)", "9:30"], [30, 0, "RGB(200,200,200)", "10:00"], [90, 1, "RGB(200,200,200)", "11:00"], [150, 0, "RGB(200,200,200)", "12:00"], [210, 0, "RGB(200,200,200)", "13:00"], [270, 0, "RGB(200,200,200)", "14:00"], [330, 0, "RGB(200,200,200)", "15:00"], [390, 0, "RGB(200,200,200)", "16:00"], ], Simple: //简洁模式 [ [30, 0, "rgb(200,200,200)", "10:00"], [150, 1, "RGB(200,200,200)", "12:00"], [270, 0, "RGB(200,200,200)", "14:00"], [390, 0, "RGB(200,200,200)", "16:00"], ], Min: //最小模式 [ [30, 0, "rgb(200,200,200)", "10:00"], [210, 1, "RGB(200,200,200)", "13:00"], [390, 0, "RGB(200,200,200)", "16:00"], ], Count: 391, MiddleCount: 211, GetData: function (width) { if (width < 200) return this.Min; else if (width < 400) return this.Simple; return this.Full; } }; //富时中国 const FTSE_MINUTE_X_COORDINATE = { Full: //完整模式 [ [0, 1, "RGB(200,200,200)", "17:00"], //[60, 0, "RGB(200,200,200)", "18:00"], [120, 1, "RGB(200,200,200)", "19:00"], //[180, 0, "RGB(200,200,200)", "20:00"], [240, 1, "RGB(200,200,200)", "21:00"], //[300, 0, "RGB(200,200,200)", "22:00"], [360, 1, "RGB(200,200,200)", "23:00"], //[420, 0, "RGB(200,200,200)", "00:00"], [480, 1, "RGB(200,200,200)", "01:00"], //[540, 0, "RGB(200,200,200)", "02:00"], [600, 1, "RGB(200,200,200)", "03:00"], //[660, 1, "RGB(200,200,200)", "04:00"], [706, 1, "RGB(200,200,200)", "09:00"], //[766, 1, "RGB(200,200,200)", "10:00"], [826, 1, "RGB(200,200,200)", "11:00"], //[886, 1, "RGB(200,200,200)", "12:00"], [946, 1, "RGB(200,200,200)", "13:00"], //[1006, 1, "RGB(200,200,200)", "14:00"], [1066, 1, "RGB(200,200,200)", "15:00"], [1156, 1, "RGB(200,200,200)", "16:30"], ], Simple: //简洁模式 [ [0, 1, "RGB(200,200,200)", "17:00"], //[60, 0, "RGB(200,200,200)", "18:00"], //[120, 1, "RGB(200,200,200)", "19:00"], //[180, 0, "RGB(200,200,200)", "20:00"], [240, 1, "RGB(200,200,200)", "21:00"], //[300, 0, "RGB(200,200,200)", "22:00"], //[360, 1, "RGB(200,200,200)", "23:30"], //[420, 0, "RGB(200,200,200)", "00:00"], [480, 1, "RGB(200,200,200)", "01:00"], //[540, 0, "RGB(200,200,200)", "02:00"], //[600, 1, "RGB(200,200,200)", "03:00"], //[660, 1, "RGB(200,200,200)", "04:00"], [706, 1, "RGB(200,200,200)", "09:00"], //[766, 1, "RGB(200,200,200)", "10:00"], //[826, 1, "RGB(200,200,200)", "11:00"], //[886, 1, "RGB(200,200,200)", "12:00"], [946, 1, "RGB(200,200,200)", "13:00"], //[1006, 1, "RGB(200,200,200)", "14:00"], //[1066, 1, "RGB(200,200,200)", "15:00"], [1156, 1, "RGB(200,200,200)", "16:30"], ], Min: //最小模式 [ [0, 1, "RGB(200,200,200)", "17:00"], [706, 1, "RGB(200,200,200)", "09:00"], [1156, 1, "RGB(200,200,200)", "16:30"], ], Count: 1157, MiddleCount: 707, GetData: function (width) { if (width < 200) return this.Min; else if (width < 450) return this.Simple; return this.Full; } }; //港股指数期货 const FHK_MINUTE_X_COORDINATE = { Full: //完整模式 [ [0, 1, "RGB(200,200,200)", "17:15"], //[45, 0, "RGB(200,200,200)", "18:00"], [105, 1, "RGB(200,200,200)", "19:00"], //[165, 0, "RGB(200,200,200)", "20:00"], [225, 1, "RGB(200,200,200)", "21:00"], //[285, 0, "RGB(200,200,200)", "22:00"], [345, 1, "RGB(200,200,200)", "23:00"], //[405, 0, "RGB(200,200,200)", "00:00"], [466, 0, "RGB(200,200,200)", "09:15"], //[511, 1, "RGB(200,200,200)", "10:00"], [571, 1, "RGB(200,200,200)", "11:00"], //[632, 1, "RGB(200,200,200)", "13:00"], [692, 1, "RGB(200,200,200)", "14:00"], //[752, 1, "RGB(200,200,200)", "15:00"], [843, 1, "RGB(200,200,200)", "16:30"], ], Simple: //简洁模式 [ [0, 1, "RGB(200,200,200)", "17:15"], //[45, 0, "RGB(200,200,200)", "18:00"], //[105, 1, "RGB(200,200,200)", "19:00"], //[165, 0, "RGB(200,200,200)", "20:00"], [225, 1, "RGB(200,200,200)", "21:00"], //[285, 0, "RGB(200,200,200)", "22:00"], //[345, 1, "RGB(200,200,200)", "23:00"], //[405, 0, "RGB(200,200,200)", "00:00"], [466, 0, "RGB(200,200,200)", "09:15"], //[511, 1, "RGB(200,200,200)", "10:00"], //[571, 1, "RGB(200,200,200)", "11:00"], [632, 1, "RGB(200,200,200)", "13:00"], //[692, 1, "RGB(200,200,200)", "14:00"], //[752, 1, "RGB(200,200,200)", "15:00"], [843, 1, "RGB(200,200,200)", "16:30"], ], Min: //最小模式 [ [0, 1, "RGB(200,200,200)", "17:15"], [466, 0, "RGB(200,200,200)", "09:15"], [843, 1, "RGB(200,200,200)", "16:30"], ], Count: 843, MiddleCount: 466, GetData: function (width) { if (width < 200) return this.Min; else if (width < 450) return this.Simple; return this.Full; } }; //外汇 const FOREX_MINUTE_X_COORDINATE= { Full: //完整模式 [ [0, 1, "RGB(200,200,200)", "06:00"], [120, 1, "RGB(200,200,200)", "08:00"], [240, 1, "RGB(200,200,200)", "10:00"], [360, 1, "RGB(200,200,200)", "12:00"], [480, 0, "RGB(200,200,200)", "14:00"], [600, 1, "RGB(200,200,200)", "16:00"], [720, 1, "RGB(200,200,200)", "18:00"], [840, 1, "RGB(200,200,200)", "20:00"], [960, 1, "RGB(200,200,200)", "22:00"], [1080, 1, "RGB(200,200,200)", "0:00"], [1200, 1, "RGB(200,200,200)", "02:00"], [1320, 1, "RGB(200,200,200)", "04:00"], ], Simple: //简洁模式 [ [0, 1, "RGB(200,200,200)", "06:00"], [240, 1, "RGB(200,200,200)", "10:00"], [480, 0, "RGB(200,200,200)", "14:00"], [720, 1, "RGB(200,200,200)", "18:00"], [960, 1, "RGB(200,200,200)", "22:00"], [1200, 1, "RGB(200,200,200)", "02:00"], ], Min: //最小模式 [ [0, 1, "RGB(200,200,200)", "06:00"], [480, 0, "RGB(200,200,200)", "14:00"], [960, 1, "RGB(200,200,200)", "22:00"], ], Count: 1440, MiddleCount: 600, GetData: function (width) { if (width < 200) return this.Min; else if (width < 450) return this.Simple; return this.Full; } } //台湾股票 const TW_MINUTE_X_COORDINATE= { Full: //完整模式 [ [0, 1, "RGB(200,200,200)", "09:00"], [30, 0, "RGB(200,200,200)", "09:30"], [60, 1, "RGB(200,200,200)", "10:00"], [90, 0, "RGB(200,200,200)", "10:30"], [120, 1, "RGB(200,200,200)", "11:00"], [150, 0, "RGB(200,200,200)", "11:30"], [180, 1, "RGB(200,200,200)", "12:00"], [210, 0, "RGB(200,200,200)", "12:30"], [240, 1, "RGB(200,200,200)", "13:00"], [270, 0, "RGB(200,200,200)", "13:30"], ], Simple: //简洁模式 [ [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: //最小模式 [ [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 (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; //默认沪深股票 } else { var upperSymbol = symbol.toLocaleUpperCase(); //转成大写 if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(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) || MARKET_SUFFIX_NAME.IsGZFE(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, width)) data = this.GetFTSEData(upperSymbol, width); else if (MARKET_SUFFIX_NAME.IsFHK(upperSymbol, width)) data = this.GetFHKData(upperSymbol, width); else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) data=this.GetForeignExchangeData(upperSymbol); else if (MARKET_SUFFIX_NAME.IsET(upperSymbol)) data = this.GetETData(upperSymbol, width); else if (MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol, width)) return data = this.GetNYMEXData(upperSymbol, width); else if (MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol,width)) return data=this.GetCOMEXData(upperSymbol,width); else if (MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol,width)) return data=this.GetNYBOTData(upperSymbol,width); else if (MARKET_SUFFIX_NAME.IsCBOT(upperSymbol,width)) return data=this.GetCBOTData(upperSymbol,width); else if (MARKET_SUFFIX_NAME.IsLME(upperSymbol,width)) 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); else if ((MARKET_SUFFIX_NAME.IsBIT(upperSymbol,width))) data=this.GetBITData(upperSymbol,width); else if (MARKET_SUFFIX_NAME.IsHSX(upperSymbol)) return data=this.GetHSXData(upperSymbol,width); else if (MARKET_SUFFIX_NAME.IsHNX(upperSymbol)) return data=this.GetHNXData(upperSymbol,width); else if (MARKET_SUFFIX_NAME.IsUPCOM(upperSymbol)) return data=this.GetUPCOMData(upperSymbol,width); } //console.log('[MiuteCoordinateData]', width); 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.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; /* if (splitData.Name =='21:00-1:00,9:00-10:15,10:30-11:30,13:30-15:00') { minWidth=250; simpleWidth=500; } */ 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;i430 && time<730) return 1; return 2; } this.AddNewFutures=function(obj) //修改或添加品种 obj={ Symbol:品种代码, Time:时间id, Decimal:小数位数, Name:名字 } { if (!obj) return; var newItem={ Symbol:obj.Symbol, Time:obj.Time, Decimal:obj.Decimal, Name:obj.Name }; for(var i=0;i300 && time<1400) return 2; } else if (find.Symbol=="CT") //美棉 21:00-14:20 { if( (time>=0 && time<=1500 ) || (time>=2000 && time<=2359) ) return 2; return 1; } return 0; } } //芝加哥期货交易所 function CBOTTimeData() { this.newMethod=NYMEXTimeData; //派生 this.newMethod(); delete this.newMethod; //标准时间 this.TIME_SPLIT= [ //ID=0 8:00-2:20 { Name:'8:00-2:20', Data: [ //6:00 - 5:00 { Start: 800, End: 2359 }, { Start: 0, End: 220 }, ], Coordinate: { Full://完整模式 [ { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } ], Simple: //简洁模式 [ { Value: 800, Text: '8:00' }, //{ Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, //{ Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, //{ Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, //{ Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' } //{ Value: 200, Text: '2:00' } ], Min: //最小模式 [ { Value: 800, Text: '8:00' }, { Value: 1800, Text: '18:00' }, { Value: 200, Text: '2:00' } ] } }, //ID=1 8:00-2:45 { Name:'8:00-2:45', Data: [ //6:00 - 5:00 { Start: 800, End: 2359 }, { Start: 0, End: 245 }, ], Coordinate: { Full://完整模式 [ { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } ], Simple: //简洁模式 [ { Value: 800, Text: '8:00' }, //{ Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, //{ Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, //{ Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, //{ Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' } //{ Value: 200, Text: '2:00' } ], Min: //最小模式 [ { Value: 800, Text: '8:00' }, { Value: 1800, Text: '18:00' }, { Value: 200, Text: '2:00' } ] } }, //ID=2 6:00-5:00 { Name:'6:00-5:00', Data: [ //6:00 - 5:00 { Start: 600, End: 2359 }, { Start: 0, End: 500 }, ], Coordinate: { Full://完整模式 [ { Value: 600, Text: '6:00' }, { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' }, { Value: 400, Text: '4:00' }, ], Simple: //简洁模式 [ { Value: 600, Text: '6:00' }, //{ Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, //{ Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, //{ Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, //{ Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, //{ Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } //{ Value: 400, Text: '4:00' }, ], Min: //最小模式 [ { Value: 600, Text: '6:00' }, { Value: 1800, Text: '18:00' }, { Value: 500, Text: '5:00' } ] } }, //ID=3 08:00-20:45 21:31-02:20 { Name:'08:00-20:45 21:31-02:20', Data: [ { Start: 800, End: 2045 }, { Start: 2131, End: 2359 }, { Start: 0, End: 220 }, ], Coordinate: { Full://完整模式 [ { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } ], Simple: //简洁模式 [ { Value: 800, Text: '8:00' }, //{ Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, //{ Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, //{ Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, //{ Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' } //{ Value: 200, Text: '2:00' } ], Min: //最小模式 [ { Value: 800, Text: '8:00' }, { Value: 1800, Text: '18:00' }, { Value: 200, Text: '2:00' } ] } }, //ID=4 8:00-20:45 21:31-2:45 { Name:'8:00-2:45', Data: [ { Start: 800, End: 2045 }, { Start: 2131, End: 2359 }, { Start: 0, End: 245 }, ], Coordinate: { Full://完整模式 [ { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } ], Simple: //简洁模式 [ { Value: 800, Text: '8:00' }, //{ Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, //{ Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, //{ Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, //{ Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' } //{ Value: 200, Text: '2:00' } ], Min: //最小模式 [ { Value: 800, Text: '8:00' }, { Value: 1800, Text: '18:00' }, { Value: 200, Text: '2:00' } ] } }, //ID=5 06:00-04:15 04:31-05:00 { Name:'06:00-04:15 04:31-05:00', Data: [ { Start: 600, End: 2359 }, { Start: 0, End: 415 }, { Start: 431, End: 500 }, ], Coordinate: { Full://完整模式 [ { Value: 600, Text: '6:00' }, { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' }, { Value: 400, Text: '4:00' }, ], Simple: //简洁模式 [ { Value: 600, Text: '6:00' }, //{ Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, //{ Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, //{ Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, //{ Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, //{ Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } //{ Value: 400, Text: '4:00' }, ], Min: //最小模式 [ { Value: 600, Text: '6:00' }, { Value: 1800, Text: '18:00' }, { Value: 500, Text: '5:00' } ] } } ] //夏令时间 this.TIME_SPLIT2= [ //ID=0 9:00-3:20 { Name:'9:00-3:20', Data: [ { Start: 900, End: 2359 }, { Start: 0, End: 320 }, ], Coordinate: { Full://完整模式 [ { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' } ], Simple: //简洁模式 [ { Value: 900, Text: '9:00' }, //{ Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, //{ Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, //{ Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, //{ Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' } //{ Value: 300, Text: '3:00' } ], Min: //最小模式 [ { Value: 900, Text: '9:00' }, { Value: 1900, Text: '19:00' }, { Value: 300, Text: '3:00' } ] } }, //ID=1 9:00-3:45 { Name:'9:00-3:45', Data: [ { Start: 900, End: 2359 }, { Start: 0, End: 345 }, ], Coordinate: { Full://完整模式 [ { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' } ], Simple: //简洁模式 [ { Value: 900, Text: '9:00' }, //{ Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, //{ Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, //{ Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, //{ Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' } //{ Value: 300, Text: '3:00' } ], Min: //最小模式 [ { Value: 900, Text: '9:00' }, { Value: 1900, Text: '19:00' }, { Value: 300, Text: '3:00' } ] } }, //ID=2 7:00-6:00 { Name:'7:00-6:00', Data: [ { Start: 700, End: 2359 }, { Start: 0, End: 600 }, ], Coordinate: { Full://完整模式 [ { Value: 700, Text: '7:00' }, { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' }, { Value: 500, Text: '5:00' } ], Simple: //简洁模式 [ { Value: 700, Text: '7:00' }, //{ Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, //{ Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, //{ Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, //{ Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, //{ Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' } //{ Value: 500, Text: '5:00' } ], Min: //最小模式 [ { Value: 700, Text: '7:00' }, { Value: 1800, Text: '18:00' }, { Value: 500, Text: '5:00' } ] } }, //ID=3 09:00-21:45 22:31-03:20 { Name:'09:00-21:45 22:31-03:20', Data: [ { Start: 900, End: 2145 }, { Start: 2231, End: 2359 }, { Start: 0, End: 320 }, ], Coordinate: { Full://完整模式 [ { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' } ], Simple: //简洁模式 [ { Value: 900, Text: '9:00' }, //{ Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, //{ Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, //{ Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, //{ Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' } //{ Value: 300, Text: '3:00' } ], Min: //最小模式 [ { Value: 900, Text: '9:00' }, { Value: 1900, Text: '19:00' }, { Value: 300, Text: '3:00' } ] } }, //ID=4 09:00-21:45 22:31-03:45 { Name:'09:00-21:45 22:31-03:45', Data: [ { Start: 900, End: 2145 }, { Start: 2231, End: 2359 }, { Start: 0, End: 345 }, ], Coordinate: { Full://完整模式 [ { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' } ], Simple: //简洁模式 [ { Value: 900, Text: '9:00' }, //{ Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, //{ Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, //{ Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, //{ Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' } //{ Value: 300, Text: '3:00' } ], Min: //最小模式 [ { Value: 900, Text: '9:00' }, { Value: 1900, Text: '19:00' }, { Value: 300, Text: '3:00' } ] } }, //ID=5 07:00-05:15 05:31-06:00 { Name:'07:00-05:15 05:31-06:00', Data: [ { Start: 700, End: 2359 }, { Start: 0, End: 515 }, { Start: 531, End: 600 }, ], Coordinate: { Full://完整模式 [ { Value: 700, Text: '7:00' }, { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' }, { Value: 500, Text: '5:00' } ], Simple: //简洁模式 [ { Value: 700, Text: '7:00' }, //{ Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, //{ Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, //{ Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, //{ Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, //{ Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' } //{ Value: 500, Text: '5:00' } ], Min: //最小模式 [ { Value: 700, Text: '7:00' }, { Value: 1800, Text: '18:00' }, { Value: 500, Text: '5:00' } ] } } ] this.FUTURES_LIST= [ { Symbol:"ZC", Decimal:2, Time:0, Name:"玉米" }, //玉米 { Symbol:"XC", Decimal:2, Time:1, Name:"迷你玉米" }, //迷你玉米 { Symbol:"ZS", Decimal:2, Time:0, Name:'大豆' }, //大豆 { Symbol:"XK", Decimal:2, Time:1, Name:"迷你大豆" }, //迷你大豆 { Symbol:"ZL", Decimal:2, Time:0, Name:"豆油"}, //豆油 { Symbol:"ZR", Decimal:2, Time:0, Name:"稻谷" }, //稻谷 { Symbol:"ZO", Decimal:2, Time:0, Name:"燕麦" }, //燕麦 { Symbol:"ZW", Decimal:2, Time:0, Name:'小麦'}, //小麦 { Symbol:"XW", Decimal:2, Time:1, Name:"迷你小麦" }, //迷你小麦 { Symbol:"ZM", Decimal:1, Time:0, Name:"豆粕" }, //豆粕 { Symbol:"EH", Decimal:3, Time:2 }, //乙醇 { Symbol:"YM", Decimal:0, Time:2, Name:"小型道指"}, //小型道指 { Symbol:"ES", Decimal:2, Time:2, Name:"小型标普" }, //小型标普 { Symbol:"NQ", Decimal:2, Time:2, Name:"小型纳指" }, //小型纳指 { Symbol:"TY", Decimal:4, Time:2, Name:"10年美国债" }, //10年美国债 { Symbol:"TU", Decimal:4, Time:2, Name:"2年美国债" }, //2年美国债 { Symbol:"FV", Decimal:4, Time:2, Name:"5年美国债" }, //5年美国债 { Symbol:"US", Decimal:4, Time:2, Name:"30年美国债" }, //30年美国债 { Symbol:"UL", Decimal:4, Time:2, Name:"超国债" }, //超国债 ] this.MarketSuffix=".CBOT"; } //伦敦金属交易所 LME function LMETimeData() { this.newMethod=NYMEXTimeData; //派生 this.newMethod(); delete this.newMethod; //标准时间 this.TIME_SPLIT= [ { Name:'LME 9:00-3:00', Data: [ { Start: 900, End: 2359 }, { Start: 0, End: 300 }, ], Coordinate: { Full://完整模式 [ { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 100, Text: '1:00' }, { Value: 300, Text: '3:00' } ], Simple: //简洁模式 [ { Value: 900, Text: '9:00' }, //{ Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, //{ Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, //{ Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, //{ Value: 2300, Text: '23:00' }, { Value: 100, Text: '1:00' } // { Value: 300, Text: '3:00' } ], Min: //最小模式 [ { Value: 900, Text: '9:00' }, { Value: 1800, Text: '18:00' }, { Value: 300, Text: '3:00' } ] } } ] //夏令 this.TIME_SPLIT= [ { Name:'LME 8:00-2:00', Data: [ { Start: 800, End: 2359 }, { Start: 0, End: 200 }, ], Coordinate: { Full://完整模式 [ { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' } ], Simple: //简洁模式 [ { Value: 800, Text: '8:00' }, //{ Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, //{ Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, //{ Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, //{ Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' } //{ Value: 200, Text: '2:00' } ], Min: //最小模式 [ { Value: 800, Text: '8:00' }, { Value: 1800, Text: '18:00' }, { Value: 200, Text: '2:00' } ] } } ] this.FUTURES_LIST= [ { Symbol:"SN", Decimal:0, Time:0, Name:"LME锡" }, //综合锡03 { Symbol:"AH", Decimal:2, Time:0, Name:"LME铝" }, //综合铝03 { Symbol:"PB", Decimal:2, Time:0, Name:"LME铅" }, //综合铅03 { Symbol:"ZS", Decimal:2, Time:0, Name:"LME锌" }, //综合锌03 { Symbol:"CA", Decimal:2, Time:0, Name:"LME铜" }, //综合铜03 { Symbol:"NI", Decimal:0, Time:0, Name:"LME镍" }, //综合镍03 ] this.MarketSuffix=".LME"; } //东京商品交易所(TOCOM) function TOCOMTimeData() { this.newMethod=NYMEXTimeData; //派生 this.newMethod(); delete this.newMethod; this.TimeType=0; this.TIME_SPLIT= [ //ID=0 15:30-04:30 07:46-14:15 { Name:'15:30-04:30 07:46-14:15', Data: [ { Start: 1530, End: 2359}, { Start: 0, End: 430 }, { Start: 746, End: 1415 }, ], Coordinate: { Full://完整模式 [ { Value: 1530, Text: '15:30' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 100, Text: '1:00' }, { Value: 300, Text: '3:00' }, { Value: 430, Text: '4:30' }, { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1415, Text: '14:15' } ], Simple: //简洁模式 [ { Value: 1530, Text: '15:30' }, { Value: 1900, Text: '19:00' }, { Value: 2300, Text: '23:00' }, { Value: 100, Text: '1:00' }, { Value: 430, Text: '4:30' }, { Value: 1100, Text: '11:00' }, { Value: 1415, Text: '14:15' } ], Min: //最小模式 [ { Value: 1530, Text: '15:30' }, { Value: 100, Text: '1:00' }, { Value: 1415, Text: '14:15' } ] } } ]; this.FUTURES_LIST= [ { Symbol:"JRV", Decimal:0, Time:0, Name:"东京TSR20橡胶" }, { Symbol:"JPL", Decimal:0, Time:0, Name:"东京铂金" }, { Symbol:"JAU", Decimal:0, Time:0, Name:"东京黄金" }, { Symbol:"JCO", Decimal:0, Time:0, Name:"中东原油" }, { Symbol:"JRU", Decimal:1, Time:0, Name:"东京RSS3橡胶橡胶" }, { Symbol:"JAG", Decimal:1, Time:0, Name:"日白银" } , { Symbol:"JPA", Decimal:1, Time:0, Name:"日钯金" } ] this.MarketSuffix=".TOCOM"; } //美国洲际交易所(ICE EUROPE) function IPETimeData() { this.newMethod=NYMEXTimeData; //派生 this.newMethod(); delete this.newMethod; this.MarketSuffix=".IPE"; //美国标准时间 this.TIME_SPLIT= [ //ID=0 8:00-6:00 { Name:'8:00-6:00', Data: [ { Start: 800, End: 2359 }, { Start: 0, End: 600 }, ], Coordinate: { Full://完整模式 [ { Value: 800, Text: '8:00' }, { Value: 1000, Text: '10:00' }, { Value: 1200, Text: '12:00' }, { Value: 1400, Text: '14:00' }, { Value: 1600, Text: '16:00' }, { Value: 1800, Text: '18:00' }, { Value: 2000, Text: '20:00' }, { Value: 2200, Text: '22:00' }, { Value: 0, Text: '0:00' }, { Value: 200, Text: '2:00' }, { Value: 400, Text: '4:00' }, { Value: 600, Text: '6:00' }, ], Simple: //简洁模式 [ { Value: 800, Text: '8:00' }, { Value: 1200, Text: '12:00' }, { Value: 1600, Text: '16:00' }, { Value: 2000, Text: '20:00' }, { Value: 0, Text: '0:00' }, { Value: 400, Text: '4:00' }, { Value: 600, Text: '6:00' }, ], Min: //最小模式 [ { Value: 800, Text: '8:00' }, { Value: 2000, Text: '20:00' }, { Value: 600, Text: '6:00' } ] } } ] //美国夏时令 this.TIME_SPLIT2= [ //ID=0 09:00-07:00 { Name:'09:00-07:00', Data: [ { Start: 900, End: 2359 }, { Start: 0, End: 700 }, ], Coordinate: { Full://完整模式 [ { Value: 900, Text: '9:00' }, { Value: 1100, Text: '11:00' }, { Value: 1300, Text: '13:00' }, { Value: 1500, Text: '15:00' }, { Value: 1700, Text: '17:00' }, { Value: 1900, Text: '19:00' }, { Value: 2100, Text: '21:00' }, { Value: 2300, Text: '23:00' }, { Value: 1, Text: '1:00' }, { Value: 300, Text: '3:00' }, { Value: 500, Text: '5:00' }, { Value: 700, Text: '7:00' } ], Simple: //简洁模式 [ { Value: 900, Text: '9:00' }, { Value: 1300, Text: '13:00' }, { Value: 1700, Text: '17:00' }, { Value: 2100, Text: '21:00' }, { Value: 1, Text: '1:00' }, { Value: 500, Text: '5:00' }, { Value: 700, Text: '7:00' } ], Min: //最小模式 [ { Value: 900, Text: '9:00' }, { Value: 2100, Text: '21:00' }, { Value: 700, Text: '7:00' } ] } } ] this.FUTURES_LIST= [ { Symbol:"RC", Decimal:2, Time:0, Name:"罗布斯塔咖啡" }, { Symbol:"W", Decimal:2, Time:0, Name:"白糖" }, { Symbol:"C", Decimal:2, Time:0, Name:"伦敦可可" }, { Symbol:"R", Decimal:2, Time:0, Name:"长期英国国债" }, { Symbol:"L", Decimal:2, Time:0, Name:"3个月英镑利率" }, { Symbol:"T", Decimal:2, Time:0, Name:"WTI原油" }, { Symbol:"G", Decimal:2, Time:0, Name:"低硫柴油" }, { Symbol:"B", Decimal:2, Time:0, Name:"布伦特原油" } ] } var g_MinuteTimeStringData = new MinuteTimeStringData(); var g_MinuteCoordinateData = new MinuteCoordinateData(); var g_FuturesTimeData = new FuturesTimeData(); var g_NYMEXTimeData = new NYMEXTimeData(); var g_COMEXTimeData=new COMEXTimeData(); var g_NYBOTTimeData=new NYBOTTimeData(); var g_CBOTTimeData=new CBOTTimeData(); var g_LMETimeData=new LMETimeData(); var g_TOCOMTimeData=new TOCOMTimeData(); var g_IPETimeData=new IPETimeData(); function GetfloatPrecision(symbol) //获取小数位数 { var defaultfloatPrecision = 2; //默认2位 if (!symbol) return defaultfloatPrecision; var upperSymbol = symbol.toUpperCase(); //全部由外部控制 if (typeof(MARKET_SUFFIX_NAME.GetCustomDecimal)=='function') return MARKET_SUFFIX_NAME.GetCustomDecimal(upperSymbol); if (MARKET_SUFFIX_NAME.IsSHSZFund(upperSymbol)) defaultfloatPrecision = 3; //基金3位小数 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); //期货小数位数读配置 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.IsForeignExchange(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetForeignExchangeDecimal(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.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.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 if (MARKET_SUFFIX_NAME.IsHSX(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHSXDecimal(upperSymbol); else if (MARKET_SUFFIX_NAME.IsHNX(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHNXDecimal(upperSymbol); else if (MARKET_SUFFIX_NAME.IsUPCOM(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetUPCOMDecimal(upperSymbol); else if (MARKET_SUFFIX_NAME.IsSZ(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetSZDecimal(upperSymbol); else if (MARKET_SUFFIX_NAME.IsSH(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetSHDecimal(upperSymbol); else defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol); return defaultfloatPrecision; } //导出统一使用JSCommon命名空间名 var JSCommonCoordinateData= { MinuteCoordinateData: g_MinuteCoordinateData, MinuteTimeStringData: g_MinuteTimeStringData, MARKET_SUFFIX_NAME: MARKET_SUFFIX_NAME, GetfloatPrecision: GetfloatPrecision }; export { JSCommonCoordinateData, MARKET_SUFFIX_NAME, g_FuturesTimeData, g_NYMEXTimeData, g_COMEXTimeData, g_NYBOTTimeData, g_LMETimeData, g_CBOTTimeData, g_TOCOMTimeData, g_IPETimeData, GetfloatPrecision, g_MinuteCoordinateData, g_MinuteTimeStringData }; /* module.exports = { JSCommonCoordinateData: { MinuteCoordinateData: g_MinuteCoordinateData, MinuteTimeStringData: g_MinuteTimeStringData, MARKET_SUFFIX_NAME: MARKET_SUFFIX_NAME, GetfloatPrecision: GetfloatPrecision }, JSCommonCoordinateData_MARKET_SUFFIX_NAME: MARKET_SUFFIX_NAME, JSCommonCoordinateData_Global_FuturesTimeData: g_FuturesTimeData, JSCommonCoordinateData_Global_NYMEXTimeData: g_NYMEXTimeData, JSCommonCoordinateData_Global_COMEXTimeData: g_COMEXTimeData, JSCommonCoordinateData_Global_NYBOTTimeData: g_NYBOTTimeData, JSCommonCoordinateData_Global_LMETimeData: g_LMETimeData, JSCommonCoordinateData_Global_CBOTTimeData: g_CBOTTimeData, JSCommonCoordinateData_Global_TOCOMTimeData: g_TOCOMTimeData, JSCommonCoordinateData_Global_IPETimeData: g_IPETimeData, JSCommonCoordinateData_GetfloatPrecision: GetfloatPrecision, }; */