1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443 |
- /*
- copyright (c) 2018 jones
- http://www.apache.org/licenses/LICENSE-2.0
- 开源项目 https://github.com/jones2000/HQChart
- jones_2000@163.com
- 各个品种分钟走势图坐标信息
- */
- 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', //自定义指数
- SHO:'.SHO', //上海交易所 股票期权
- HK:'.HK',
- FHK: '.FHK', //港股期货
- SHFE: '.SHF', //上期所 (Shanghai Futures Exchange)
- SHFE2: '.SHFE', //上期所 (Shanghai Futures Exchange)
- CFFEX: '.CFE', //中期所 (China Financial Futures Exchange)
- DCE: '.DCE', //大连商品交易所(Dalian Commodity Exchange)
- CZCE: '.CZC', //郑州期货交易所
- USA: '.USA', //美股
- FTSE: '.FTSE', //富时中国
- BIT: '.BIT', //数字货币 如比特币
- BIZ: '.BIZ', //数字货币
- NYMEX: '.NYMEX', //纽约商品期货交易所(New York Mercantile Exchange)
- COMEX: ".COMEX", //纽约商品期货交易所(New York Mercantile Exchange)
- NYBOT: ".NYBOT", //美國紐約商品交易所
- CBOT: ".CBOT", //芝商所
- LME: ".LME", //伦敦金属交易所
- ET: '.ET', //其他未知的品种
- IsET: function (upperSymbol)
- {
- if (!upperSymbol) return false;
- return upperSymbol.indexOf(this.ET) > 0;
- },
- IsETShowAvPrice: function (upperSymbol) //是否显示均价
- {
- return false;
- },
- 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;
- },
- 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;
- },
- //自定义指数
- 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;
- },
- IsHK: function (upperSymbol)
- {
- var pos = upperSymbol.length - this.HK.length;
- var find = upperSymbol.indexOf(this.HK);
- 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;
- return upperSymbol.indexOf(this.CFFEX) > 0;
- },
- 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;
- },
- IsChinaFutures: function (upperSymbol) //是否是国内期货
- {
- return this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol);
- },
- IsFutures: function (upperSymbol) //是否是期货 包含国外的
- {
- 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;
- }
- }
- 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.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.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;
- },
-
- GetFHKDecimal: function (symbol) //港股指数期货 小数位数
- {
- return 0;
- },
- GetFTSEDecimal: function (symbol) //富时中国A50期货 小数位数
- {
- return 0;
- },
- GetBITDecimal: function (symbol)
- {
- return 2;
- },
- GetETDecimal: 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);
- },
- 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%]
- },
- }
- //走势图分钟数据对应的时间
- 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.Initialize = function () //初始化 默认只初始化沪深的 其他市场动态生成
- {
- //this.SHSZ = this.CreateSHSZData();
- //this.HK = this.CreateHKData();
- }
- this.GetET = function (upperSymbol) //当天所有的分钟
- {
- throw { Name: 'MinuteTimeStringData::GetET', Error: 'not implement' };
- }
- this.GetSHSZ=function() //动态创建
- {
- if (!this.SHSZ) this.SHSZ=this.CreateSHSZData();
- return this.SHSZ;
- }
- this.GetSHO = function ()
- {
- if (!this.SHO) this.SHO = this.CreateSHOData();
- return this.SHO;
- }
- this.GetHK=function()
- {
- if (!this.HK) this.HK = this.CreateHKData();
- return this.HK;
- }
- 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.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.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.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();
- if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) return this.GetHK();
- 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.IsET(upperSymbol)) return this.GetET(upperSymbol);
- if (MARKET_SUFFIX_NAME.IsBIT(upperSymbol)) return this.GetBIT(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);
- }
- }
- }
- //走势图刻度分钟线
- 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 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;
- }
- };
- 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.IsSHO(upperSymbol))
- data = this.GetSHOData(upperSymbol, width);
- else if (MARKET_SUFFIX_NAME.IsHK(upperSymbol))
- data = HK_MINUTE_X_COORDINATE;
- 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, width))
- data = this.GetFTSEData(upperSymbol, width);
- else if (MARKET_SUFFIX_NAME.IsFHK(upperSymbol, width))
- data = this.GetFHKData(upperSymbol, width);
- 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.IsBIT(upperSymbol,width)))
- data=this.GetBITData(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.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;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.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.GetETData = function (upperSymbol, width)
- {
- throw { Name: 'MinuteCoordinateData::GetETData', Error: 'not implement' };
- }
- this.GetBITData=function(upperSymbol,width)
- {
- throw { Name: 'MinuteCoordinateData::GetBITData', Error: 'not implement' };
- }
- this.GetUSAData = function (upperSymbol, width)
- {
- var result = USA_MINUTE_X_COORDINATE;
- return result;
- }
- this.GetSHOData = function (upperSymbol, width)
- {
- var result = SHO_MINUTE_X_COORDINATE;
- return result;
- }
- }
- //期货不同品种 交易时间数据
- function FuturesTimeData()
- {
- this.TIME_SPLIT=
- [
- {
- Name:'9:00-10:15,10:30-11:30,13:30-15:00',
- Data:
- [
- //9:00-10:15,10:30-11:30,13:30-15:00
- { Start: 900, End: 1015 },
- { Start: 1031, End: 1130 },
- { Start: 1331, End: 1500 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 900, Text: '9:00' },
- { Value: 930, Text: '9:30' },
- { Value: 1000, Text: '10:00' },
- { Value: 1031, Text: '10:30' },
- { Value: 1100, Text: '11:00' },
- { Value: 1331, Text: '13:30' },
- { Value: 1400, Text: '14:00' },
- { Value: 1430, Text: '14:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Simple: //简洁模式
- [
- { Value: 900, Text: '9:00' },
- { Value: 1000, Text: '10:00' },
- { Value: 1331, Text: '13:30' },
- { Value: 1430, Text: '14:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Min: //最小模式
- [
- { Value: 900, Text: '9:00' },
- { Value: 1331, Text: '13:30' },
- { Value: 1500, Text: '15:00' },
- ]
- }
- },
- {
- Name:'9:15-11:30,13:00-15:15',
- Data:
- [
- { Start: 915, End: 1130 },
- { Start: 1301, End: 1515 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 930, Text: '9:30' },
- { Value: 1000, Text: '10:00' },
- { Value: 1030, Text: '10:30' },
- { Value: 1100, Text: '11:00' },
- { Value: 1301, Text: '13:00' },
- { Value: 1330, Text: '13:30' },
- { Value: 1400, Text: '14:00' },
- { Value: 1430, Text: '14:30' },
- { Value: 1515, Text: '15:15' },
- ],
- Simple: //简洁模式
- [
- { Value: 930, Text: '9:30' },
- { Value: 1030, Text: '10:30' },
- { Value: 1301, Text: '13:00' },
- { Value: 1400, Text: '14:00' },
- { Value: 1515, Text: '15:15' },
- ],
- Min: //最小模式
- [
- { Value: 930, Text: '9:30' },
- { Value: 1301, Text: '13:00' },
- { Value: 1515, Text: '15:15' },
- ]
- }
- },
- {
- Name:'9:30-11:30,13:00-15:00',
- Data:
- [
- { Start: 930, End: 1130 },
- { Start: 1301, End: 1500 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 930, Text: '9:30' },
- { Value: 1000, Text: '10:00' },
- { Value: 1030, Text: '10:30' },
- { Value: 1100, Text: '11:00' },
- { Value: 1301, Text: '13:00' },
- { Value: 1330, Text: '13:30' },
- { Value: 1400, Text: '14:00' },
- { Value: 1430, Text: '14:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Simple: //简洁模式
- [
- { Value: 930, Text: '9:30' },
- { Value: 1030, Text: '10:30' },
- { Value: 1301, Text: '13:00' },
- { Value: 1400, Text: '14:00' },
- { Value: 1500, Text: '15:00' },
- ],
- Min: //最小模式
- [
- { Value: 930, Text: '9:30' },
- { Value: 1301, Text: '13:00' },
- { Value: 1500, Text: '15:00' },
- ]
- }
- },
- {
- Name:'21:00-23:30,9:00-10:15,10:30-11:30,13:30-15:00',
- Data:
- [
- { Start: 2100, End: 2330 },
- { Start: 901, End: 1015 },
- { Start: 1031, End: 1130 },
- { Start: 1331, End: 1500 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2200, Text: '22:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1031, Text: '10:30' },
- { Value: 1331, Text: '13:30' },
- { Value: 1430, Text: '14:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Simple: //简洁模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1331, Text: '13:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Min: //最小模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1500, Text: '15:00' },
- ]
- }
- },
- {
- Name:'21:00-1:00,9:00-10:15,10:30-11:30,13:30-15:00',
- Data:
- [
- { Start: 2100, End: 2359 },
- { Start: 0, End: 100 },
- { Start: 901, End: 1015 },
- { Start: 1031, End: 1130 },
- { Start: 1301, End: 1500 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2200, Text: '22:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1030, Text: '10:30' },
- { Value: 1331, Text: '13:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Simple: //简洁模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1031, Text: '10:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Min: //最小模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1500, Text: '15:00' },
- ]
- }
- },
- {
- Name:'21:00-2:30,9:00-10:15,10:30-11:30,13:30-15:00',
- Data:
- [
- { Start: 2100, End: 2359 },
- { Start: 0, End: 230 },
- { Start: 901, End: 1015 },
- { Start: 1031, End: 1130 },
- { Start: 1331, End: 1500 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 100, Text: '1:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1031, Text: '10:30' },
- { Value: 1331, Text: '13:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Simple: //简洁模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1100, Text: '11:00' },
- { Value: 1500, Text: '15:00' },
- ],
- Min: //最小模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 901, Text: '9:00' },
- { Value: 1500, Text: '15:00' },
- ]
- }
- },
- {
- Name: '21:00-23:00,9:00-10:15,10:30-11:30,13:30-15:00',
- Data:
- [
- { Start: 2100, End: 2300 },
- { Start: 901, End: 1015 },
- { Start: 1031, End: 1130 },
- { Start: 1331, End: 1500 }
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2200, Text: '22:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 1031, Text: '10:30' },
- { Value: 1331, Text: '13:30' },
- { Value: 1430, Text: '14:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Simple: //简洁模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 1331, Text: '13:30' },
- { Value: 1500, Text: '15:00' },
- ],
- Min: //最小模式
- [
- { Value: 2100, Text: '21:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 1500, Text: '15:00' },
- ]
- }
- }
- ];
- this.MAP_TWOWORDS = new Map([
- //大连商品交易所
- [MARKET_SUFFIX_NAME.DCE + '-JD', {Time:0,Decimal:0,Name:"鸡蛋"}],
- [MARKET_SUFFIX_NAME.DCE + '-FB', {Time:0,Decimal:2,Name:"纤板"}],
- [MARKET_SUFFIX_NAME.DCE + '-BB', {Time:0,Decimal:2,Name:"胶板"}],
- [MARKET_SUFFIX_NAME.DCE + '-PP', {Time:6,Decimal:0,Name:"丙烯"}],
- [MARKET_SUFFIX_NAME.DCE + '-JM', {Time:6,Decimal:1,Name:'焦煤'}],
- [MARKET_SUFFIX_NAME.DCE + '-EG', {Time:6,Decimal:0,Name:'乙二醇'}],
- [MARKET_SUFFIX_NAME.DCE + '-EB', {Time:6,Decimal:0,Name:'苯乙烯'}],
- [MARKET_SUFFIX_NAME.DCE + '-CS', {Time:6,Decimal:0,Name:'淀粉'}],
- [MARKET_SUFFIX_NAME.DCE + '-PG', {Time:6,Decimal:0,Name:'液化气'}],
- [MARKET_SUFFIX_NAME.DCE + '-RR', {Time:6,Decimal:0,Name:'梗米'}],
- //上期所
- [MARKET_SUFFIX_NAME.SHFE + '-CU', { Time: 4, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-AL', { Time: 4, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-NI', { Time: 4, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-SN', { Time: 4, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-ZN', { Time: 4, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-PB', { Time: 4, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-RU', { Time: 6, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-FU', { Time: 6, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-RB', { Time: 6, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-BU', { Time: 6, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-HC', { Time: 6, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-WR', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-AG', { Time: 5, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.SHFE + '-AU', { Time: 5, Decimal: 2 }],
- [MARKET_SUFFIX_NAME.SHFE + '-SP', { Time: 5, Decimal: 2 }],
- [MARKET_SUFFIX_NAME.SHFE + '-SS', { Time: 5, Decimal: 2 }],
- //上期能源
- [MARKET_SUFFIX_NAME.SHFE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
- [MARKET_SUFFIX_NAME.SHFE + '-SC', {Time:6,Decimal:1,Name:'中质含硫原油'}],
- [MARKET_SUFFIX_NAME.SHFE + '-LU', {Time:6,Decimal:0,Name:'低硫燃料油'}],
- [MARKET_SUFFIX_NAME.SHFE + '-BC', {Time:6,Decimal:0,Name:'国际铜'}],
- //郑州期货交易所
- [MARKET_SUFFIX_NAME.CZCE + '-CF', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-SR', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-MA', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-ZC', { Time: 3, Decimal: 1 }],
- [MARKET_SUFFIX_NAME.CZCE + '-TA', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-RM', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-OI', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-ME', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-FG', { Time: 3, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-WS', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-WT', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-GN', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-RO', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-RS', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-ER', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-RI', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-WH', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-AP', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-PM', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-QM', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-TC', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-JR', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-LR', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-SF', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-SM', { Time: 0, Decimal: 0 }],
- [MARKET_SUFFIX_NAME.CZCE + '-PK', { Time: 0, Decimal: 0, Name:"花生" }],
- [MARKET_SUFFIX_NAME.CZCE + '-CJ', { Time: 0, Decimal: 0, Name:"红枣"}],
- [MARKET_SUFFIX_NAME.CZCE + '-CY', { Time: 0, Decimal: 0, Name:"棉纱" }],
- [MARKET_SUFFIX_NAME.CZCE + '-UR', { Time: 0, Decimal: 0, Name:"尿素" }],
- [MARKET_SUFFIX_NAME.CZCE + '-PF', { Time: 0, Decimal: 0, Name:"短纤" }],
- [MARKET_SUFFIX_NAME.CZCE + '-SA', { Time: 0, Decimal: 0, Name:"纯碱" }],
-
- //中期所
- [MARKET_SUFFIX_NAME.CFFEX + '-TF', {Time:1,Decimal:3,Name:"二债"}],
- [MARKET_SUFFIX_NAME.CFFEX + '-TS', {Time:1,Decimal:3,Name:"五债"}],
- [MARKET_SUFFIX_NAME.CFFEX + '-IH', {Time:2,Decimal:1,Name:'上证股指期货'}],
- [MARKET_SUFFIX_NAME.CFFEX + '-IC', {Time:2,Decimal:1,Name:'中证股指期货'}],
- [MARKET_SUFFIX_NAME.CFFEX + '-IF', {Time:2,Decimal:1,Name:'沪深股指期货'}],
- ]);
- this.MAP_ONEWORD = new Map([
- //大连商品交易所
- [MARKET_SUFFIX_NAME.DCE + '-C', {Time:6,Decimal:0,Name:"玉米"}],
- [MARKET_SUFFIX_NAME.DCE + '-L', {Time:6,Decimal:0,Name:"乙烯"}],
- [MARKET_SUFFIX_NAME.DCE + '-V', {Time:6,Decimal:0,Name:"PVC"}],
- [MARKET_SUFFIX_NAME.DCE + '-A', {Time:6,Decimal:0,Name:"豆一"}],
- [MARKET_SUFFIX_NAME.DCE + '-B', {Time:6,Decimal:0,Name:"豆二"}],
- [MARKET_SUFFIX_NAME.DCE + '-M', {Time:6,Decimal:0,Name:"豆粕"}],
- [MARKET_SUFFIX_NAME.DCE + '-Y', {Time:6,Decimal:0,Name:"豆油"}],
- [MARKET_SUFFIX_NAME.DCE + '-P', {Time:6,Decimal:0,Name:"棕榈"}],
- [MARKET_SUFFIX_NAME.DCE + '-J', {Time:6,Decimal:1,Name:'焦炭'}],
- [MARKET_SUFFIX_NAME.DCE + '-I', {Time:6,Decimal:1,Name:"铁矿"}],
- //中期所
- [MARKET_SUFFIX_NAME.CFFEX + '-T', { Time: 1, Decimal: 3, Name:"十债"}],
- ]);
- this.GetData = function (upperSymbol)
- {
- var oneWord = upperSymbol.charAt(0);
- var twoWords = upperSymbol.substr(0, 2);
- var oneWordName = null, twoWordsName = null;
- if (MARKET_SUFFIX_NAME.IsDCE(upperSymbol)) //大连商品交易所
- {
- oneWordName = MARKET_SUFFIX_NAME.DCE + '-' + oneWord;
- twoWordsName = MARKET_SUFFIX_NAME.DCE + '-' + twoWords;
- }
- else if (MARKET_SUFFIX_NAME.IsSHFE(upperSymbol)) //上期所
- {
- oneWordName = MARKET_SUFFIX_NAME.SHFE + '-' + oneWord;
- twoWordsName = MARKET_SUFFIX_NAME.SHFE + '-' + twoWords;
- }
- else if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol)) //中期所
- {
- oneWordName = MARKET_SUFFIX_NAME.CFFEX + '-' + oneWord;
- twoWordsName = MARKET_SUFFIX_NAME.CFFEX + '-' + twoWords;
- }
- else if (MARKET_SUFFIX_NAME.IsCZCE(upperSymbol)) //郑州期货交易所
- {
- oneWordName = MARKET_SUFFIX_NAME.CZCE + '-' + oneWord;
- twoWordsName = MARKET_SUFFIX_NAME.CZCE + '-' + twoWords;
- }
- if (this.MAP_TWOWORDS.has(twoWordsName))
- {
- return this.MAP_TWOWORDS.get(twoWordsName);
- }
- if (this.MAP_ONEWORD.has(oneWordName))
- {
- return this.MAP_ONEWORD.get(oneWordName);
- }
- return null;
- }
- this.GetSplitData = function (upperSymbol)
- {
- var data = this.GetData(upperSymbol);
- if (!data) return null;
- return this.TIME_SPLIT[data.Time];
- }
- this.GetDecimal = function (upperSymbol) //期货价格小数位数
- {
- var data = this.GetData(upperSymbol);
- if (!data) return 2;
- return data.Decimal;
- }
- //添加新品种
- this.AddNewFutures=function(obj) //{ Suffix:后缀, Symbol:品种代码, Time:交易时间段, Decimal:小数位数, Name:名字 }
- {
- if (!obj) return;
- var key=obj.Suffix+'-'+obj.Symbol;
- var item={ Time:obj.Time, Decimal:obj.Decimal, Name:obj.Name };
- if (obj.Symbol.length==1)
- {
- this.MAP_ONEWORD.set(key, item);
- }
- else if (obj.Symbol.length==2)
- {
- this.MAP_TWOWORDS.set(key, item);
- }
- }
- }
- //纽约商品期货交易所 交易时间数据
- function NYMEXTimeData()
- {
- this.MarketSuffix=".NYMEX";
- this.TimeType=0; // 0=标准时间 1=夏令时间
- //美国标准时间
- this.TIME_SPLIT =
- [
- {
- 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' }
- ]
- }
- }
- ]
- //美国夏时令
- this.TIME_SPLIT2=
- [
- {
- Name:'7:00-6:00',
- Data:
- [
- //6:00 - 5:00
- { 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: 1900, Text: '19:00' },
- { Value: 500, Text: '5:00' }
- ]
- }
- }
- ]
- this.FUTURES_LIST=
- [
- { Symbol:"CL", Decimal:2, Time:0 }, //原油
- { Symbol:"NG", Decimal:3, Time:0 }, //天然气
- { Symbol:"RB", Decimal:4, Time:0 }, //汽油
- { Symbol:"PL", Decimal:1, Time:0 }, //铂金
- { Symbol:"PA", Decimal:2, Time:0 }, //钯金
- { Symbol:"HR", Decimal:0, Time:0 }, //热轧钢卷
- { Symbol:"QM", Decimal:3, Time:0 }, //迷你原油
- { Symbol:"HO", Decimal:4, Time:0 }, //燃油
- ]
- this.GetFuturesInfo=function(upperSymbol)
- {
- if (upperSymbol.indexOf(this.MarketSuffix)<=0) return null;
- for(var i in this.FUTURES_LIST)
- {
- var item=this.FUTURES_LIST[i];
- if (upperSymbol.indexOf(item.Symbol)==0)
- {
- return item;
- }
- }
- return null;
- }
- this.GetSplitData = function (upperSymbol)
- {
- //夏令和标准时间切换
- var timeSplit=this.TimeType==0 ? this.TIME_SPLIT : this.TIME_SPLIT2;
- var find=this.GetFuturesInfo(upperSymbol);
- if (find) return timeSplit[find.Time];
- return timeSplit[0];
- }
- this.GetDecimal = function (upperSymbol)
- {
- var find=this.GetFuturesInfo(upperSymbol);
- if (find) return find.Decimal;
- return 3;
- }
- this.GetMarketStatus = function (upperSymbol) // 0=闭市 1=盘前 2=盘中 3=盘后
- {
- var usaDate=GetLocalTime(-4); //需要转成美国时间的 周6 周日
- var nowDate= new Date();
- var day = usaDate.getDay();
- var time = nowDate.getHours() * 100 + nowDate.getMinutes();
- if(day == 6 || day== 0) return 0; //周末
- if(time>430 && time<730) return 1;
- return 2;
- }
- }
- function COMEXTimeData()
- {
- this.newMethod=NYMEXTimeData; //派生
- this.newMethod();
- delete this.newMethod;
- this.FUTURES_LIST=
- [
- { Symbol:"GC", Decimal:1, Time:0 }, //COMEX黄金
- { Symbol:"QO", Decimal:2, Time:0 }, //迷你黄金
- { Symbol:"MG", Decimal:1, Time:0 }, //微型黄金
- { Symbol:"QI", Decimal:4, Time:0 }, //迷你白银
- { Symbol:"SI", Decimal:3, Time:0 }, //COMEX白银
- { Symbol:"QI", Decimal:4, Time:0 }, //迷你白银
- { Symbol:"HG", Decimal:4, Time:0 } //COMEX铜
- ]
- this.MarketSuffix=".COMEX";
- }
- function NYBOTTimeData()
- {
- this.newMethod=NYMEXTimeData; //派生
- this.newMethod();
- delete this.newMethod;
- //美国标准时间
- this.TIME_SPLIT=
- [
- {
- Name:'9:00-2:20',
- Data:
- [
- //9:00-2:20
- { Start: 900, End: 2359 },
- { Start: 0, End: 220 },
- ],
- 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' }
- ],
- 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' }
- ],
- Min: //最小模式
- [
- { Value: 900, Text: '9:00' },
- { Value: 1700, Text: '17:00' },
- { Value: 100, Text: '1:00' }
- ]
- }
- },
- {
- Name:'15:30-1:00',
- Data:
- [
- //9:00-2:20
- { Start: 1530, End: 2359 },
- { Start: 0, End: 100 },
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 1600, Text: '16:00' },
- { Value: 1700, Text: '17:00' },
- { Value: 1800, Text: '18:00' },
- { Value: 1900, Text: '19:00' },
- { Value: 2000, Text: '20:00' },
- { Value: 2100, Text: '21:00' },
- { Value: 2200, Text: '22:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 0, Text: '0:00' },
- { Value: 100, Text: '1:00' }
- ],
- Simple: //简洁模式
- [
- { Value: 1600, Text: '16:00' },
- //{ Value: 1600, Text: '17:00' },
- { Value: 1800, Text: '18:00' },
- //{ Value: 1900, Text: '19:00' },
- { Value: 2000, Text: '20:00' },
- //{ Value: 2100, Text: '21:00' },
- { Value: 2200, Text: '22:00' },
- //{ Value: 2300, Text: '23:00' },
- { Value: 0, Text: '0:00' },
- //{ Value: 100, Text: '1:00' }
- ],
- Min: //最小模式
- [
- { Value: 1600, Text: '16:00' },
- { Value: 2100, Text: '21:00' },
- { Value: 100, Text: '1:00' }
- ]
- }
- }
- ]
- //美国夏时令
- this.TIME_SPLIT2=
- [
- {
- Name:'10:00-3:20',
- Data:
- [
- //9:00-2:20
- { Start: 1000, End: 2359 },
- { Start: 0, End: 320 },
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { 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: 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: 1000, Text: '10:00' },
- { Value: 1800, Text: '18:00' },
- { Value: 200, Text: '2:00' }
- ]
- }
- },
- {
- Name:'16:30-2:00',
- Data:
- [
- { Start: 1630, End: 2359 },
- { Start: 0, End: 200 },
- ],
- Coordinate:
- {
- Full://完整模式
- [
- { Value: 1700, Text: '17:00' },
- { Value: 1800, Text: '18:00' },
- { Value: 1900, Text: '19:00' },
- { Value: 2000, Text: '20:00' },
- { Value: 2100, Text: '21:00' },
- { Value: 2200, Text: '22:00' },
- { Value: 2300, Text: '23:00' },
- { Value: 0, Text: '0:00' },
- { Value: 100, Text: '1:00' },
- { Value: 200, Text: '2:00' }
- ],
- Simple: //简洁模式
- [
- { Value: 1700, Text: '17:00' },
- //{ Value: 1800, Text: '18:00' },
- { Value: 1900, Text: '19:00' },
- //{ Value: 2000, Text: '20:00' },
- { Value: 2100, Text: '21:00' },
- //{ Value: 2200, Text: '22:00' },
- { Value: 2300, Text: '23:00' },
- //{ Value: 0, Text: '0:00' },
- { Value: 100, Text: '1:00' }
- //{ Value: 200, Text: '2:00' }
- ],
- Min: //最小模式
- [
- { Value: 1700, Text: '17:00' },
- { Value: 2100, Text: '21:00' },
- { Value: 200, Text: '2:00' }
- ]
- }
- }
- ]
- this.FUTURES_LIST=
- [
- { Symbol:"SB", Decimal:2, Time:1 }, //11号白糖
- { Symbol:"CT", Decimal:2, Time:0 }, //棉花
- //{ Symbol:"KC", Decimal:2, Time:0 }, //咖啡
- //{ Symbol:"DX", Decimal:2, Time:0 }, //美元指数
- //{ Symbol:"CC", Decimal:2, Time:0 } //可可
- ]
- this.MarketSuffix=".NYBOT";
- this.GetMarketStatus=function(upperSymbol) // 0=闭市 1=盘前 2=盘中 3=盘后
- {
- var usaDate=GetLocalTime(-4); //需要转成美国时间的 周6 周日
- var day = usaDate.getDay();
- var time = usaDate.getHours() * 100 + usaDate.getMinutes();
- if(day == 6 || day== 0) return 0; //周末
- var find=this.GetFuturesInfo(upperSymbol);
- if (!find) return 2;
-
- if (find.Symbol=="SB") //Sugar No. 11 Futures 03:30 - 13:00
- {
- if (time>300 && 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=
- [
- {
- 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' }
- ]
- }
- },
- {
- 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' }
- ]
- }
- },
- {
- 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' }
- ]
- }
- }
- ]
- //标准时间
- this.TIME_SPLIT2=
- [
- {
- 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' }
- ]
- }
- },
- {
- 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' }
- ]
- }
- },
- {
- 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' }
- ]
- }
- }
- ]
- this.FUTURES_LIST=
- [
- { Symbol:"ZC", Decimal:2, Time:0 }, //玉米
- { Symbol:"XC", Decimal:2, Time:1 }, //迷你玉米
- { Symbol:"ZS", Decimal:2, Time:0 }, //大豆
- { Symbol:"XK", Decimal:2, Time:1 }, //迷你大豆
- { Symbol:"ZL", Decimal:2, Time:0 }, //豆油
- { Symbol:"ZR", Decimal:2, Time:0 }, //稻谷
- { Symbol:"ZO", Decimal:2, Time:0 }, //燕麦
- { Symbol:"ZW", Decimal:2, Time:0 }, //小麦
- { Symbol:"XW", Decimal:2, Time:1 }, //迷你小麦
- { Symbol:"ZM", Decimal:1, Time:0 }, //豆粕
- { Symbol:"EH", Decimal:3, Time:2 }, //乙醇
- { Symbol:"YM", Decimal:0, Time:2 }, //小型道指
- { Symbol:"ES", Decimal:2, Time:2 }, //小型标普
- { Symbol:"NQ", Decimal:2, Time:2 }, //小型纳指
- { Symbol:"TY", Decimal:4, Time:2 }, //10年美国债
- { Symbol:"TU", Decimal:4, Time:2 }, //2年美国债
- { Symbol:"FV", Decimal:4, Time:2 }, //5年美国债
- { Symbol:"US", Decimal:4, Time:2 }, //30年美国债
- { Symbol:"UL", Decimal:4, Time:2 }, //超国债
- ]
- this.MarketSuffix=".CBOT";
- }
- 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:"SND", Decimal:0, Time:0 }, //综合锡03
- { Symbol:"AHD", Decimal:2, Time:0 }, //综合铝03
- { Symbol:"PBD", Decimal:2, Time:0 }, //综合铅03
- { Symbol:"ZSD", Decimal:2, Time:0 }, //综合锌03
- { Symbol:"CAD", Decimal:2, Time:0 }, //综合铜03
- { Symbol:"NID", Decimal:0, Time:0 }, //综合镍03
- ]
- this.MarketSuffix=".LME";
- }
- 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();
- 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)) 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.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 defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol);
- return defaultfloatPrecision;
- }
- //导出统一使用JSCommon命名空间名
- 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,
- };
|