You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3675 lines
126 KiB

  1. /*
  2. copyright (c) 2018 jones
  3. http://www.apache.org/licenses/LICENSE-2.0
  4. 开源项目 https://github.com/jones2000/HQChart
  5. jones_2000@163.com
  6. 各个品种分钟走势图坐标信息
  7. */
  8. import { ChartData } from "./umychart.data.wechat";
  9. function GetLocalTime(i) //得到标准时区的时间的函数
  10. {
  11. if (typeof i !== 'number') return;
  12. var d = new Date();
  13. //得到1970年一月一日到现在的秒数
  14. var len = d.getTime();
  15. //本地时间与GMT时间的时间偏移差
  16. var offset = d.getTimezoneOffset() * 60000;
  17. //得到现在的格林尼治时间
  18. var utcTime = len + offset;
  19. return new Date(utcTime + 3600000 * i);
  20. }
  21. var MARKET_SUFFIX_NAME=
  22. {
  23. SH:'.SH',
  24. SZ:'.SZ',
  25. SHSZ_C_Index:'.CI', //自定义指数
  26. BJ:".BJ", //北交所 BeiJing stock exchange
  27. SHO:'.SHO', //上海交易所 股票期权
  28. SZO:".SZO", //深证交易所 股票期权
  29. HK:'.HK',
  30. FHK: '.FHK', //港股期货
  31. SHFE: '.SHF', //上期所 (Shanghai Futures Exchange)
  32. SHFE2: '.SHFE', //上期所 (Shanghai Futures Exchange)
  33. CFFEX: '.CFE', //中期所 (China Financial Futures Exchange)
  34. CFFEX2:'.CFFEX', //中期所 (China Financial Futures Exchange)
  35. DCE: '.DCE', //大连商品交易所(Dalian Commodity Exchange)
  36. CZCE: '.CZC', //郑州期货交易所
  37. GZFE:".GZFE", //广州期货交易所
  38. USA: '.USA', //美股
  39. FTSE: '.FTSE', //富时中国
  40. BIT: '.BIT', //数字货币 如比特币
  41. BIZ: '.BIZ', //数字货币
  42. FOREX:'.FOREX', //外汇 (Foreign Exchange)
  43. NYMEX: '.NYMEX', //纽约商品期货交易所(New York Mercantile Exchange)
  44. COMEX: ".COMEX", //纽约商品期货交易所(New York Mercantile Exchange)
  45. NYBOT: ".NYBOT", //美國紐約商品交易所
  46. CBOT: ".CBOT", //芝商所
  47. LME:".LME", //伦敦金属交易所
  48. TOCOM:".TOCOM", //东京商品交易所(TOCOM)
  49. IPE:".IPE", //美国洲际交易所 (ICE EUROPE)
  50. TW:".TW", //台湾股票 9:00-13:30
  51. JP:".JP", //日本股票 9:00-11:30, 12:30-15:00
  52. //越南股市
  53. HSX:".HSX", //HSX胡志明交易所
  54. HNX:".HNX", //HNX河內交易所
  55. UPCOM:".UPCOM", //UPCOM未上市公司交易所
  56. ET: '.ET', //其他未知的品种
  57. IsET: function (upperSymbol)
  58. {
  59. if (!upperSymbol) return false;
  60. return upperSymbol.indexOf(this.ET) > 0;
  61. },
  62. IsETShowAvPrice: function (upperSymbol) //是否显示均价
  63. {
  64. return false;
  65. },
  66. IsHSX:function(upperSymbol)
  67. {
  68. if (!upperSymbol) return false;
  69. return upperSymbol.indexOf(this.HSX)>0;
  70. },
  71. IsHNX:function(upperSymbol)
  72. {
  73. if (!upperSymbol) return false;
  74. return upperSymbol.indexOf(this.HNX)>0;
  75. },
  76. IsUPCOM:function(upperSymbol)
  77. {
  78. if (!upperSymbol) return false;
  79. return upperSymbol.indexOf(this.UPCOM)>0;
  80. },
  81. IsNYMEX: function (upperSymbol)
  82. {
  83. if (!upperSymbol) return false;
  84. return upperSymbol.indexOf(this.NYMEX) > 0;
  85. },
  86. IsCOMEX: function (upperSymbol)
  87. {
  88. if (!upperSymbol) return false;
  89. return upperSymbol.indexOf(this.COMEX) > 0;
  90. },
  91. IsNYBOT: function (upperSymbol)
  92. {
  93. if (!upperSymbol) return false;
  94. return upperSymbol.indexOf(this.NYBOT) > 0;
  95. },
  96. IsCBOT: function (upperSymbol)
  97. {
  98. if (!upperSymbol) return false;
  99. return upperSymbol.indexOf(this.CBOT) > 0;
  100. },
  101. IsLME: function (upperSymbol)
  102. {
  103. if (!upperSymbol) return false;
  104. return upperSymbol.indexOf(this.LME) > 0;
  105. },
  106. IsTOCOM:function(upperSymbol)
  107. {
  108. if (!upperSymbol) return false;
  109. return upperSymbol.indexOf(this.TOCOM)>0;
  110. },
  111. IsIPE:function(upperSymbol)
  112. {
  113. if (!upperSymbol) return false;
  114. return upperSymbol.indexOf(this.IPE)>0;
  115. },
  116. IsForeignExchange(upperSymbol)
  117. {
  118. if (!upperSymbol) return false;
  119. return upperSymbol.indexOf(this.FOREX) > 0;
  120. },
  121. IsFTSE: function (upperSymbol)
  122. {
  123. if (!upperSymbol) return false;
  124. return upperSymbol.indexOf(this.FTSE) > 0;
  125. },
  126. IsFHK: function (upperSymbol)
  127. {
  128. if (!upperSymbol) return false;
  129. return upperSymbol.indexOf(this.FHK) > 0;
  130. },
  131. IsBIT: function (upperSymbol)
  132. {
  133. if (!upperSymbol) return false;
  134. if (upperSymbol.indexOf(this.BIT) > 0) return true;
  135. if (upperSymbol.indexOf(this.BIZ) > 0) return true;
  136. return false;
  137. },
  138. IsUSA: function (upperSymbol) //是否是美股
  139. {
  140. if (!upperSymbol) return false;
  141. return upperSymbol.indexOf(this.USA) > 0;
  142. },
  143. IsSH: function (upperSymbol)
  144. {
  145. //需要精确匹配最后3位
  146. var pos = upperSymbol.length-this.SH.length;
  147. var find = upperSymbol.indexOf(this.SH);
  148. return find == pos;
  149. },
  150. IsSZ: function (upperSymbol)
  151. {
  152. var pos = upperSymbol.length - this.SZ.length;
  153. var find = upperSymbol.indexOf(this.SZ);
  154. return find == pos;
  155. },
  156. IsBJ:function(upperSymbol)
  157. {
  158. var pos = upperSymbol.length - this.BJ.length;
  159. var find = upperSymbol.indexOf(this.BJ);
  160. return find == pos;
  161. },
  162. //自定义指数
  163. IsSHSZCustomIndex:function(upperSymbol)
  164. {
  165. var pos = upperSymbol.length - this.SHSZ_C_Index.length;
  166. var find = upperSymbol.indexOf(this.SHSZ_C_Index);
  167. return find == pos;
  168. },
  169. IsSHO: function (upperSymbol)
  170. {
  171. var pos = upperSymbol.length - this.SHO.length;
  172. var find = upperSymbol.indexOf(this.SHO);
  173. return find == pos;
  174. },
  175. IsSZO: function(upperSymbol)
  176. {
  177. var pos = upperSymbol.length - this.SZO.length;
  178. var find = upperSymbol.indexOf(this.SZO);
  179. return find == pos;
  180. },
  181. IsHK: function (upperSymbol)
  182. {
  183. var pos = upperSymbol.length - this.HK.length;
  184. var find = upperSymbol.indexOf(this.HK);
  185. return find == pos;
  186. },
  187. IsTW:function(upperSymbol)
  188. {
  189. var pos = upperSymbol.length - this.TW.length;
  190. var find = upperSymbol.indexOf(this.TW);
  191. return find == pos;
  192. },
  193. IsJP:function(upperSymbol)
  194. {
  195. var pos = upperSymbol.length - this.JP.length;
  196. var find = upperSymbol.indexOf(this.JP);
  197. return find == pos;
  198. },
  199. IsSHFE: function (upperSymbol)
  200. {
  201. if (!upperSymbol) return false;
  202. if (upperSymbol.indexOf(this.SHFE) > 0) return true;
  203. if (upperSymbol.indexOf(this.SHFE2) > 0) return true;
  204. return false;
  205. },
  206. IsCFFEX: function (upperSymbol)
  207. {
  208. if (!upperSymbol) return false;
  209. if (upperSymbol.indexOf(this.CFFEX) > 0) return true;
  210. if (upperSymbol.indexOf(this.CFFEX2) > 0) return true;
  211. return false;
  212. },
  213. IsDCE: function (upperSymbol)
  214. {
  215. if (!upperSymbol) return false;
  216. return upperSymbol.indexOf(this.DCE) > 0;
  217. },
  218. IsCZCE: function (upperSymbol)
  219. {
  220. if (!upperSymbol) return false;
  221. return upperSymbol.indexOf(this.CZCE) > 0;
  222. },
  223. IsGZFE:function(upperSymbol)
  224. {
  225. if (!upperSymbol) return false;
  226. return upperSymbol.indexOf(this.GZFE) > 0;
  227. },
  228. IsChinaFutures: function (upperSymbol) //是否是国内期货
  229. {
  230. if (!upperSymbol) return false;
  231. return this.IsCFFEX(upperSymbol) || this.IsCZCE(upperSymbol) || this.IsDCE(upperSymbol) || this.IsSHFE(upperSymbol) || this.IsGZFE(upperSymbol) ;
  232. },
  233. IsFutures: function (upperSymbol) //是否是期货 包含国外的
  234. {
  235. if (!upperSymbol) return false;
  236. return this.IsChinaFutures(upperSymbol) ||
  237. this.IsNYMEX(upperSymbol) || this.IsCOMEX(upperSymbol) || this.IsNYBOT(upperSymbol) || this.IsCBOT(upperSymbol) ||
  238. this.IsLME(upperSymbol);
  239. },
  240. IsSHSZ: function (upperSymbol) //是否是沪深的股票
  241. {
  242. return this.IsSZ(upperSymbol) || this.IsSH(upperSymbol) || this.IsSHSZCustomIndex(upperSymbol);
  243. },
  244. IsSHSZFund: function (upperSymbol) //是否是交易所基金
  245. {
  246. if (!upperSymbol) return false;
  247. if (this.IsSH(upperSymbol)) //51XXXX.SH
  248. {
  249. if (upperSymbol.charAt(0) == '5' && upperSymbol.charAt(1) == '1') return true;
  250. }
  251. else if (this.IsSZ(upperSymbol)) //15XXXX.sz, 16XXXX.sz, 17XXXX.sz, 18XXXX.sz
  252. {
  253. if (upperSymbol.charAt(0) == '1' &&
  254. (upperSymbol.charAt(1) == '5' || upperSymbol.charAt(1) == '6' || upperSymbol.charAt(1) == '7' || upperSymbol.charAt(1) == '8')) return true;
  255. }
  256. return false;
  257. },
  258. IsSHSZIndex: function (symbol) //是否是沪深指数代码
  259. {
  260. if (!symbol) return false;
  261. var upperSymbol = symbol.toUpperCase();
  262. if (this.IsSH(upperSymbol))
  263. {
  264. var temp = upperSymbol.replace('.SH', '');
  265. if (upperSymbol.charAt(0) == '0' && parseInt(temp) <= 3000) return true;
  266. }
  267. else if (this.IsSZ(upperSymbol))
  268. {
  269. if (upperSymbol.charAt(0) == '3' && upperSymbol.charAt(1) == '9') return true;
  270. }
  271. else if (this.IsSHSZCustomIndex(upperSymbol)) //自定义指数
  272. {
  273. return true;
  274. }
  275. return false;
  276. },
  277. IsSHSZStockA: function (symbol) //是否是沪深A股
  278. {
  279. if (!symbol) return false;
  280. var upperSymbol = symbol.toUpperCase();
  281. if (this.IsSH(upperSymbol))
  282. {
  283. var temp = upperSymbol.replace('.SH', '');
  284. if (upperSymbol.charAt(0) == '6') return true;
  285. }
  286. else if (this.IsSZ(upperSymbol))
  287. {
  288. if (upperSymbol.charAt(0) == '0')
  289. {
  290. if (upperSymbol.charAt(1) == '0' && upperSymbol.charAt(2) == '2') return true; //002 中小板
  291. if (upperSymbol.charAt(1) != '7' && upperSymbol.charAt(1) != '8') return true;
  292. }
  293. else if (upperSymbol.charAt(0)=='3')
  294. {
  295. if (upperSymbol.charAt(1)=='0')
  296. {
  297. if (upperSymbol.charAt(2)=='0') return true; //创业板 300XXX.sz
  298. if (upperSymbol.charAt(2)=='1') return true; //创业板 301XXX.sz
  299. }
  300. }
  301. }
  302. return false;
  303. },
  304. IsBJStock:function(symbol) //北交所股票
  305. {
  306. if (!symbol) return false;
  307. var upperSymbol=symbol.toUpperCase();
  308. if (!this.IsBJ(upperSymbol)) return false;
  309. var value=upperSymbol.charAt(0);
  310. if (value=='4' || value=='8') return true;
  311. return false;
  312. },
  313. IsSHStockSTAR: function (symbol) // 是否是科创板 Sci-Tech innovAtion boaRd (STAR Market)
  314. {
  315. if (!symbol) return false;
  316. var upperSymbol = symbol.toUpperCase();
  317. if (!this.IsSH(upperSymbol)) return false;
  318. if (upperSymbol.charAt(0) == '6' && upperSymbol.charAt(1) == '8' && upperSymbol.charAt(2) == '8')
  319. return true;
  320. return false;
  321. },
  322. GetMarketStatus: function (symbol) //获取市场状态 0=闭市 1=盘前 2=盘中 3=盘后
  323. {
  324. if (!symbol) return 0;
  325. var upperSymbol = symbol.toUpperCase();
  326. var nowDate = new Date();
  327. var day = nowDate.getDay();
  328. var time = nowDate.getHours() * 100 + nowDate.getMinutes();
  329. if (this.IsUSA(upperSymbol))
  330. {
  331. var usaDate = GetLocalTime(-4);
  332. var day = usaDate.getDay();
  333. var time = usaDate.getHours() * 100 + usaDate.getMinutes();
  334. if (day == 6 || day == 0) return 0; //周末
  335. //9:30 - 16:00 考虑夏令时间时间增加1小时 9:30 - 17:00
  336. if (time > 1730) return 3;
  337. if (time < 930) return 1;
  338. return 2;
  339. }
  340. else if (this.IsBIT(upperSymbol)) //数字货币24小时
  341. {
  342. return 2;
  343. }
  344. else if (this.IsForeignExchange(upperSymbol)) //外汇24小时
  345. {
  346. return 2;
  347. }
  348. else if (this.IsFTSE(upperSymbol)) //富时中国 9:00-16:30 17:00-04:45
  349. {
  350. if (day == 6 || day == 0) return 0; //周末
  351. if (time >= 830 && time <= 2359) return 2;
  352. if (time >= 0 && time <= 500) return 2;
  353. return 0;
  354. }
  355. else if (this.IsFHK(upperSymbol)) //港股指数期货 9:15-12:00 13:00-16:30 17:15-01:00
  356. {
  357. if (day == 6 || day == 0) return 0; //周末
  358. if (time >= 900 && time <= 2359) return 2;
  359. if (time >= 0 && time <= 120) return 2;
  360. return 0;
  361. }
  362. else if (this.IsET(upperSymbol))
  363. {
  364. return this.GetETMarketStatus(symbol);
  365. }
  366. else if (this.IsHK(upperSymbol)) //港股
  367. {
  368. if (day == 6 || day == 0) return 0; //周末
  369. if (time > 1630) return 3;
  370. if (time < 925) return 1;
  371. return 2;
  372. }
  373. else if (this.IsTW(upperSymbol)) //台湾股票 上午9:00——下午1:30
  374. {
  375. if(day == 6 || day== 0) return 0; //周末
  376. if(time>1410) return 3;
  377. if(time<820) return 1;
  378. return 2;
  379. }
  380. else if (this.IsJP(upperSymbol)) //日本股票 9:00-11:30 12:30-15:00
  381. {
  382. if(day == 6 || day== 0) return 0; //周末
  383. if(time>1520) return 3;
  384. if(time<830) return 1;
  385. return 2;
  386. }
  387. else if (this.IsNYMEX(upperSymbol))
  388. {
  389. return this.GetNYMEXMarketStatus(upperSymbol);
  390. }
  391. else if (this.IsCOMEX(upperSymbol))
  392. {
  393. return this.GetCOMEXMarketStatus(upperSymbol);
  394. }
  395. else if (this.IsNYBOT(upperSymbol))
  396. {
  397. return this.GetNYBOTMarketStatus(upperSymbol);
  398. }
  399. else if (this.IsCBOT(upperSymbol))
  400. {
  401. return this.GetCBOTMarketStatus(upperSymbol);
  402. }
  403. else if (this.IsChinaFutures(upperSymbol)) //国内期货
  404. {
  405. if(day == 6 || day== 0) return 0; //周末
  406. //21:00-2:30
  407. if(time>=2100) return 2;
  408. if (time<=240) return 2;
  409. //8:55-11:30, 13:00-15:00
  410. if(time>=830 && time<=1510) return 2;
  411. return 1;
  412. }
  413. else //9:30 - 15:40
  414. {
  415. if (day == 6 || day == 0) return 0; //周末
  416. if (time > 1540) return 3;
  417. if (time < 925) return 1;
  418. return 2;
  419. }
  420. },
  421. GetDefaultDecimal:function(symbol)
  422. {
  423. return 2;
  424. },
  425. GetSHDecimal:function(symbol)
  426. {
  427. return 2;
  428. },
  429. GetSZDecimal:function(symbol)
  430. {
  431. return 2;
  432. },
  433. GetFHKDecimal: function (symbol) //港股指数期货 小数位数
  434. {
  435. return 0;
  436. },
  437. GetFTSEDecimal: function (symbol) //富时中国A50期货 小数位数
  438. {
  439. return 0;
  440. },
  441. GetForeignExchangeDecimal:function(symbol)
  442. {
  443. return 4;
  444. },
  445. GetBITDecimal: function (symbol)
  446. {
  447. return 2;
  448. },
  449. GetETDecimal: function (symbol)
  450. {
  451. return 2;
  452. },
  453. GetHKDecimal:function(symbol)
  454. {
  455. return 2;
  456. },
  457. GetTWDecimal:function(symbol)
  458. {
  459. return 2;
  460. },
  461. GetJPDecimal:function(symbol)
  462. {
  463. return 2;
  464. },
  465. GetHSXDecimal:function(symbol)
  466. {
  467. return 2;
  468. },
  469. GetHNXDecimal:function(symbol)
  470. {
  471. return 2;
  472. },
  473. GetUPCOMDecimal:function(symbol)
  474. {
  475. return 2;
  476. },
  477. GetSHODecimal: function (symbol)
  478. {
  479. return 4;
  480. },
  481. GetNYMEXDecimal: function (symbol) //纽约期货交易所
  482. {
  483. return g_NYMEXTimeData.GetDecimal(symbol);
  484. },
  485. GetCOMEXDecimal:function(symbol)
  486. {
  487. return g_COMEXTimeData.GetDecimal(symbol);
  488. },
  489. GetNYBOTDecimal:function(symbol)
  490. {
  491. return g_NYBOTTimeData.GetDecimal(symbol);
  492. },
  493. GetCBOTDecimal:function(symbol)
  494. {
  495. return g_CBOTTimeData.GetDecimal(symbol);
  496. },
  497. GetLMEDecimal:function(symbol)
  498. {
  499. return g_LMETimeData.GetDecimal(symbol);
  500. },
  501. GetTOCOMDecimal:function(symbol)
  502. {
  503. return g_TOCOMTimeData.GetDecimal(symbol);
  504. },
  505. GetIPEDecimal:function(symbol)
  506. {
  507. return g_IPETimeData.GetDecimal(symbol);
  508. },
  509. GetETMarketStatus: function (symbol)
  510. {
  511. // 0=闭市 1=盘前 2=盘中 3=盘后
  512. return 2;
  513. },
  514. GetCOMEXMarketStatus:function(symbol)
  515. {
  516. return g_COMEXTimeData.GetMarketStatus(symbol);
  517. },
  518. GetNYBOTMarketStatus:function(symbol)
  519. {
  520. return g_NYBOTTimeData.GetMarketStatus(symbol);
  521. },
  522. GetCBOTMarketStatus:function(symbol)
  523. {
  524. return g_CBOTTimeData.GetMarketStatus(symbol);
  525. },
  526. GetNYMEXMarketStatus: function (symbol)
  527. {
  528. return g_NYMEXTimeData.GetMarketStatus(symbol);
  529. },
  530. GetLimitPriceRange:function(symbol, name) //涨停范围
  531. {
  532. if (!this.IsSHSZStockA(symbol)) return null;
  533. if (this.IsSHStockSTAR(symbol)) return {Max:0.2 , Min:-0.2}; //科创板 [20%- -20%]
  534. if (!name) return null;
  535. if (name.indexOf('ST')>=0) return { Max:0.05, Min:-0.05 }; //ST 股票 [5% - -5%]
  536. return {Max:0.1 , Min:-0.1}; //[10% - -10%]
  537. },
  538. IsEnableRight:function(period, symbol, rightFormula) //是否支持复权
  539. {
  540. if (!MARKET_SUFFIX_NAME.IsSHSZStockA(symbol) && !MARKET_SUFFIX_NAME.IsBJStock(symbol)) return false;
  541. if (ChartData.IsNumber(rightFormula) && rightFormula>=1) return true; //复权因子复权
  542. if (ChartData.IsMinutePeriod(period,true)) return false; //内置分钟K线不支持复权
  543. //内置日线线支持复权,其他不支持复权
  544. return false;
  545. }
  546. }
  547. //走势图分钟数据对应的时间
  548. function MinuteTimeStringData()
  549. {
  550. this.SHSZ = null; //上海深证交易所时间
  551. this.HK = null; //香港交易所时间
  552. this.Futures=new Map(); //期货交易时间 key=时间名称 Value=数据
  553. this.USA = null; //美股交易时间
  554. this.FTSE = null; //富时中国
  555. this.FHK = null; //港股指数期货
  556. this.BIT=null; //数字货币
  557. this.TW=null; //台湾股票
  558. this.JP=null; //日本股票
  559. this.Initialize = function () //初始化 默认只初始化沪深的 其他市场动态生成
  560. {
  561. //this.SHSZ = this.CreateSHSZData();
  562. //this.HK = this.CreateHKData();
  563. }
  564. this.GetET = function (upperSymbol) //当天所有的分钟
  565. {
  566. throw { Name: 'MinuteTimeStringData::GetET', Error: 'not implement' };
  567. }
  568. this.GetSHSZ=function(upperSymbol) //动态创建
  569. {
  570. if (!this.SHSZ) this.SHSZ=this.CreateSHSZData();
  571. return this.SHSZ;
  572. }
  573. this.GetBJ=function(upperSymbol)
  574. {
  575. if (!this.BJ) this.BJ=this.CreateBJData();
  576. return this.BJ;
  577. }
  578. this.GetSHO = function ()
  579. {
  580. if (!this.SHO) this.SHO = this.CreateSHOData();
  581. return this.SHO;
  582. }
  583. this.GetHK=function(upperSymbol)
  584. {
  585. if (!this.HK) this.HK = this.CreateHKData();
  586. return this.HK;
  587. }
  588. this.GetTW=function(upperSymbol)
  589. {
  590. if (this.TW) this.TW=this.CreateTWData();
  591. return this.TW;
  592. }
  593. this.GetJP=function(upperSymbol)
  594. {
  595. if (this.JP) this.JP=this.CreateJPData();
  596. return this.JP;
  597. }
  598. this.GetHSX=function(upperSymbol)
  599. {
  600. if (this.HSX) this.HSX=this.CreateHSXData();
  601. return this.HSX;
  602. }
  603. this.GetHNX=function(upperSymbol)
  604. {
  605. if (this.HNX) this.HSX=this.CreateHNXData();
  606. return this.HNX;
  607. }
  608. this.GetUPCOM=function(upperSymbol)
  609. {
  610. if (this.UPCOM) this.UPCOM=this.CreateUPCOMData();
  611. return this.UPCOM;
  612. }
  613. this.GetFutures=function(splitData)
  614. {
  615. if (!this.Futures.has(splitData.Name))
  616. {
  617. var data = this.CreateTimeData(splitData.Data);
  618. this.Futures.set(splitData.Name,data);
  619. }
  620. return this.Futures.get(splitData.Name);
  621. }
  622. this.GetUSA=function()
  623. {
  624. if (!this.USA) this.USA=this.CreateUSAData();
  625. return this.USA;
  626. }
  627. this.GetFTSE = function ()
  628. {
  629. if (!this.FTSE) this.FTSE = this.CreateFTSEData();
  630. return this.FTSE;
  631. }
  632. this.GetFHK = function ()
  633. {
  634. if (!this.FHK) this.FHK = this.CreateFHKData();
  635. return this.FHK;
  636. }
  637. this.GetBIT=function(upperSymbol)
  638. {
  639. if (!this.BIT) this.BIT=this.CreateBITData();
  640. return this.BIT;
  641. }
  642. this.GetForeignExchange=function()
  643. {
  644. if (!this.ForeEx) this.ForeEx=this.CreateForeignExchangeData();
  645. return this.ForeEx;
  646. }
  647. this.CreateSHSZData = function ()
  648. {
  649. const TIME_SPLIT =
  650. [
  651. { Start: 925, End: 925 },
  652. { Start: 930, End: 1130 },
  653. { Start: 1300, End: 1500 }
  654. ];
  655. return this.CreateTimeData(TIME_SPLIT);
  656. }
  657. this.CreateSHOData = function ()
  658. {
  659. const TIME_SPLIT =
  660. [
  661. { Start: 930, End: 1129 },
  662. { Start: 1300, End: 1500 }
  663. ];
  664. return this.CreateTimeData(TIME_SPLIT);
  665. }
  666. this.CreateHKData = function ()
  667. {
  668. const TIME_SPLIT =
  669. [
  670. { Start: 930, End: 1200 },
  671. { Start: 1300, End: 1600 }
  672. ];
  673. return this.CreateTimeData(TIME_SPLIT);
  674. }
  675. this.CreateTWData=function()
  676. {
  677. const TIME_SPLIT =
  678. [
  679. { Start: 900, End: 1330 }
  680. ];
  681. return this.CreateTimeData(TIME_SPLIT);
  682. }
  683. this.CreateJPData=function()
  684. {
  685. const TIME_SPLIT =
  686. [
  687. { Start: 900, End: 1130 },
  688. { Start: 1230, End: 1500 }
  689. ];
  690. return this.CreateTimeData(TIME_SPLIT);
  691. }
  692. this.CreateHSXData=function()
  693. {
  694. throw {Name:'MinuteTimeStringData::CreateHSXData', Error:'not implement'};
  695. }
  696. this.CreateHNXData=function()
  697. {
  698. throw {Name:'MinuteTimeStringData::CreateHNXData', Error:'not implement'};
  699. }
  700. this.CreateUPCOMData=function()
  701. {
  702. throw {Name:'MinuteTimeStringData::CreateUPCOMData', Error:'not implement'};
  703. }
  704. this.CreateUSAData=function()
  705. {
  706. //美国夏令时
  707. const TIME_SUMMER_SPLIT =
  708. [
  709. { Start: 2130, End: 2359 },
  710. { Start: 0, End: 400 }
  711. ];
  712. //非夏令时
  713. const TIME_SPLIT =
  714. [
  715. { Start: 2230, End: 2359 },
  716. { Start: 0, End: 500 }
  717. ];
  718. //使用美国本地时间
  719. const TIME_LOCAL_SPLIT =
  720. [
  721. { Start: 930, End: 1600 } //美国东部时间9:30到16:00
  722. ];
  723. return this.CreateTimeData(TIME_LOCAL_SPLIT);
  724. }
  725. this.CreateFTSEData = function ()
  726. {
  727. const TIME_SPLIT =
  728. [
  729. { Start: 1700, End: 2359 },
  730. { Start: 0, End: 445 },
  731. { Start: 900, End: 1630 }
  732. ];
  733. return this.CreateTimeData(TIME_SPLIT);
  734. }
  735. this.CreateFHKData = function ()
  736. {
  737. //港股指数期货 9:15-12:00 13:00-16:30 17:15-01:00
  738. const TIME_SPLIT =
  739. [
  740. { Start: 1715, End: 2359 },
  741. { Start: 0, End: 100 },
  742. { Start: 915, End: 1200 },
  743. { Start: 1300, End: 1630 },
  744. ];
  745. return this.CreateTimeData(TIME_SPLIT);
  746. }
  747. this.CreateForeignExchangeData=function()
  748. {
  749. //外汇 7:00 - 6:59
  750. const TIME_SPLIT=
  751. [
  752. { Start:600, End:2359 },
  753. { Start:0, End:559 },
  754. ];
  755. return this.CreateTimeData(TIME_SPLIT);
  756. }
  757. this.CreateBITData=function()
  758. {
  759. //数字货币 7:00 - 6:59
  760. const TIME_SPLIT=
  761. [
  762. { Start:600, End:2359 },
  763. { Start:0, End:559 },
  764. ];
  765. return this.CreateTimeData(TIME_SPLIT);
  766. }
  767. this.CreateTimeData = function (timeSplit)
  768. {
  769. var data = [];
  770. for (var i in timeSplit)
  771. {
  772. var item = timeSplit[i];
  773. for (var j = item.Start; j <= item.End; ++j)
  774. {
  775. if (j % 100 >= 60) continue; //大于60分钟的数据去掉
  776. data.push(j);
  777. }
  778. }
  779. return data;
  780. }
  781. this.GetTimeData = function (symbol)
  782. {
  783. if (!symbol) return this.SHSZ;
  784. var upperSymbol = symbol.toLocaleUpperCase(); //转成大写
  785. if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(upperSymbol) || MARKET_SUFFIX_NAME.IsSHSZIndex(upperSymbol)) return this.GetSHSZ(upperSymbol);
  786. if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol)) return this.GetBJ(upperSymbol);
  787. if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol)) return this.GetSHO();
  788. if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) return this.GetHK(upperSymbol);
  789. if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) return this.GetTW(upperSymbol);
  790. if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) return this.GetJP(upperSymbol);
  791. if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol)) return this.GetUSA(true);
  792. 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))
  793. {
  794. var splitData = g_FuturesTimeData.GetSplitData(upperSymbol);
  795. if (!splitData) return null;
  796. return this.GetFutures(splitData);
  797. }
  798. if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) return this.GetForeignExchange();
  799. if (MARKET_SUFFIX_NAME.IsFTSE(upperSymbol)) return this.GetFTSE();
  800. if (MARKET_SUFFIX_NAME.IsFHK(upperSymbol)) return this.GetFHK();
  801. if (MARKET_SUFFIX_NAME.IsET(upperSymbol)) return this.GetET(upperSymbol);
  802. if (MARKET_SUFFIX_NAME.IsBIT(upperSymbol)) return this.GetBIT(upperSymbol);
  803. //越南股市
  804. if (MARKET_SUFFIX_NAME.IsHSX(upperSymbol)) return this.GetHSX(upperSymbol);
  805. if (MARKET_SUFFIX_NAME.IsHNX(upperSymbol)) return this.GetHNX(upperSymbol);
  806. if (MARKET_SUFFIX_NAME.IsUPCOM(upperSymbol)) return this.GetUPCOM(upperSymbol);
  807. if (MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol)) //纽约期货交易所
  808. {
  809. var splitData = g_NYMEXTimeData.GetSplitData(upperSymbol);
  810. if (!splitData) return null;
  811. return this.GetFutures(splitData);
  812. }
  813. if (MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol)) //纽约期货交易所
  814. {
  815. var splitData = g_COMEXTimeData.GetSplitData(upperSymbol);
  816. if (!splitData) return null;
  817. return this.GetFutures(splitData);
  818. }
  819. if (MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol)) //纽约期货交易所
  820. {
  821. var splitData = g_NYBOTTimeData.GetSplitData(upperSymbol);
  822. if (!splitData) return null;
  823. return this.GetFutures(splitData);
  824. }
  825. if (MARKET_SUFFIX_NAME.IsCBOT(upperSymbol)) //芝商所
  826. {
  827. var splitData = g_CBOTTimeData.GetSplitData(upperSymbol);
  828. if (!splitData) return null;
  829. return this.GetFutures(splitData);
  830. }
  831. if (MARKET_SUFFIX_NAME.IsLME(upperSymbol)) //伦敦LME
  832. {
  833. var splitData = g_LMETimeData.GetSplitData(upperSymbol);
  834. if (!splitData) return null;
  835. return this.GetFutures(splitData);
  836. }
  837. if (MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol)) //东京商品交易所(TOCOM)
  838. {
  839. var splitData = g_TOCOMTimeData.GetSplitData(upperSymbol);
  840. if (!splitData) return null;
  841. return this.GetFutures(splitData);
  842. }
  843. if (MARKET_SUFFIX_NAME.IsIPE(upperSymbol)) //东京商品交易所(TOCOM)
  844. {
  845. var splitData = g_IPETimeData.GetSplitData(upperSymbol);
  846. if (!splitData) return null;
  847. return this.GetFutures(splitData);
  848. }
  849. }
  850. }
  851. //走势图刻度分钟线
  852. function MinuteCoordinateData()
  853. {
  854. //沪深走势图时间刻度
  855. const SHZE_MINUTE_X_COORDINATE =
  856. {
  857. Full: //完整模式
  858. [
  859. [0, 0, "rgb(200,200,200)", "09:30"],
  860. [31, 0, "RGB(200,200,200)", "10:00"],
  861. [61, 0, "RGB(200,200,200)", "10:30"],
  862. [91, 0, "RGB(200,200,200)", "11:00"],
  863. [122, 1, "RGB(200,200,200)", "13:00"],
  864. [152, 0, "RGB(200,200,200)", "13:30"],
  865. [182, 0, "RGB(200,200,200)", "14:00"],
  866. [212, 0, "RGB(200,200,200)", "14:30"],
  867. [242, 1, "RGB(200,200,200)", "15:00"], // 15:00
  868. ],
  869. Simple: //简洁模式
  870. [
  871. [0, 0, "rgb(200,200,200)", "09:30"],
  872. [61, 0, "RGB(200,200,200)", "10:30"],
  873. [122, 1, "RGB(200,200,200)", "13:00"],
  874. [182, 0, "RGB(200,200,200)", "14:00"],
  875. [242, 1, "RGB(200,200,200)", "15:00"]
  876. ],
  877. Min: //最小模式
  878. [
  879. [0, 0, "rgb(200,200,200)", "09:30"],
  880. [122, 1, "RGB(200,200,200)", "13:00"],
  881. [242, 1, "RGB(200,200,200)", "15:00"]
  882. ],
  883. Count: 243,
  884. MiddleCount: 122,
  885. GetData: function (width)
  886. {
  887. if (width < 200) return this.Min;
  888. else if (width < 400) return this.Simple;
  889. return this.Full;
  890. }
  891. };
  892. //上海股票期权时间刻度
  893. const SHO_MINUTE_X_COORDINATE =
  894. {
  895. Full: //完整模式
  896. [
  897. [0, 0, "rgb(200,200,200)", "09:30"],
  898. [30, 0, "RGB(200,200,200)", "10:00"],
  899. [60, 0, "RGB(200,200,200)", "10:30"],
  900. [90, 0, "RGB(200,200,200)", "11:00"],
  901. [120, 1, "RGB(200,200,200)", "13:00"],
  902. [150, 0, "RGB(200,200,200)", "13:30"],
  903. [180, 0, "RGB(200,200,200)", "14:00"],
  904. [210, 0, "RGB(200,200,200)", "14:30"],
  905. [240, 1, "RGB(200,200,200)", "15:00"], // 15:00
  906. ],
  907. Simple: //简洁模式
  908. [
  909. [0, 0, "rgb(200,200,200)", "09:30"],
  910. [60, 0, "RGB(200,200,200)", "10:30"],
  911. [120, 1, "RGB(200,200,200)", "13:00"],
  912. [180, 0, "RGB(200,200,200)", "14:00"],
  913. [240, 1, "RGB(200,200,200)", "15:00"]
  914. ],
  915. Min: //最小模式
  916. [
  917. [0, 0, "rgb(200,200,200)", "09:30"],
  918. [120, 1, "RGB(200,200,200)", "13:00"],
  919. [240, 1, "RGB(200,200,200)", "15:00"]
  920. ],
  921. Count: 241,
  922. MiddleCount: 120,
  923. GetData: function (width) {
  924. if (width < 200) return this.Min;
  925. else if (width < 400) return this.Simple;
  926. return this.Full;
  927. }
  928. };
  929. //港股走势图时间刻度
  930. const HK_MINUTE_X_COORDINATE =
  931. {
  932. Full: //完整模式
  933. [
  934. [0, 1, "RGB(200,200,200)", "09:30"],
  935. [30, 0, "RGB(200,200,200)", "10:00"],
  936. [60, 1, "RGB(200,200,200)", "10:30"],
  937. [90, 0, "RGB(200,200,200)", "11:00"],
  938. [120, 1, "RGB(200,200,200)", "11:30"],
  939. [151, 0, "RGB(200,200,200)", "13:00"],
  940. [181, 1, "RGB(200,200,200)", "13:30"],
  941. [211, 0, "RGB(200,200,200)", "14:00"],
  942. [241, 1, "RGB(200,200,200)", "14:30"],
  943. [271, 0, "RGB(200,200,200)", "15:00"],
  944. [301, 1, "RGB(200,200,200)", "15:30"],
  945. [331, 1, "RGB(200,200,200)", "16:00"]
  946. ],
  947. Simple: //简洁模式
  948. [
  949. [0, 1, "RGB(200,200,200)", "09:30"],
  950. [60, 1, "RGB(200,200,200)", "10:30"],
  951. [120, 1, "RGB(200,200,200)", "11:30"],
  952. [211, 0, "RGB(200,200,200)", "14:00"],
  953. [271, 0, "RGB(200,200,200)", "15:00"],
  954. [331, 1, "RGB(200,200,200)", "16:00"]
  955. ],
  956. Min: //最小模式
  957. [
  958. [0, 1, "RGB(200,200,200)", "09:30"],
  959. [151, 0, "RGB(200,200,200)", "13:00"],
  960. [331, 1, "RGB(200,200,200)", "16:00"]
  961. ],
  962. Count: 332,
  963. MiddleCount: 151,
  964. GetData: function (width)
  965. {
  966. if (width < 200) return this.Min;
  967. else if (width < 450) return this.Simple;
  968. return this.Full;
  969. }
  970. };
  971. //美股走势图时间刻度
  972. const USA_MINUTE_X_COORDINATE =
  973. {
  974. /*
  975. Full: //完整模式
  976. [
  977. [0, 0, "rgb(200,200,200)", "21:30"],
  978. [60, 0, "RGB(200,200,200)", "22:30"],
  979. [120, 1, "RGB(200,200,200)", "23:30"],
  980. [210, 0, "RGB(200,200,200)", "01:00"],
  981. [270, 0, "RGB(200,200,200)", "02:00"],
  982. [330, 0, "RGB(200,200,200)", "03:00"],
  983. [390, 0, "RGB(200,200,200)", "04:00"],
  984. ],
  985. Simple: //简洁模式
  986. [
  987. [0, 0, "rgb(200,200,200)", "21:30"],
  988. [160, 1, "RGB(200,200,200)", "00:00"],
  989. [270, 0, "RGB(200,200,200)", "02:00"],
  990. [390, 0, "RGB(200,200,200)", "04:00"],
  991. ],
  992. Min: //最小模式
  993. [
  994. [0, 0, "rgb(200,200,200)", "21:30"],
  995. [160, 1, "RGB(200,200,200)", "00:00"],
  996. [390, 0, "RGB(200,200,200)", "04:00"],
  997. ],
  998. */
  999. //美国本地时间
  1000. Full: //完整模式
  1001. [
  1002. [0, 0, "rgb(200,200,200)", "9:30"],
  1003. [30, 0, "RGB(200,200,200)", "10:00"],
  1004. [90, 1, "RGB(200,200,200)", "11:00"],
  1005. [150, 0, "RGB(200,200,200)", "12:00"],
  1006. [210, 0, "RGB(200,200,200)", "13:00"],
  1007. [270, 0, "RGB(200,200,200)", "14:00"],
  1008. [330, 0, "RGB(200,200,200)", "15:00"],
  1009. [390, 0, "RGB(200,200,200)", "16:00"],
  1010. ],
  1011. Simple: //简洁模式
  1012. [
  1013. [30, 0, "rgb(200,200,200)", "10:00"],
  1014. [150, 1, "RGB(200,200,200)", "12:00"],
  1015. [270, 0, "RGB(200,200,200)", "14:00"],
  1016. [390, 0, "RGB(200,200,200)", "16:00"],
  1017. ],
  1018. Min: //最小模式
  1019. [
  1020. [30, 0, "rgb(200,200,200)", "10:00"],
  1021. [210, 1, "RGB(200,200,200)", "13:00"],
  1022. [390, 0, "RGB(200,200,200)", "16:00"],
  1023. ],
  1024. Count: 391,
  1025. MiddleCount: 211,
  1026. GetData: function (width)
  1027. {
  1028. if (width < 200) return this.Min;
  1029. else if (width < 400) return this.Simple;
  1030. return this.Full;
  1031. }
  1032. };
  1033. //富时中国
  1034. const FTSE_MINUTE_X_COORDINATE =
  1035. {
  1036. Full: //完整模式
  1037. [
  1038. [0, 1, "RGB(200,200,200)", "17:00"],
  1039. //[60, 0, "RGB(200,200,200)", "18:00"],
  1040. [120, 1, "RGB(200,200,200)", "19:00"],
  1041. //[180, 0, "RGB(200,200,200)", "20:00"],
  1042. [240, 1, "RGB(200,200,200)", "21:00"],
  1043. //[300, 0, "RGB(200,200,200)", "22:00"],
  1044. [360, 1, "RGB(200,200,200)", "23:00"],
  1045. //[420, 0, "RGB(200,200,200)", "00:00"],
  1046. [480, 1, "RGB(200,200,200)", "01:00"],
  1047. //[540, 0, "RGB(200,200,200)", "02:00"],
  1048. [600, 1, "RGB(200,200,200)", "03:00"],
  1049. //[660, 1, "RGB(200,200,200)", "04:00"],
  1050. [706, 1, "RGB(200,200,200)", "09:00"],
  1051. //[766, 1, "RGB(200,200,200)", "10:00"],
  1052. [826, 1, "RGB(200,200,200)", "11:00"],
  1053. //[886, 1, "RGB(200,200,200)", "12:00"],
  1054. [946, 1, "RGB(200,200,200)", "13:00"],
  1055. //[1006, 1, "RGB(200,200,200)", "14:00"],
  1056. [1066, 1, "RGB(200,200,200)", "15:00"],
  1057. [1156, 1, "RGB(200,200,200)", "16:30"],
  1058. ],
  1059. Simple: //简洁模式
  1060. [
  1061. [0, 1, "RGB(200,200,200)", "17:00"],
  1062. //[60, 0, "RGB(200,200,200)", "18:00"],
  1063. //[120, 1, "RGB(200,200,200)", "19:00"],
  1064. //[180, 0, "RGB(200,200,200)", "20:00"],
  1065. [240, 1, "RGB(200,200,200)", "21:00"],
  1066. //[300, 0, "RGB(200,200,200)", "22:00"],
  1067. //[360, 1, "RGB(200,200,200)", "23:30"],
  1068. //[420, 0, "RGB(200,200,200)", "00:00"],
  1069. [480, 1, "RGB(200,200,200)", "01:00"],
  1070. //[540, 0, "RGB(200,200,200)", "02:00"],
  1071. //[600, 1, "RGB(200,200,200)", "03:00"],
  1072. //[660, 1, "RGB(200,200,200)", "04:00"],
  1073. [706, 1, "RGB(200,200,200)", "09:00"],
  1074. //[766, 1, "RGB(200,200,200)", "10:00"],
  1075. //[826, 1, "RGB(200,200,200)", "11:00"],
  1076. //[886, 1, "RGB(200,200,200)", "12:00"],
  1077. [946, 1, "RGB(200,200,200)", "13:00"],
  1078. //[1006, 1, "RGB(200,200,200)", "14:00"],
  1079. //[1066, 1, "RGB(200,200,200)", "15:00"],
  1080. [1156, 1, "RGB(200,200,200)", "16:30"],
  1081. ],
  1082. Min: //最小模式
  1083. [
  1084. [0, 1, "RGB(200,200,200)", "17:00"],
  1085. [706, 1, "RGB(200,200,200)", "09:00"],
  1086. [1156, 1, "RGB(200,200,200)", "16:30"],
  1087. ],
  1088. Count: 1157,
  1089. MiddleCount: 707,
  1090. GetData: function (width) {
  1091. if (width < 200) return this.Min;
  1092. else if (width < 450) return this.Simple;
  1093. return this.Full;
  1094. }
  1095. };
  1096. //港股指数期货
  1097. const FHK_MINUTE_X_COORDINATE =
  1098. {
  1099. Full: //完整模式
  1100. [
  1101. [0, 1, "RGB(200,200,200)", "17:15"],
  1102. //[45, 0, "RGB(200,200,200)", "18:00"],
  1103. [105, 1, "RGB(200,200,200)", "19:00"],
  1104. //[165, 0, "RGB(200,200,200)", "20:00"],
  1105. [225, 1, "RGB(200,200,200)", "21:00"],
  1106. //[285, 0, "RGB(200,200,200)", "22:00"],
  1107. [345, 1, "RGB(200,200,200)", "23:00"],
  1108. //[405, 0, "RGB(200,200,200)", "00:00"],
  1109. [466, 0, "RGB(200,200,200)", "09:15"],
  1110. //[511, 1, "RGB(200,200,200)", "10:00"],
  1111. [571, 1, "RGB(200,200,200)", "11:00"],
  1112. //[632, 1, "RGB(200,200,200)", "13:00"],
  1113. [692, 1, "RGB(200,200,200)", "14:00"],
  1114. //[752, 1, "RGB(200,200,200)", "15:00"],
  1115. [843, 1, "RGB(200,200,200)", "16:30"],
  1116. ],
  1117. Simple: //简洁模式
  1118. [
  1119. [0, 1, "RGB(200,200,200)", "17:15"],
  1120. //[45, 0, "RGB(200,200,200)", "18:00"],
  1121. //[105, 1, "RGB(200,200,200)", "19:00"],
  1122. //[165, 0, "RGB(200,200,200)", "20:00"],
  1123. [225, 1, "RGB(200,200,200)", "21:00"],
  1124. //[285, 0, "RGB(200,200,200)", "22:00"],
  1125. //[345, 1, "RGB(200,200,200)", "23:00"],
  1126. //[405, 0, "RGB(200,200,200)", "00:00"],
  1127. [466, 0, "RGB(200,200,200)", "09:15"],
  1128. //[511, 1, "RGB(200,200,200)", "10:00"],
  1129. //[571, 1, "RGB(200,200,200)", "11:00"],
  1130. [632, 1, "RGB(200,200,200)", "13:00"],
  1131. //[692, 1, "RGB(200,200,200)", "14:00"],
  1132. //[752, 1, "RGB(200,200,200)", "15:00"],
  1133. [843, 1, "RGB(200,200,200)", "16:30"],
  1134. ],
  1135. Min: //最小模式
  1136. [
  1137. [0, 1, "RGB(200,200,200)", "17:15"],
  1138. [466, 0, "RGB(200,200,200)", "09:15"],
  1139. [843, 1, "RGB(200,200,200)", "16:30"],
  1140. ],
  1141. Count: 843,
  1142. MiddleCount: 466,
  1143. GetData: function (width) {
  1144. if (width < 200) return this.Min;
  1145. else if (width < 450) return this.Simple;
  1146. return this.Full;
  1147. }
  1148. };
  1149. //外汇
  1150. const FOREX_MINUTE_X_COORDINATE=
  1151. {
  1152. Full: //完整模式
  1153. [
  1154. [0, 1, "RGB(200,200,200)", "06:00"],
  1155. [120, 1, "RGB(200,200,200)", "08:00"],
  1156. [240, 1, "RGB(200,200,200)", "10:00"],
  1157. [360, 1, "RGB(200,200,200)", "12:00"],
  1158. [480, 0, "RGB(200,200,200)", "14:00"],
  1159. [600, 1, "RGB(200,200,200)", "16:00"],
  1160. [720, 1, "RGB(200,200,200)", "18:00"],
  1161. [840, 1, "RGB(200,200,200)", "20:00"],
  1162. [960, 1, "RGB(200,200,200)", "22:00"],
  1163. [1080, 1, "RGB(200,200,200)", "0:00"],
  1164. [1200, 1, "RGB(200,200,200)", "02:00"],
  1165. [1320, 1, "RGB(200,200,200)", "04:00"],
  1166. ],
  1167. Simple: //简洁模式
  1168. [
  1169. [0, 1, "RGB(200,200,200)", "06:00"],
  1170. [240, 1, "RGB(200,200,200)", "10:00"],
  1171. [480, 0, "RGB(200,200,200)", "14:00"],
  1172. [720, 1, "RGB(200,200,200)", "18:00"],
  1173. [960, 1, "RGB(200,200,200)", "22:00"],
  1174. [1200, 1, "RGB(200,200,200)", "02:00"],
  1175. ],
  1176. Min: //最小模式
  1177. [
  1178. [0, 1, "RGB(200,200,200)", "06:00"],
  1179. [480, 0, "RGB(200,200,200)", "14:00"],
  1180. [960, 1, "RGB(200,200,200)", "22:00"],
  1181. ],
  1182. Count: 1440,
  1183. MiddleCount: 600,
  1184. GetData: function (width)
  1185. {
  1186. if (width < 200) return this.Min;
  1187. else if (width < 450) return this.Simple;
  1188. return this.Full;
  1189. }
  1190. }
  1191. //台湾股票
  1192. const TW_MINUTE_X_COORDINATE=
  1193. {
  1194. Full: //完整模式
  1195. [
  1196. [0, 1, "RGB(200,200,200)", "09:00"],
  1197. [30, 0, "RGB(200,200,200)", "09:30"],
  1198. [60, 1, "RGB(200,200,200)", "10:00"],
  1199. [90, 0, "RGB(200,200,200)", "10:30"],
  1200. [120, 1, "RGB(200,200,200)", "11:00"],
  1201. [150, 0, "RGB(200,200,200)", "11:30"],
  1202. [180, 1, "RGB(200,200,200)", "12:00"],
  1203. [210, 0, "RGB(200,200,200)", "12:30"],
  1204. [240, 1, "RGB(200,200,200)", "13:00"],
  1205. [270, 0, "RGB(200,200,200)", "13:30"],
  1206. ],
  1207. Simple: //简洁模式
  1208. [
  1209. [0, 1, "RGB(200,200,200)", "09:00"],
  1210. [60, 1, "RGB(200,200,200)", "10:00"],
  1211. [120, 1, "RGB(200,200,200)", "11:00"],
  1212. [180, 1, "RGB(200,200,200)", "12:00"],
  1213. [270, 0, "RGB(200,200,200)", "13:30"],
  1214. ],
  1215. Min: //最小模式
  1216. [
  1217. [0, 1, "RGB(200,200,200)", "09:00"],
  1218. [60, 1, "RGB(200,200,200)", "11:00"],
  1219. [270, 0, "RGB(200,200,200)", "13:30"],
  1220. ],
  1221. Count: 271,
  1222. MiddleCount: 151,
  1223. GetData: function (width)
  1224. {
  1225. if (width < 200) return this.Min;
  1226. else if (width < 450) return this.Simple;
  1227. return this.Full;
  1228. }
  1229. }
  1230. this.GetCoordinateData = function (symbol, width)
  1231. {
  1232. var data = null;
  1233. if (!symbol)
  1234. {
  1235. data = SHZE_MINUTE_X_COORDINATE; //默认沪深股票
  1236. }
  1237. else
  1238. {
  1239. var upperSymbol = symbol.toLocaleUpperCase(); //转成大写
  1240. if (MARKET_SUFFIX_NAME.IsSH(upperSymbol) || MARKET_SUFFIX_NAME.IsSZ(upperSymbol))
  1241. data = this.GetSHSZData(upperSymbol, width);
  1242. else if (MARKET_SUFFIX_NAME.IsBJ(upperSymbol))
  1243. data=this.GetBJData(upperSymbol,width);
  1244. else if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol))
  1245. data = this.GetSHOData(upperSymbol, width);
  1246. else if (MARKET_SUFFIX_NAME.IsHK(upperSymbol))
  1247. data=this.GetHKData(upperSymbol,width);
  1248. else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol))
  1249. data=this.GetTWData(upperSymbol,width);
  1250. else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol))
  1251. data=this.GetJPData(upperSymbol,width);
  1252. 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))
  1253. return this.GetChinatFuturesData(upperSymbol,width);
  1254. else if (MARKET_SUFFIX_NAME.IsUSA(upperSymbol))
  1255. data = this.GetUSAData(upperSymbol, width);
  1256. else if (MARKET_SUFFIX_NAME.IsFTSE(upperSymbol, width))
  1257. data = this.GetFTSEData(upperSymbol, width);
  1258. else if (MARKET_SUFFIX_NAME.IsFHK(upperSymbol, width))
  1259. data = this.GetFHKData(upperSymbol, width);
  1260. else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol))
  1261. data=this.GetForeignExchangeData(upperSymbol);
  1262. else if (MARKET_SUFFIX_NAME.IsET(upperSymbol))
  1263. data = this.GetETData(upperSymbol, width);
  1264. else if (MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol, width))
  1265. return data = this.GetNYMEXData(upperSymbol, width);
  1266. else if (MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol,width))
  1267. return data=this.GetCOMEXData(upperSymbol,width);
  1268. else if (MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol,width))
  1269. return data=this.GetNYBOTData(upperSymbol,width);
  1270. else if (MARKET_SUFFIX_NAME.IsCBOT(upperSymbol,width))
  1271. return data=this.GetCBOTData(upperSymbol,width);
  1272. else if (MARKET_SUFFIX_NAME.IsLME(upperSymbol,width))
  1273. return data=this.GetLMEData(upperSymbol,width);
  1274. else if (MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol))
  1275. return data=this.GetTOCOMData(upperSymbol,width);
  1276. else if (MARKET_SUFFIX_NAME.IsIPE(upperSymbol))
  1277. return data=this.GetIPEData(upperSymbol,width);
  1278. else if ((MARKET_SUFFIX_NAME.IsBIT(upperSymbol,width)))
  1279. data=this.GetBITData(upperSymbol,width);
  1280. else if (MARKET_SUFFIX_NAME.IsHSX(upperSymbol))
  1281. return data=this.GetHSXData(upperSymbol,width);
  1282. else if (MARKET_SUFFIX_NAME.IsHNX(upperSymbol))
  1283. return data=this.GetHNXData(upperSymbol,width);
  1284. else if (MARKET_SUFFIX_NAME.IsUPCOM(upperSymbol))
  1285. return data=this.GetUPCOMData(upperSymbol,width);
  1286. }
  1287. //console.log('[MiuteCoordinateData]', width);
  1288. var result = { Count: data.Count, MiddleCount: data.MiddleCount, Data: data.GetData(width) };
  1289. return result;
  1290. }
  1291. this.GetSHSZData = function (upperSymbol, width)
  1292. {
  1293. var result = SHZE_MINUTE_X_COORDINATE;
  1294. return result;
  1295. }
  1296. this.GetBJData=function(upperSymbol,width)
  1297. {
  1298. var result=SHZE_MINUTE_X_COORDINATE;
  1299. return result;
  1300. }
  1301. this.GetUSAData=function(upperSymbol,width)
  1302. {
  1303. var result=USA_MINUTE_X_COORDINATE;
  1304. return result;
  1305. }
  1306. this.GetHKData=function(upperSymbol,width)
  1307. {
  1308. var result=HK_MINUTE_X_COORDINATE;
  1309. return result;
  1310. }
  1311. this.GetTWData=function(upperSymbol,width)
  1312. {
  1313. return TW_MINUTE_X_COORDINATE;
  1314. }
  1315. this.GetFuturesData = function (upperSymbol,width,timeData)
  1316. {
  1317. var splitData = timeData.GetSplitData(upperSymbol);
  1318. if (!splitData) return null;
  1319. var stringData = g_MinuteTimeStringData.GetFutures(splitData);
  1320. if (!stringData) return null;
  1321. var result = { Count: stringData.length };
  1322. var coordinate=null;
  1323. var minWidth=200, simpleWidth=480;
  1324. /*
  1325. if (splitData.Name =='21:00-1:00,9:00-10:15,10:30-11:30,13:30-15:00')
  1326. {
  1327. minWidth=250;
  1328. simpleWidth=500;
  1329. }
  1330. */
  1331. if (width < minWidth) coordinate = splitData.Coordinate.Min;
  1332. else if (width < simpleWidth) coordinate = splitData.Coordinate.Simple;
  1333. else coordinate = splitData.Coordinate.Full;
  1334. var data=[];
  1335. for(var i=0;i<stringData.length;++i)
  1336. {
  1337. var value = stringData[i];
  1338. for(var j=0;j<coordinate.length;++j)
  1339. {
  1340. var coordinateItem = coordinate[j];
  1341. if (value == coordinateItem.Value)
  1342. {
  1343. var item = [i, 0, 'RGB(200,200,200)', coordinateItem.Text];
  1344. data.push(item);
  1345. break;
  1346. }
  1347. }
  1348. }
  1349. result.Data = data;
  1350. return result;
  1351. }
  1352. this.GetChinatFuturesData=function(upperSymbol,width)
  1353. {
  1354. return this.GetFuturesData(upperSymbol,width, g_FuturesTimeData);
  1355. }
  1356. this.GetNYMEXData=function(upperSymbol,width)
  1357. {
  1358. return this.GetFuturesData(upperSymbol,width, g_NYMEXTimeData);
  1359. }
  1360. this.GetCOMEXData=function(upperSymbol,width)
  1361. {
  1362. return this.GetFuturesData(upperSymbol,width, g_COMEXTimeData);
  1363. }
  1364. this.GetNYBOTData=function(upperSymbol,width)
  1365. {
  1366. return this.GetFuturesData(upperSymbol,width, g_NYBOTTimeData);
  1367. }
  1368. this.GetCBOTData=function(upperSymbol,width)
  1369. {
  1370. return this.GetFuturesData(upperSymbol,width, g_CBOTTimeData);
  1371. }
  1372. this.GetLMEData=function(upperSymbol,width)
  1373. {
  1374. return this.GetFuturesData(upperSymbol,width, g_LMETimeData);
  1375. }
  1376. this.GetTOCOMData=function(upperSymbol,width)
  1377. {
  1378. return this.GetFuturesData(upperSymbol,width, g_TOCOMTimeData);
  1379. }
  1380. this.GetIPEData=function(upperSymbol,width)
  1381. {
  1382. return this.GetFuturesData(upperSymbol,width, g_IPETimeData);
  1383. }
  1384. this.GetFTSEData = function (upperSymbol, width)
  1385. {
  1386. var result = FTSE_MINUTE_X_COORDINATE;
  1387. return result;
  1388. }
  1389. this.GetFHKData = function (upperSymbol, width)
  1390. {
  1391. var result = FHK_MINUTE_X_COORDINATE;
  1392. return result
  1393. }
  1394. this.GetForeignExchangeData=function(upperSymbol,width)
  1395. {
  1396. var result=FOREX_MINUTE_X_COORDINATE;
  1397. return result;
  1398. }
  1399. this.GetETData = function (upperSymbol, width)
  1400. {
  1401. throw { Name: 'MinuteCoordinateData::GetETData', Error: 'not implement' };
  1402. }
  1403. this.GetBITData=function(upperSymbol,width)
  1404. {
  1405. throw { Name: 'MinuteCoordinateData::GetBITData', Error: 'not implement' };
  1406. }
  1407. this.GetSHOData = function (upperSymbol, width)
  1408. {
  1409. var result = SHO_MINUTE_X_COORDINATE;
  1410. return result;
  1411. }
  1412. this.GetJPData=function(upperSymbol,width)
  1413. {
  1414. throw {Name:'MinuteCoordinateData::GetJPData', Error:'not implement'};
  1415. }
  1416. this.GetHSXData=function(upperSymbol,width)
  1417. {
  1418. throw {Name:'MinuteCoordinateData::GetHSXData', Error:'not implement'};
  1419. }
  1420. this.GetHNXData=function(upperSymbol,width)
  1421. {
  1422. throw {Name:'MinuteCoordinateData::GetHNXData', Error:'not implement'};
  1423. }
  1424. this.GetUPCOMData=function(upperSymbol,width)
  1425. {
  1426. throw {Name:'MinuteCoordinateData::GetUPCOMData', Error:'not implement'};
  1427. }
  1428. }
  1429. //期货不同品种 交易时间数据
  1430. function FuturesTimeData()
  1431. {
  1432. this.TIME_SPLIT=
  1433. [
  1434. //ID=0 9:00-10:15,10:31-11:30,13:31-15:00
  1435. {
  1436. Name:'9:00-10:15,10:31-11:30,13:31-15:00',
  1437. Data:
  1438. [
  1439. //9:00-10:15,10:30-11:30,13:30-15:00
  1440. { Start: 900, End: 1015 },
  1441. { Start: 1031, End: 1130 },
  1442. { Start: 1331, End: 1500 }
  1443. ],
  1444. Coordinate:
  1445. {
  1446. Full://完整模式
  1447. [
  1448. { Value: 900, Text: '9:00' },
  1449. { Value: 930, Text: '9:30' },
  1450. { Value: 1000, Text: '10:00' },
  1451. { Value: 1030, Text: '10:30' },
  1452. { Value: 1100, Text: '11:00' },
  1453. { Value: 1330, Text: '13:30' },
  1454. { Value: 1400, Text: '14:00' },
  1455. { Value: 1430, Text: '14:30' },
  1456. { Value: 1500, Text: '15:00' },
  1457. ],
  1458. Simple: //简洁模式
  1459. [
  1460. { Value: 900, Text: '9:00' },
  1461. { Value: 1000, Text: '10:00' },
  1462. { Value: 1100, Text: '11:00' },
  1463. { Value: 1400, Text: '14:00' },
  1464. { Value: 1500, Text: '15:00' },
  1465. ],
  1466. Min: //最小模式
  1467. [
  1468. { Value: 900, Text: '9:00' },
  1469. { Value: 1330, Text: '13:30' },
  1470. { Value: 1500, Text: '15:00' },
  1471. ]
  1472. }
  1473. },
  1474. //ID=1 9:30-11:30,13:01-15:15
  1475. {
  1476. Name:'9:30-11:30,13:01-15:15',
  1477. Data:
  1478. [
  1479. { Start: 930, End: 1130 },
  1480. { Start: 1301, End: 1515 }
  1481. ],
  1482. Coordinate:
  1483. {
  1484. Full://完整模式
  1485. [
  1486. { Value: 930, Text: '9:30' },
  1487. { Value: 1000, Text: '10:00' },
  1488. { Value: 1030, Text: '10:30' },
  1489. { Value: 1100, Text: '11:00' },
  1490. { Value: 1300, Text: '13:00' },
  1491. { Value: 1330, Text: '13:30' },
  1492. { Value: 1400, Text: '14:00' },
  1493. { Value: 1430, Text: '14:30' },
  1494. { Value: 1515, Text: '15:15' },
  1495. ],
  1496. Simple: //简洁模式
  1497. [
  1498. { Value: 930, Text: '9:30' },
  1499. { Value: 1030, Text: '10:30' },
  1500. { Value: 1300, Text: '13:00' },
  1501. { Value: 1400, Text: '14:00' },
  1502. { Value: 1515, Text: '15:15' },
  1503. ],
  1504. Min: //最小模式
  1505. [
  1506. { Value: 930, Text: '9:30' },
  1507. { Value: 1300, Text: '13:00' },
  1508. { Value: 1515, Text: '15:15' },
  1509. ]
  1510. }
  1511. },
  1512. //ID=2 '9:30-11:30,13:01-15:00'
  1513. {
  1514. Name:'9:30-11:30,13:00-15:00',
  1515. Data:
  1516. [
  1517. { Start: 930, End: 1130 },
  1518. { Start: 1301, End: 1500 }
  1519. ],
  1520. Coordinate:
  1521. {
  1522. Full://完整模式
  1523. [
  1524. { Value: 930, Text: '9:30' },
  1525. { Value: 1000, Text: '10:00' },
  1526. { Value: 1030, Text: '10:30' },
  1527. { Value: 1100, Text: '11:00' },
  1528. { Value: 1300, Text: '13:00' },
  1529. { Value: 1330, Text: '13:30' },
  1530. { Value: 1400, Text: '14:00' },
  1531. { Value: 1430, Text: '14:30' },
  1532. { Value: 1500, Text: '15:00' },
  1533. ],
  1534. Simple: //简洁模式
  1535. [
  1536. { Value: 930, Text: '9:30' },
  1537. { Value: 1030, Text: '10:30' },
  1538. { Value: 1300, Text: '13:00' },
  1539. { Value: 1400, Text: '14:00' },
  1540. { Value: 1500, Text: '15:00' },
  1541. ],
  1542. Min: //最小模式
  1543. [
  1544. { Value: 930, Text: '9:30' },
  1545. { Value: 1300, Text: '13:00' },
  1546. { Value: 1500, Text: '15:00' },
  1547. ]
  1548. }
  1549. },
  1550. {
  1551. Name:'21:00-23:30,9:00-10:15,10:30-11:30,13:30-15:00',
  1552. Data:
  1553. [
  1554. { Start: 2100, End: 2330 },
  1555. { Start: 901, End: 1015 },
  1556. { Start: 1031, End: 1130 },
  1557. { Start: 1331, End: 1500 }
  1558. ],
  1559. Coordinate:
  1560. {
  1561. Full://完整模式
  1562. [
  1563. { Value: 2100, Text: '21:00' },
  1564. { Value: 2200, Text: '22:00' },
  1565. { Value: 2300, Text: '23:00' },
  1566. { Value: 901, Text: '9:00' },
  1567. { Value: 1031, Text: '10:30' },
  1568. { Value: 1331, Text: '13:30' },
  1569. { Value: 1430, Text: '14:30' },
  1570. { Value: 1500, Text: '15:00' },
  1571. ],
  1572. Simple: //简洁模式
  1573. [
  1574. { Value: 2100, Text: '21:00' },
  1575. { Value: 901, Text: '9:00' },
  1576. { Value: 1331, Text: '13:30' },
  1577. { Value: 1500, Text: '15:00' },
  1578. ],
  1579. Min: //最小模式
  1580. [
  1581. { Value: 2100, Text: '21:00' },
  1582. { Value: 901, Text: '9:00' },
  1583. { Value: 1500, Text: '15:00' },
  1584. ]
  1585. }
  1586. },
  1587. //ID=4 21:00-1:00,9:01-10:15,10:31-11:30,13:31-15:00
  1588. {
  1589. Name:'21:00-1:00,9:01-10:15,10:31-11:30,13:31-15:00',
  1590. Data:
  1591. [
  1592. { Start: 2100, End: 2359 },
  1593. { Start: 0, End: 100 },
  1594. { Start: 901, End: 1015 },
  1595. { Start: 1031, End: 1130 },
  1596. { Start: 1331, End: 1500 }
  1597. ],
  1598. Coordinate:
  1599. {
  1600. Full://完整模式
  1601. [
  1602. { Value: 2100, Text: '21:00' },
  1603. { Value: 2200, Text: '22:00' },
  1604. { Value: 2300, Text: '23:00' },
  1605. { Value: 901, Text: '9:00' },
  1606. { Value: 1031, Text: '10:30' },
  1607. { Value: 1331, Text: '13:30' },
  1608. { Value: 1500, Text: '15:00' },
  1609. ],
  1610. Simple: //简洁模式
  1611. [
  1612. { Value: 2100, Text: '21:00' },
  1613. { Value: 2300, Text: '23:00' },
  1614. { Value: 901, Text: '9:00' },
  1615. { Value: 1031, Text: '10:30' },
  1616. { Value: 1500, Text: '15:00' },
  1617. ],
  1618. Min: //最小模式
  1619. [
  1620. { Value: 2100, Text: '21:00' },
  1621. { Value: 901, Text: '9:00' },
  1622. { Value: 1500, Text: '15:00' },
  1623. ]
  1624. }
  1625. },
  1626. //ID=5 21:00-2:30,9:01-10:15,10:31-11:30,13:31-15:00
  1627. {
  1628. Name:'21:00-2:30,9:01-10:15,10:31-11:30,13:31-15:00',
  1629. Data:
  1630. [
  1631. { Start: 2100, End: 2359 },
  1632. { Start: 0, End: 230 },
  1633. { Start: 901, End: 1015 },
  1634. { Start: 1031, End: 1130 },
  1635. { Start: 1331, End: 1500 }
  1636. ],
  1637. Coordinate:
  1638. {
  1639. Full://完整模式
  1640. [
  1641. { Value: 2100, Text: '21:00' },
  1642. { Value: 2300, Text: '23:00' },
  1643. { Value: 100, Text: '1:00' },
  1644. { Value: 901, Text: '9:00' },
  1645. { Value: 1031, Text: '10:30' },
  1646. { Value: 1331, Text: '13:30' },
  1647. { Value: 1500, Text: '15:00' },
  1648. ],
  1649. Simple: //简洁模式
  1650. [
  1651. { Value: 2100, Text: '21:00' },
  1652. { Value: 2300, Text: '23:00' },
  1653. { Value: 901, Text: '9:00' },
  1654. { Value: 1100, Text: '11:00' },
  1655. { Value: 1500, Text: '15:00' },
  1656. ],
  1657. Min: //最小模式
  1658. [
  1659. { Value: 2100, Text: '21:00' },
  1660. { Value: 901, Text: '9:00' },
  1661. { Value: 1500, Text: '15:00' },
  1662. ]
  1663. }
  1664. },
  1665. //ID:6 21:00-23:00,9:01-10:15,10:30-11:30,13:31-15:00
  1666. {
  1667. Name:'21:00-23:00,9:01-10:15,10:30-11:30,13:31-15:00',
  1668. Data:
  1669. [
  1670. { Start: 2100, End: 2300 },
  1671. { Start: 901, End: 1015 },
  1672. { Start: 1031, End: 1130 },
  1673. { Start: 1331, End: 1500 }
  1674. ],
  1675. Coordinate:
  1676. {
  1677. Full://完整模式
  1678. [
  1679. { Value: 2100, Text: '21:00' },
  1680. { Value: 2200, Text: '22:00' },
  1681. { Value: 2300, Text: '23:00' },
  1682. { Value: 1030, Text: '10:30' },
  1683. { Value: 1331, Text: '13:30' },
  1684. { Value: 1430, Text: '14:30' },
  1685. { Value: 1500, Text: '15:00' },
  1686. ],
  1687. Simple: //简洁模式
  1688. [
  1689. { Value: 2100, Text: '21:00' },
  1690. { Value: 2300, Text: '23:00' },
  1691. { Value: 1331, Text: '13:30' },
  1692. { Value: 1500, Text: '15:00' },
  1693. ],
  1694. Min: //最小模式
  1695. [
  1696. { Value: 2100, Text: '21:00' },
  1697. { Value: 2300, Text: '23:00' },
  1698. { Value: 1500, Text: '15:00' },
  1699. ]
  1700. }
  1701. },
  1702. {
  1703. Name:'9:00-11:30,13:00-15:00',
  1704. Data:
  1705. [
  1706. { Start: 900, End: 1130 },
  1707. { Start: 1300, End: 1500 }
  1708. ],
  1709. Coordinate:
  1710. {
  1711. Full://完整模式
  1712. [
  1713. { Value: 900, Text: '9:00' },
  1714. { Value: 1000, Text: '10:00' },
  1715. { Value: 1030, Text: '10:30' },
  1716. { Value: 1100, Text: '11:00' },
  1717. { Value: 1300, Text: '13:00' },
  1718. { Value: 1330, Text: '13:30' },
  1719. { Value: 1400, Text: '14:00' },
  1720. { Value: 1430, Text: '14:30' },
  1721. { Value: 1500, Text: '15:00' },
  1722. ],
  1723. Simple: //简洁模式
  1724. [
  1725. { Value: 900, Text: '9:00' },
  1726. { Value: 1000, Text: '10:00' },
  1727. { Value: 1300, Text: '13:00' },
  1728. { Value: 1400, Text: '14:00' },
  1729. { Value: 1500, Text: '15:00' },
  1730. ],
  1731. Min: //最小模式
  1732. [
  1733. { Value: 900, Text: '9:00' },
  1734. { Value: 1300, Text: '13:00' },
  1735. { Value: 1500, Text: '15:00' },
  1736. ]
  1737. }
  1738. },
  1739. {
  1740. Name:'21:00-23:00,9:00-10:15,10:30-11:30,13:30-15:00',
  1741. Data:
  1742. [
  1743. { Start: 2100, End: 2300 },
  1744. { Start: 900, End: 1015 },
  1745. { Start: 1030, End: 1130 },
  1746. { Start: 1330, End: 1500 }
  1747. ],
  1748. Coordinate:
  1749. {
  1750. Full://完整模式
  1751. [
  1752. { Value: 2100, Text: '21:00' },
  1753. { Value: 2200, Text: '22:00' },
  1754. { Value: 2300, Text: '23:00' },
  1755. { Value: 1030, Text: '10:30' },
  1756. { Value: 1331, Text: '13:30' },
  1757. { Value: 1430, Text: '14:30' },
  1758. { Value: 1500, Text: '15:00' },
  1759. ],
  1760. Simple: //简洁模式
  1761. [
  1762. { Value: 2100, Text: '21:00' },
  1763. { Value: 2300, Text: '23:00' },
  1764. { Value: 1331, Text: '13:30' },
  1765. { Value: 1500, Text: '15:00' },
  1766. ],
  1767. Min: //最小模式
  1768. [
  1769. { Value: 2100, Text: '21:00' },
  1770. { Value: 2300, Text: '23:00' },
  1771. { Value: 1500, Text: '15:00' },
  1772. ]
  1773. }
  1774. },
  1775. //ID=9 9:01-10:15,10:31-11:30,13:31-15:00
  1776. {
  1777. Name:'9:01-10:15,10:31-11:30,13:31-15:00',
  1778. Data:
  1779. [
  1780. //9:01-10:15,10:31-11:30,13:31-15:00
  1781. { Start: 901, End: 1015 },
  1782. { Start: 1031, End: 1130 },
  1783. { Start: 1331, End: 1500 }
  1784. ],
  1785. Coordinate:
  1786. {
  1787. Full://完整模式
  1788. [
  1789. { Value: 901, Text: '9:00' },
  1790. { Value: 930, Text: '9:30' },
  1791. { Value: 1000, Text: '10:00' },
  1792. { Value: 1030, Text: '10:30' },
  1793. { Value: 1100, Text: '11:00' },
  1794. { Value: 1330, Text: '13:30' },
  1795. { Value: 1400, Text: '14:00' },
  1796. { Value: 1430, Text: '14:30' },
  1797. { Value: 1500, Text: '15:00' },
  1798. ],
  1799. Simple: //简洁模式
  1800. [
  1801. { Value: 901, Text: '9:00' },
  1802. { Value: 1000, Text: '10:00' },
  1803. { Value: 1330, Text: '13:30' },
  1804. { Value: 1430, Text: '14:30' },
  1805. { Value: 1500, Text: '15:00' },
  1806. ],
  1807. Min: //最小模式
  1808. [
  1809. { Value: 901, Text: '9:00' },
  1810. { Value: 1330, Text: '13:30' },
  1811. { Value: 1500, Text: '15:00' },
  1812. ]
  1813. }
  1814. }
  1815. ];
  1816. this.MAP_TWOWORDS = new Map([
  1817. //大连商品交易所
  1818. [MARKET_SUFFIX_NAME.DCE + '-JD', {Time:0,Decimal:0,Name:"鸡蛋"}],
  1819. [MARKET_SUFFIX_NAME.DCE + '-FB', {Time:0,Decimal:2,Name:"纤板"}],
  1820. [MARKET_SUFFIX_NAME.DCE + '-BB', {Time:0,Decimal:2,Name:"胶板"}],
  1821. [MARKET_SUFFIX_NAME.DCE + '-PP', {Time:6,Decimal:0,Name:"丙烯"}],
  1822. [MARKET_SUFFIX_NAME.DCE + '-JM', {Time:6,Decimal:1,Name:'焦煤'}],
  1823. [MARKET_SUFFIX_NAME.DCE + '-EG', {Time:6,Decimal:0,Name:'乙二醇'}],
  1824. [MARKET_SUFFIX_NAME.DCE + '-EB', {Time:6,Decimal:0,Name:'苯乙烯'}],
  1825. [MARKET_SUFFIX_NAME.DCE + '-CS', {Time:6,Decimal:0,Name:'淀粉'}],
  1826. [MARKET_SUFFIX_NAME.DCE + '-PG', {Time:6,Decimal:0,Name:'液化气'}],
  1827. [MARKET_SUFFIX_NAME.DCE + '-RR', {Time:6,Decimal:0,Name:'梗米'}],
  1828. [MARKET_SUFFIX_NAME.DCE + '-LH', {Time:0,Decimal:0,Name:'生猪'}],
  1829. //上期所
  1830. [MARKET_SUFFIX_NAME.SHFE + '-CU', {Time:4,Decimal:0,Name:"铜"}],
  1831. [MARKET_SUFFIX_NAME.SHFE + '-AL', {Time:4,Decimal:0,Name:"铝"}],
  1832. [MARKET_SUFFIX_NAME.SHFE + '-NI', {Time:4,Decimal:0,Name:"镍"}],
  1833. [MARKET_SUFFIX_NAME.SHFE + '-SN', {Time:4,Decimal:0,Name:'沪锡'}],
  1834. [MARKET_SUFFIX_NAME.SHFE + '-ZN', {Time:4,Decimal:0,Name:"沪锌"}],
  1835. [MARKET_SUFFIX_NAME.SHFE + '-PB', {Time:4,Decimal:0,Name:'沪铅'}],
  1836. [MARKET_SUFFIX_NAME.SHFE + '-RU', {Time:6,Decimal:0,Name:"天然橡胶"}],
  1837. [MARKET_SUFFIX_NAME.SHFE + '-FU', {Time:6,Decimal:0,Name:"燃料油"}],
  1838. [MARKET_SUFFIX_NAME.SHFE + '-RB', {Time:6,Decimal:0,Name:"螺纹钢"}],
  1839. [MARKET_SUFFIX_NAME.SHFE + '-BU', {Time:6,Decimal:0,Name:'石油沥青'}],
  1840. [MARKET_SUFFIX_NAME.SHFE + '-HC', {Time:6,Decimal:0,Name:"热轧卷板"}],
  1841. [MARKET_SUFFIX_NAME.SHFE + '-SP', {Time:6,Decimal:0,Name:"纸浆"}],
  1842. [MARKET_SUFFIX_NAME.SHFE + '-WR', {Time:0,Decimal:0,Name:"线材"}],
  1843. [MARKET_SUFFIX_NAME.SHFE + '-AG', {Time:5,Decimal:0,Name:"白银"}],
  1844. [MARKET_SUFFIX_NAME.SHFE + '-AU', {Time:5,Decimal:2,Name:"黄金"}],
  1845. [MARKET_SUFFIX_NAME.SHFE + '-SS', {Time:4,Decimal:0,Name:'不锈钢'}],
  1846. [MARKET_SUFFIX_NAME.SHFE + '-AO', {Time:4,Decimal:0,Name:'氧化铝'}],
  1847. [MARKET_SUFFIX_NAME.SHFE + '-BR', {Time:6,Decimal:0,Name:'合成橡胶'}],
  1848. //上期能源
  1849. [MARKET_SUFFIX_NAME.SHFE + '-NR', {Time:6,Decimal:1,Name:'20号胶'}],
  1850. [MARKET_SUFFIX_NAME.SHFE + '-SC', {Time:5,Decimal:1,Name:'原油'}],
  1851. [MARKET_SUFFIX_NAME.SHFE + '-LU', {Time:6,Decimal:0,Name:'低硫燃油'}],
  1852. [MARKET_SUFFIX_NAME.SHFE + '-BC', {Time:4,Decimal:0,Name:'国际铜'}],
  1853. [MARKET_SUFFIX_NAME.SHFE + '-EC', {Time:0,Decimal:0,Name:'集运指数'}],
  1854. //郑州期货交易所
  1855. [MARKET_SUFFIX_NAME.CZCE + '-CF', {Time:6,Decimal:0,Name:"棉花"}],
  1856. [MARKET_SUFFIX_NAME.CZCE + '-SR', {Time:6,Decimal:0,Name:"白糖"}],
  1857. [MARKET_SUFFIX_NAME.CZCE + '-MA', {Time:6,Decimal:0,Name:"甲醇"}],
  1858. [MARKET_SUFFIX_NAME.CZCE + '-ZC', {Time:6,Decimal:1,Name:'动力煤'}],
  1859. [MARKET_SUFFIX_NAME.CZCE + '-TA', {Time:6,Decimal:0,Name:"精对苯二甲酸(PTA)"}],
  1860. [MARKET_SUFFIX_NAME.CZCE + '-RM', {Time:6,Decimal:0,Name:'菜籽粕'}],
  1861. [MARKET_SUFFIX_NAME.CZCE + '-OI', {Time:6,Decimal:0,Name:"菜籽油"}],
  1862. [MARKET_SUFFIX_NAME.CZCE + '-ME', {Time:3,Decimal:0,Name:"甲醇(老)"}],
  1863. [MARKET_SUFFIX_NAME.CZCE + '-FG', {Time:6,Decimal:0,Name:'平板玻璃'}],
  1864. [MARKET_SUFFIX_NAME.CZCE + '-WS', {Time:0,Decimal:0}],
  1865. [MARKET_SUFFIX_NAME.CZCE + '-WT', {Time:0,Decimal:0}],
  1866. [MARKET_SUFFIX_NAME.CZCE + '-GN', {Time:0,Decimal:0}],
  1867. [MARKET_SUFFIX_NAME.CZCE + '-RO', {Time:0,Decimal:0}],
  1868. [MARKET_SUFFIX_NAME.CZCE + '-RS', {Time:0,Decimal:0,Name:"菜籽"}],
  1869. [MARKET_SUFFIX_NAME.CZCE + '-ER', {Time:0,Decimal:0}],
  1870. [MARKET_SUFFIX_NAME.CZCE + '-RI', {Time:0,Decimal:0,Name:"早籼稻"}],
  1871. [MARKET_SUFFIX_NAME.CZCE + '-WH', {Time:0,Decimal:0,Name:"强麦"}],
  1872. [MARKET_SUFFIX_NAME.CZCE + '-AP', {Time:0,Decimal:0,Name:"苹果"}],
  1873. [MARKET_SUFFIX_NAME.CZCE + '-PM', {Time:0,Decimal:0,Name:"普麦"}],
  1874. [MARKET_SUFFIX_NAME.CZCE + '-QM', {Time:0,Decimal:0}],
  1875. [MARKET_SUFFIX_NAME.CZCE + '-TC', {Time:0,Decimal:0}],
  1876. [MARKET_SUFFIX_NAME.CZCE + '-JR', {Time:0,Decimal:0,Name:"粳稻"}],
  1877. [MARKET_SUFFIX_NAME.CZCE + '-LR', {Time:0,Decimal:0,Name:"晚籼稻"}],
  1878. [MARKET_SUFFIX_NAME.CZCE + '-SF', {Time:0,Decimal:0,Name:"硅铁"}],
  1879. [MARKET_SUFFIX_NAME.CZCE + '-SM', {Time:0,Decimal:0,Name:"锰硅"}],
  1880. [MARKET_SUFFIX_NAME.CZCE + '-CJ', {Time:0,Decimal:2, Name:"红枣"}],
  1881. [MARKET_SUFFIX_NAME.CZCE + '-CY', {Time:6,Decimal:0, Name:"棉纱"}],
  1882. [MARKET_SUFFIX_NAME.CZCE + '-UR', {Time:0,Decimal:0, Name:"尿素"}],
  1883. [MARKET_SUFFIX_NAME.CZCE + '-SA', {Time:6,Decimal:0, Name:"纯碱"}],
  1884. [MARKET_SUFFIX_NAME.CZCE + '-PF', {Time:6,Decimal:0, Name:"短纤"}],
  1885. [MARKET_SUFFIX_NAME.CZCE + '-PK', {Time:0,Decimal:0, Name:"花生"}],
  1886. [MARKET_SUFFIX_NAME.CZCE + '-PR', {Time:6,Decimal:0, Name:"瓶片"}],
  1887. //中期所
  1888. [MARKET_SUFFIX_NAME.CFFEX + '-TF', {Time:1,Decimal:3,Name:"二债"}],
  1889. [MARKET_SUFFIX_NAME.CFFEX + '-TS', {Time:1,Decimal:3,Name:"五债"}],
  1890. [MARKET_SUFFIX_NAME.CFFEX + '-IH', {Time:2,Decimal:1,Name:'上证股指期货'}],
  1891. [MARKET_SUFFIX_NAME.CFFEX + '-IC', {Time:2,Decimal:1,Name:'中证股指期货'}],
  1892. [MARKET_SUFFIX_NAME.CFFEX + '-IF', {Time:2,Decimal:1,Name:'沪深股指期货'}],
  1893. [MARKET_SUFFIX_NAME.CFFEX + '-IM', {Time:2,Decimal:1,Name:'中证1000股指期货'}],
  1894. [MARKET_SUFFIX_NAME.CFFEX + '-IO', {Time:2,Decimal:1,Name:'沪深300股指期权'}],
  1895. [MARKET_SUFFIX_NAME.CFFEX + '-MO', {Time:2,Decimal:1,Name:'中证1000股指期权'}],
  1896. [MARKET_SUFFIX_NAME.CFFEX + '-HO', {Time:2,Decimal:1,Name:'上证50股指期权'}],
  1897. //广州期货交易所
  1898. [MARKET_SUFFIX_NAME.GZFE+'-SI', {Time:0,Decimal:2,Name:"工业硅"}],
  1899. [MARKET_SUFFIX_NAME.GZFE+'-LC', {Time:0,Decimal:2,Name:"碳酸锂"}]
  1900. ]);
  1901. this.MAP_ONEWORD = new Map([
  1902. //大连商品交易所
  1903. [MARKET_SUFFIX_NAME.DCE + '-C', {Time:6,Decimal:0,Name:"玉米"}],
  1904. [MARKET_SUFFIX_NAME.DCE + '-L', {Time:6,Decimal:0,Name:"乙烯"}],
  1905. [MARKET_SUFFIX_NAME.DCE + '-V', {Time:6,Decimal:0,Name:"PVC"}],
  1906. [MARKET_SUFFIX_NAME.DCE + '-A', {Time:6,Decimal:0,Name:"豆一"}],
  1907. [MARKET_SUFFIX_NAME.DCE + '-B', {Time:6,Decimal:0,Name:"豆二"}],
  1908. [MARKET_SUFFIX_NAME.DCE + '-M', {Time:6,Decimal:0,Name:"豆粕"}],
  1909. [MARKET_SUFFIX_NAME.DCE + '-Y', {Time:6,Decimal:0,Name:"豆油"}],
  1910. [MARKET_SUFFIX_NAME.DCE + '-P', {Time:6,Decimal:0,Name:"棕榈"}],
  1911. [MARKET_SUFFIX_NAME.DCE + '-J', {Time:6,Decimal:1,Name:'焦炭'}],
  1912. [MARKET_SUFFIX_NAME.DCE + '-I', {Time:6,Decimal:1,Name:"铁矿"}],
  1913. //中期所
  1914. [MARKET_SUFFIX_NAME.CFFEX + '-T', { Time: 1, Decimal: 3, Name:"十债"}],
  1915. ]);
  1916. this.GetData = function (upperSymbol)
  1917. {
  1918. var oneWord = upperSymbol.charAt(0);
  1919. var twoWords = upperSymbol.substr(0, 2);
  1920. var oneWordName = null, twoWordsName = null;
  1921. if (MARKET_SUFFIX_NAME.IsDCE(upperSymbol)) //大连商品交易所
  1922. {
  1923. oneWordName = MARKET_SUFFIX_NAME.DCE + '-' + oneWord;
  1924. twoWordsName = MARKET_SUFFIX_NAME.DCE + '-' + twoWords;
  1925. }
  1926. else if (MARKET_SUFFIX_NAME.IsSHFE(upperSymbol)) //上期所
  1927. {
  1928. oneWordName = MARKET_SUFFIX_NAME.SHFE + '-' + oneWord;
  1929. twoWordsName = MARKET_SUFFIX_NAME.SHFE + '-' + twoWords;
  1930. }
  1931. else if (MARKET_SUFFIX_NAME.IsCFFEX(upperSymbol)) //中期所
  1932. {
  1933. oneWordName = MARKET_SUFFIX_NAME.CFFEX + '-' + oneWord;
  1934. twoWordsName = MARKET_SUFFIX_NAME.CFFEX + '-' + twoWords;
  1935. }
  1936. else if (MARKET_SUFFIX_NAME.IsCZCE(upperSymbol)) //郑州期货交易所
  1937. {
  1938. oneWordName = MARKET_SUFFIX_NAME.CZCE + '-' + oneWord;
  1939. twoWordsName = MARKET_SUFFIX_NAME.CZCE + '-' + twoWords;
  1940. }
  1941. else if (MARKET_SUFFIX_NAME.IsGZFE(upperSymbol)) //广州期货交易所
  1942. {
  1943. oneWordName = MARKET_SUFFIX_NAME.GZFE + '-' + oneWord;
  1944. twoWordsName = MARKET_SUFFIX_NAME.GZFE + '-' + twoWords;
  1945. }
  1946. if (this.MAP_TWOWORDS.has(twoWordsName))
  1947. {
  1948. return this.MAP_TWOWORDS.get(twoWordsName);
  1949. }
  1950. if (this.MAP_ONEWORD.has(oneWordName))
  1951. {
  1952. return this.MAP_ONEWORD.get(oneWordName);
  1953. }
  1954. return null;
  1955. }
  1956. this.GetSplitData = function (upperSymbol)
  1957. {
  1958. var data = this.GetData(upperSymbol);
  1959. if (!data) return null;
  1960. return this.TIME_SPLIT[data.Time];
  1961. }
  1962. this.GetDecimal = function (upperSymbol) //期货价格小数位数
  1963. {
  1964. var data = this.GetData(upperSymbol);
  1965. if (!data) return 2;
  1966. return data.Decimal;
  1967. }
  1968. //添加新品种
  1969. this.AddNewFutures=function(obj) //{ Suffix:后缀, Symbol:品种代码, Time:交易时间段, Decimal:小数位数, Name:名字 }
  1970. {
  1971. if (!obj) return;
  1972. var key=obj.Suffix+'-'+obj.Symbol;
  1973. var item={ Time:obj.Time, Decimal:obj.Decimal, Name:obj.Name };
  1974. if (obj.Symbol.length==1)
  1975. {
  1976. this.MAP_ONEWORD.set(key, item);
  1977. }
  1978. else if (obj.Symbol.length==2)
  1979. {
  1980. this.MAP_TWOWORDS.set(key, item);
  1981. }
  1982. }
  1983. }
  1984. //纽约商品期货交易所 交易时间数据
  1985. function NYMEXTimeData()
  1986. {
  1987. this.MarketSuffix=".NYMEX";
  1988. this.TimeType=0; // 0=标准时间 1=夏令时间
  1989. //标准时间
  1990. this.TIME_SPLIT =
  1991. [
  1992. {
  1993. Name: '6:00-5:00',
  1994. Data:
  1995. [
  1996. //6:00 - 5:00
  1997. { Start: 600, End: 2359 },
  1998. { Start: 0, End: 500 },
  1999. ],
  2000. Coordinate:
  2001. {
  2002. Full://完整模式
  2003. [
  2004. { Value: 600, Text: '6:00' },
  2005. { Value: 800, Text: '8:00' },
  2006. { Value: 1000, Text: '10:00' },
  2007. { Value: 1200, Text: '12:00' },
  2008. { Value: 1400, Text: '14:00' },
  2009. { Value: 1600, Text: '16:00' },
  2010. { Value: 1800, Text: '18:00' },
  2011. { Value: 2000, Text: '20:00' },
  2012. { Value: 2200, Text: '22:00' },
  2013. { Value: 0, Text: '0:00' },
  2014. { Value: 200, Text: '2:00' },
  2015. { Value: 400, Text: '4:00' },
  2016. ],
  2017. Simple: //简洁模式
  2018. [
  2019. { Value: 600, Text: '6:00' },
  2020. //{ Value: 800, Text: '8:00' },
  2021. { Value: 1000, Text: '10:00' },
  2022. //{ Value: 1200, Text: '12:00' },
  2023. { Value: 1400, Text: '14:00' },
  2024. //{ Value: 1600, Text: '16:00' },
  2025. { Value: 1800, Text: '18:00' },
  2026. //{ Value: 2000, Text: '20:00' },
  2027. { Value: 2200, Text: '22:00' },
  2028. //{ Value: 0, Text: '0:00' },
  2029. { Value: 200, Text: '2:00' }
  2030. //{ Value: 400, Text: '4:00' },
  2031. ],
  2032. Min: //最小模式
  2033. [
  2034. { Value: 600, Text: '6:00' },
  2035. { Value: 1800, Text: '18:00' },
  2036. { Value: 500, Text: '5:00' }
  2037. ]
  2038. }
  2039. }
  2040. ]
  2041. //美国夏时令
  2042. this.TIME_SPLIT2=
  2043. [
  2044. {
  2045. Name:'7:00-6:00',
  2046. Data:
  2047. [
  2048. //6:00 - 5:00
  2049. { Start: 700, End: 2359 },
  2050. { Start: 0, End: 600 },
  2051. ],
  2052. Coordinate:
  2053. {
  2054. Full://完整模式
  2055. [
  2056. { Value: 700, Text: '7:00' },
  2057. { Value: 900, Text: '9:00' },
  2058. { Value: 1100, Text: '11:00' },
  2059. { Value: 1300, Text: '13:00' },
  2060. { Value: 1500, Text: '15:00' },
  2061. { Value: 1700, Text: '17:00' },
  2062. { Value: 1900, Text: '19:00' },
  2063. { Value: 2100, Text: '21:00' },
  2064. { Value: 2300, Text: '23:00' },
  2065. { Value: 1, Text: '1:00' },
  2066. { Value: 300, Text: '3:00' },
  2067. { Value: 500, Text: '5:00' }
  2068. ],
  2069. Simple: //简洁模式
  2070. [
  2071. { Value: 700, Text: '7:00' },
  2072. //{ Value: 900, Text: '9:00' },
  2073. { Value: 1100, Text: '11:00' },
  2074. //{ Value: 1300, Text: '13:00' },
  2075. { Value: 1500, Text: '15:00' },
  2076. //{ Value: 1700, Text: '17:00' },
  2077. { Value: 1900, Text: '19:00' },
  2078. //{ Value: 2100, Text: '21:00' },
  2079. { Value: 2300, Text: '23:00' },
  2080. //{ Value: 1, Text: '1:00' },
  2081. { Value: 300, Text: '3:00' }
  2082. //{ Value: 500, Text: '5:00' }
  2083. ],
  2084. Min: //最小模式
  2085. [
  2086. { Value: 700, Text: '7:00' },
  2087. { Value: 1900, Text: '19:00' },
  2088. { Value: 500, Text: '5:00' }
  2089. ]
  2090. }
  2091. }
  2092. ]
  2093. this.FUTURES_LIST=
  2094. [
  2095. { Symbol:"CL", Decimal:2, Time:0 }, //原油
  2096. { Symbol:"NG", Decimal:3, Time:0 }, //天然气
  2097. { Symbol:"RB", Decimal:4, Time:0 }, //汽油
  2098. { Symbol:"PL", Decimal:1, Time:0 }, //铂金
  2099. { Symbol:"PA", Decimal:2, Time:0 }, //钯金
  2100. { Symbol:"HR", Decimal:0, Time:0 }, //热轧钢卷
  2101. { Symbol:"QM", Decimal:3, Time:0 }, //迷你原油
  2102. { Symbol:"HO", Decimal:4, Time:0 }, //燃油
  2103. ]
  2104. this.GetFuturesInfo=function(upperSymbol)
  2105. {
  2106. if (upperSymbol.indexOf(this.MarketSuffix)<=0) return null;
  2107. for(var i in this.FUTURES_LIST)
  2108. {
  2109. var item=this.FUTURES_LIST[i];
  2110. if (upperSymbol.indexOf(item.Symbol)==0)
  2111. {
  2112. return item;
  2113. }
  2114. }
  2115. return null;
  2116. }
  2117. this.GetSplitData = function (upperSymbol)
  2118. {
  2119. //夏令和标准时间切换
  2120. var timeSplit=this.TimeType==0 ? this.TIME_SPLIT : this.TIME_SPLIT2;
  2121. var find=this.GetFuturesInfo(upperSymbol);
  2122. if (find) return timeSplit[find.Time];
  2123. return timeSplit[0];
  2124. }
  2125. this.GetDecimal = function (upperSymbol)
  2126. {
  2127. var find=this.GetFuturesInfo(upperSymbol);
  2128. if (find) return find.Decimal;
  2129. return 3;
  2130. }
  2131. this.GetMarketStatus = function (upperSymbol) // 0=闭市 1=盘前 2=盘中 3=盘后
  2132. {
  2133. var usaDate=GetLocalTime(-4); //需要转成美国时间的 周6 周日
  2134. var nowDate= new Date();
  2135. var day = usaDate.getDay();
  2136. var time = nowDate.getHours() * 100 + nowDate.getMinutes();
  2137. if(day == 6 || day== 0) return 0; //周末
  2138. if(time>430 && time<730) return 1;
  2139. return 2;
  2140. }
  2141. this.AddNewFutures=function(obj) //修改或添加品种 obj={ Symbol:品种代码, Time:时间id, Decimal:小数位数, Name:名字 }
  2142. {
  2143. if (!obj) return;
  2144. var newItem={ Symbol:obj.Symbol, Time:obj.Time, Decimal:obj.Decimal, Name:obj.Name };
  2145. for(var i=0;i<this.FUTURES_LIST.length;++i)
  2146. {
  2147. var item=this.FUTURES_LIST[i];
  2148. if (item.Symbol==newItem.Symbol)
  2149. {
  2150. this.FUTURES_LIST[i]=newItem;
  2151. return;
  2152. }
  2153. }
  2154. this.FUTURES_LIST.push(newItem);
  2155. }
  2156. }
  2157. //纽约金属交易所(COMEX)
  2158. function COMEXTimeData()
  2159. {
  2160. this.newMethod=NYMEXTimeData; //派生
  2161. this.newMethod();
  2162. delete this.newMethod;
  2163. this.FUTURES_LIST=
  2164. [
  2165. { Symbol:"GC", Decimal:1, Time:0, Name:"COMEX黄金"}, //COMEX黄金
  2166. { Symbol:"QO", Decimal:2, Time:0, Name:"迷你黄金" }, //迷你黄金
  2167. { Symbol:"MG", Decimal:1, Time:0, Name:"微型黄金" }, //微型黄金
  2168. { Symbol:"QI", Decimal:4, Time:0, Name:"迷你白银" }, //迷你白银
  2169. { Symbol:"SI", Decimal:3, Time:0, Name:"COMEX白银" }, //COMEX白银
  2170. { Symbol:"HG", Decimal:4, Time:0, Name:"COMEX铜" } //COMEX铜
  2171. ]
  2172. this.MarketSuffix=".COMEX";
  2173. }
  2174. //纽约期货交易所(ICEUS-NYBOT)
  2175. function NYBOTTimeData()
  2176. {
  2177. this.newMethod=NYMEXTimeData; //派生
  2178. this.newMethod();
  2179. delete this.newMethod;
  2180. //美国标准时间
  2181. this.TIME_SPLIT=
  2182. [
  2183. {
  2184. Name:'9:00-2:20',
  2185. Data:
  2186. [
  2187. //9:00-2:20
  2188. { Start: 900, End: 2359 },
  2189. { Start: 0, End: 220 },
  2190. ],
  2191. Coordinate:
  2192. {
  2193. Full://完整模式
  2194. [
  2195. { Value: 900, Text: '9:00' },
  2196. { Value: 1100, Text: '11:00' },
  2197. { Value: 1300, Text: '13:00' },
  2198. { Value: 1500, Text: '15:00' },
  2199. { Value: 1700, Text: '17:00' },
  2200. { Value: 1900, Text: '19:00' },
  2201. { Value: 2100, Text: '21:00' },
  2202. { Value: 2300, Text: '23:00' },
  2203. { Value: 100, Text: '1:00' }
  2204. ],
  2205. Simple: //简洁模式
  2206. [
  2207. { Value: 900, Text: '9:00' },
  2208. //{ Value: 1100, Text: '11:00' },
  2209. { Value: 1300, Text: '13:00' },
  2210. //{ Value: 1500, Text: '15:00' },
  2211. { Value: 1700, Text: '17:00' },
  2212. //{ Value: 1900, Text: '19:00' },
  2213. { Value: 2100, Text: '21:00' },
  2214. //{ Value: 2300, Text: '23:00' },
  2215. { Value: 100, Text: '1:00' }
  2216. ],
  2217. Min: //最小模式
  2218. [
  2219. { Value: 900, Text: '9:00' },
  2220. { Value: 1700, Text: '17:00' },
  2221. { Value: 100, Text: '1:00' }
  2222. ]
  2223. }
  2224. },
  2225. {
  2226. Name:'15:30-1:00',
  2227. Data:
  2228. [
  2229. //9:00-2:20
  2230. { Start: 1530, End: 2359 },
  2231. { Start: 0, End: 100 },
  2232. ],
  2233. Coordinate:
  2234. {
  2235. Full://完整模式
  2236. [
  2237. { Value: 1600, Text: '16:00' },
  2238. { Value: 1700, Text: '17:00' },
  2239. { Value: 1800, Text: '18:00' },
  2240. { Value: 1900, Text: '19:00' },
  2241. { Value: 2000, Text: '20:00' },
  2242. { Value: 2100, Text: '21:00' },
  2243. { Value: 2200, Text: '22:00' },
  2244. { Value: 2300, Text: '23:00' },
  2245. { Value: 0, Text: '0:00' },
  2246. { Value: 100, Text: '1:00' }
  2247. ],
  2248. Simple: //简洁模式
  2249. [
  2250. { Value: 1600, Text: '16:00' },
  2251. //{ Value: 1600, Text: '17:00' },
  2252. { Value: 1800, Text: '18:00' },
  2253. //{ Value: 1900, Text: '19:00' },
  2254. { Value: 2000, Text: '20:00' },
  2255. //{ Value: 2100, Text: '21:00' },
  2256. { Value: 2200, Text: '22:00' },
  2257. //{ Value: 2300, Text: '23:00' },
  2258. { Value: 0, Text: '0:00' },
  2259. //{ Value: 100, Text: '1:00' }
  2260. ],
  2261. Min: //最小模式
  2262. [
  2263. { Value: 1600, Text: '16:00' },
  2264. { Value: 2100, Text: '21:00' },
  2265. { Value: 100, Text: '1:00' }
  2266. ]
  2267. }
  2268. }
  2269. ]
  2270. //美国夏时令
  2271. this.TIME_SPLIT2=
  2272. [
  2273. {
  2274. Name:'10:00-3:20',
  2275. Data:
  2276. [
  2277. //9:00-2:20
  2278. { Start: 1000, End: 2359 },
  2279. { Start: 0, End: 320 },
  2280. ],
  2281. Coordinate:
  2282. {
  2283. Full://完整模式
  2284. [
  2285. { Value: 1000, Text: '10:00' },
  2286. { Value: 1200, Text: '12:00' },
  2287. { Value: 1400, Text: '14:00' },
  2288. { Value: 1600, Text: '16:00' },
  2289. { Value: 1800, Text: '18:00' },
  2290. { Value: 2000, Text: '20:00' },
  2291. { Value: 2200, Text: '22:00' },
  2292. { Value: 0, Text: '0:00' },
  2293. { Value: 200, Text: '2:00' }
  2294. ],
  2295. Simple: //简洁模式
  2296. [
  2297. { Value: 1000, Text: '10:00' },
  2298. //{ Value: 1200, Text: '12:00' },
  2299. { Value: 1400, Text: '14:00' },
  2300. //{ Value: 1600, Text: '16:00' },
  2301. { Value: 1800, Text: '18:00' },
  2302. //{ Value: 2000, Text: '20:00' },
  2303. { Value: 2200, Text: '22:00' },
  2304. //{ Value: 0, Text: '0:00' },
  2305. { Value: 200, Text: '2:00' }
  2306. ],
  2307. Min: //最小模式
  2308. [
  2309. { Value: 1000, Text: '10:00' },
  2310. { Value: 1800, Text: '18:00' },
  2311. { Value: 200, Text: '2:00' }
  2312. ]
  2313. }
  2314. },
  2315. {
  2316. Name:'16:30-2:00',
  2317. Data:
  2318. [
  2319. { Start: 1630, End: 2359 },
  2320. { Start: 0, End: 200 },
  2321. ],
  2322. Coordinate:
  2323. {
  2324. Full://完整模式
  2325. [
  2326. { Value: 1700, Text: '17:00' },
  2327. { Value: 1800, Text: '18:00' },
  2328. { Value: 1900, Text: '19:00' },
  2329. { Value: 2000, Text: '20:00' },
  2330. { Value: 2100, Text: '21:00' },
  2331. { Value: 2200, Text: '22:00' },
  2332. { Value: 2300, Text: '23:00' },
  2333. { Value: 0, Text: '0:00' },
  2334. { Value: 100, Text: '1:00' },
  2335. { Value: 200, Text: '2:00' }
  2336. ],
  2337. Simple: //简洁模式
  2338. [
  2339. { Value: 1700, Text: '17:00' },
  2340. //{ Value: 1800, Text: '18:00' },
  2341. { Value: 1900, Text: '19:00' },
  2342. //{ Value: 2000, Text: '20:00' },
  2343. { Value: 2100, Text: '21:00' },
  2344. //{ Value: 2200, Text: '22:00' },
  2345. { Value: 2300, Text: '23:00' },
  2346. //{ Value: 0, Text: '0:00' },
  2347. { Value: 100, Text: '1:00' }
  2348. //{ Value: 200, Text: '2:00' }
  2349. ],
  2350. Min: //最小模式
  2351. [
  2352. { Value: 1700, Text: '17:00' },
  2353. { Value: 2100, Text: '21:00' },
  2354. { Value: 200, Text: '2:00' }
  2355. ]
  2356. }
  2357. }
  2358. ]
  2359. this.FUTURES_LIST=
  2360. [
  2361. { Symbol:"SB", Decimal:2, Time:1 }, //11号白糖
  2362. { Symbol:"CT", Decimal:2, Time:0 }, //棉花
  2363. //{ Symbol:"KC", Decimal:2, Time:0 }, //咖啡
  2364. //{ Symbol:"DX", Decimal:2, Time:0 }, //美元指数
  2365. //{ Symbol:"CC", Decimal:2, Time:0 } //可可
  2366. ]
  2367. this.MarketSuffix=".NYBOT";
  2368. this.GetMarketStatus=function(upperSymbol) // 0=闭市 1=盘前 2=盘中 3=盘后
  2369. {
  2370. var usaDate=GetLocalTime(-4); //需要转成美国时间的 周6 周日
  2371. var day = usaDate.getDay();
  2372. var time = usaDate.getHours() * 100 + usaDate.getMinutes();
  2373. if(day == 6 || day== 0) return 0; //周末
  2374. var find=this.GetFuturesInfo(upperSymbol);
  2375. if (!find) return 2;
  2376. if (find.Symbol=="SB") //Sugar No. 11 Futures 03:30 - 13:00
  2377. {
  2378. if (time>300 && time<1400) return 2;
  2379. }
  2380. else if (find.Symbol=="CT") //美棉 21:00-14:20
  2381. {
  2382. if( (time>=0 && time<=1500 ) || (time>=2000 && time<=2359) ) return 2;
  2383. return 1;
  2384. }
  2385. return 0;
  2386. }
  2387. }
  2388. //芝加哥期货交易所
  2389. function CBOTTimeData()
  2390. {
  2391. this.newMethod=NYMEXTimeData; //派生
  2392. this.newMethod();
  2393. delete this.newMethod;
  2394. //标准时间
  2395. this.TIME_SPLIT=
  2396. [
  2397. //ID=0 8:00-2:20
  2398. {
  2399. Name:'8:00-2:20',
  2400. Data:
  2401. [
  2402. //6:00 - 5:00
  2403. { Start: 800, End: 2359 },
  2404. { Start: 0, End: 220 },
  2405. ],
  2406. Coordinate:
  2407. {
  2408. Full://完整模式
  2409. [
  2410. { Value: 800, Text: '8:00' },
  2411. { Value: 1000, Text: '10:00' },
  2412. { Value: 1200, Text: '12:00' },
  2413. { Value: 1400, Text: '14:00' },
  2414. { Value: 1600, Text: '16:00' },
  2415. { Value: 1800, Text: '18:00' },
  2416. { Value: 2000, Text: '20:00' },
  2417. { Value: 2200, Text: '22:00' },
  2418. { Value: 0, Text: '0:00' },
  2419. { Value: 200, Text: '2:00' }
  2420. ],
  2421. Simple: //简洁模式
  2422. [
  2423. { Value: 800, Text: '8:00' },
  2424. //{ Value: 1000, Text: '10:00' },
  2425. { Value: 1200, Text: '12:00' },
  2426. //{ Value: 1400, Text: '14:00' },
  2427. { Value: 1600, Text: '16:00' },
  2428. //{ Value: 1800, Text: '18:00' },
  2429. { Value: 2000, Text: '20:00' },
  2430. //{ Value: 2200, Text: '22:00' },
  2431. { Value: 0, Text: '0:00' }
  2432. //{ Value: 200, Text: '2:00' }
  2433. ],
  2434. Min: //最小模式
  2435. [
  2436. { Value: 800, Text: '8:00' },
  2437. { Value: 1800, Text: '18:00' },
  2438. { Value: 200, Text: '2:00' }
  2439. ]
  2440. }
  2441. },
  2442. //ID=1 8:00-2:45
  2443. {
  2444. Name:'8:00-2:45',
  2445. Data:
  2446. [
  2447. //6:00 - 5:00
  2448. { Start: 800, End: 2359 },
  2449. { Start: 0, End: 245 },
  2450. ],
  2451. Coordinate:
  2452. {
  2453. Full://完整模式
  2454. [
  2455. { Value: 800, Text: '8:00' },
  2456. { Value: 1000, Text: '10:00' },
  2457. { Value: 1200, Text: '12:00' },
  2458. { Value: 1400, Text: '14:00' },
  2459. { Value: 1600, Text: '16:00' },
  2460. { Value: 1800, Text: '18:00' },
  2461. { Value: 2000, Text: '20:00' },
  2462. { Value: 2200, Text: '22:00' },
  2463. { Value: 0, Text: '0:00' },
  2464. { Value: 200, Text: '2:00' }
  2465. ],
  2466. Simple: //简洁模式
  2467. [
  2468. { Value: 800, Text: '8:00' },
  2469. //{ Value: 1000, Text: '10:00' },
  2470. { Value: 1200, Text: '12:00' },
  2471. //{ Value: 1400, Text: '14:00' },
  2472. { Value: 1600, Text: '16:00' },
  2473. //{ Value: 1800, Text: '18:00' },
  2474. { Value: 2000, Text: '20:00' },
  2475. //{ Value: 2200, Text: '22:00' },
  2476. { Value: 0, Text: '0:00' }
  2477. //{ Value: 200, Text: '2:00' }
  2478. ],
  2479. Min: //最小模式
  2480. [
  2481. { Value: 800, Text: '8:00' },
  2482. { Value: 1800, Text: '18:00' },
  2483. { Value: 200, Text: '2:00' }
  2484. ]
  2485. }
  2486. },
  2487. //ID=2 6:00-5:00
  2488. {
  2489. Name:'6:00-5:00',
  2490. Data:
  2491. [
  2492. //6:00 - 5:00
  2493. { Start: 600, End: 2359 },
  2494. { Start: 0, End: 500 },
  2495. ],
  2496. Coordinate:
  2497. {
  2498. Full://完整模式
  2499. [
  2500. { Value: 600, Text: '6:00' },
  2501. { Value: 800, Text: '8:00' },
  2502. { Value: 1000, Text: '10:00' },
  2503. { Value: 1200, Text: '12:00' },
  2504. { Value: 1400, Text: '14:00' },
  2505. { Value: 1600, Text: '16:00' },
  2506. { Value: 1800, Text: '18:00' },
  2507. { Value: 2000, Text: '20:00' },
  2508. { Value: 2200, Text: '22:00' },
  2509. { Value: 0, Text: '0:00' },
  2510. { Value: 200, Text: '2:00' },
  2511. { Value: 400, Text: '4:00' },
  2512. ],
  2513. Simple: //简洁模式
  2514. [
  2515. { Value: 600, Text: '6:00' },
  2516. //{ Value: 800, Text: '8:00' },
  2517. { Value: 1000, Text: '10:00' },
  2518. //{ Value: 1200, Text: '12:00' },
  2519. { Value: 1400, Text: '14:00' },
  2520. //{ Value: 1600, Text: '16:00' },
  2521. { Value: 1800, Text: '18:00' },
  2522. //{ Value: 2000, Text: '20:00' },
  2523. { Value: 2200, Text: '22:00' },
  2524. //{ Value: 0, Text: '0:00' },
  2525. { Value: 200, Text: '2:00' }
  2526. //{ Value: 400, Text: '4:00' },
  2527. ],
  2528. Min: //最小模式
  2529. [
  2530. { Value: 600, Text: '6:00' },
  2531. { Value: 1800, Text: '18:00' },
  2532. { Value: 500, Text: '5:00' }
  2533. ]
  2534. }
  2535. },
  2536. //ID=3 08:00-20:45 21:31-02:20
  2537. {
  2538. Name:'08:00-20:45 21:31-02:20',
  2539. Data:
  2540. [
  2541. { Start: 800, End: 2045 },
  2542. { Start: 2131, End: 2359 },
  2543. { Start: 0, End: 220 },
  2544. ],
  2545. Coordinate:
  2546. {
  2547. Full://完整模式
  2548. [
  2549. { Value: 800, Text: '8:00' },
  2550. { Value: 1000, Text: '10:00' },
  2551. { Value: 1200, Text: '12:00' },
  2552. { Value: 1400, Text: '14:00' },
  2553. { Value: 1600, Text: '16:00' },
  2554. { Value: 1800, Text: '18:00' },
  2555. { Value: 2000, Text: '20:00' },
  2556. { Value: 2200, Text: '22:00' },
  2557. { Value: 0, Text: '0:00' },
  2558. { Value: 200, Text: '2:00' }
  2559. ],
  2560. Simple: //简洁模式
  2561. [
  2562. { Value: 800, Text: '8:00' },
  2563. //{ Value: 1000, Text: '10:00' },
  2564. { Value: 1200, Text: '12:00' },
  2565. //{ Value: 1400, Text: '14:00' },
  2566. { Value: 1600, Text: '16:00' },
  2567. //{ Value: 1800, Text: '18:00' },
  2568. { Value: 2000, Text: '20:00' },
  2569. //{ Value: 2200, Text: '22:00' },
  2570. { Value: 0, Text: '0:00' }
  2571. //{ Value: 200, Text: '2:00' }
  2572. ],
  2573. Min: //最小模式
  2574. [
  2575. { Value: 800, Text: '8:00' },
  2576. { Value: 1800, Text: '18:00' },
  2577. { Value: 200, Text: '2:00' }
  2578. ]
  2579. }
  2580. },
  2581. //ID=4 8:00-20:45 21:31-2:45
  2582. {
  2583. Name:'8:00-2:45',
  2584. Data:
  2585. [
  2586. { Start: 800, End: 2045 },
  2587. { Start: 2131, End: 2359 },
  2588. { Start: 0, End: 245 },
  2589. ],
  2590. Coordinate:
  2591. {
  2592. Full://完整模式
  2593. [
  2594. { Value: 800, Text: '8:00' },
  2595. { Value: 1000, Text: '10:00' },
  2596. { Value: 1200, Text: '12:00' },
  2597. { Value: 1400, Text: '14:00' },
  2598. { Value: 1600, Text: '16:00' },
  2599. { Value: 1800, Text: '18:00' },
  2600. { Value: 2000, Text: '20:00' },
  2601. { Value: 2200, Text: '22:00' },
  2602. { Value: 0, Text: '0:00' },
  2603. { Value: 200, Text: '2:00' }
  2604. ],
  2605. Simple: //简洁模式
  2606. [
  2607. { Value: 800, Text: '8:00' },
  2608. //{ Value: 1000, Text: '10:00' },
  2609. { Value: 1200, Text: '12:00' },
  2610. //{ Value: 1400, Text: '14:00' },
  2611. { Value: 1600, Text: '16:00' },
  2612. //{ Value: 1800, Text: '18:00' },
  2613. { Value: 2000, Text: '20:00' },
  2614. //{ Value: 2200, Text: '22:00' },
  2615. { Value: 0, Text: '0:00' }
  2616. //{ Value: 200, Text: '2:00' }
  2617. ],
  2618. Min: //最小模式
  2619. [
  2620. { Value: 800, Text: '8:00' },
  2621. { Value: 1800, Text: '18:00' },
  2622. { Value: 200, Text: '2:00' }
  2623. ]
  2624. }
  2625. },
  2626. //ID=5 06:00-04:15 04:31-05:00
  2627. {
  2628. Name:'06:00-04:15 04:31-05:00',
  2629. Data:
  2630. [
  2631. { Start: 600, End: 2359 },
  2632. { Start: 0, End: 415 },
  2633. { Start: 431, End: 500 },
  2634. ],
  2635. Coordinate:
  2636. {
  2637. Full://完整模式
  2638. [
  2639. { Value: 600, Text: '6:00' },
  2640. { Value: 800, Text: '8:00' },
  2641. { Value: 1000, Text: '10:00' },
  2642. { Value: 1200, Text: '12:00' },
  2643. { Value: 1400, Text: '14:00' },
  2644. { Value: 1600, Text: '16:00' },
  2645. { Value: 1800, Text: '18:00' },
  2646. { Value: 2000, Text: '20:00' },
  2647. { Value: 2200, Text: '22:00' },
  2648. { Value: 0, Text: '0:00' },
  2649. { Value: 200, Text: '2:00' },
  2650. { Value: 400, Text: '4:00' },
  2651. ],
  2652. Simple: //简洁模式
  2653. [
  2654. { Value: 600, Text: '6:00' },
  2655. //{ Value: 800, Text: '8:00' },
  2656. { Value: 1000, Text: '10:00' },
  2657. //{ Value: 1200, Text: '12:00' },
  2658. { Value: 1400, Text: '14:00' },
  2659. //{ Value: 1600, Text: '16:00' },
  2660. { Value: 1800, Text: '18:00' },
  2661. //{ Value: 2000, Text: '20:00' },
  2662. { Value: 2200, Text: '22:00' },
  2663. //{ Value: 0, Text: '0:00' },
  2664. { Value: 200, Text: '2:00' }
  2665. //{ Value: 400, Text: '4:00' },
  2666. ],
  2667. Min: //最小模式
  2668. [
  2669. { Value: 600, Text: '6:00' },
  2670. { Value: 1800, Text: '18:00' },
  2671. { Value: 500, Text: '5:00' }
  2672. ]
  2673. }
  2674. }
  2675. ]
  2676. //夏令时间
  2677. this.TIME_SPLIT2=
  2678. [
  2679. //ID=0 9:00-3:20
  2680. {
  2681. Name:'9:00-3:20',
  2682. Data:
  2683. [
  2684. { Start: 900, End: 2359 },
  2685. { Start: 0, End: 320 },
  2686. ],
  2687. Coordinate:
  2688. {
  2689. Full://完整模式
  2690. [
  2691. { Value: 900, Text: '9:00' },
  2692. { Value: 1100, Text: '11:00' },
  2693. { Value: 1300, Text: '13:00' },
  2694. { Value: 1500, Text: '15:00' },
  2695. { Value: 1700, Text: '17:00' },
  2696. { Value: 1900, Text: '19:00' },
  2697. { Value: 2100, Text: '21:00' },
  2698. { Value: 2300, Text: '23:00' },
  2699. { Value: 1, Text: '1:00' },
  2700. { Value: 300, Text: '3:00' }
  2701. ],
  2702. Simple: //简洁模式
  2703. [
  2704. { Value: 900, Text: '9:00' },
  2705. //{ Value: 1100, Text: '11:00' },
  2706. { Value: 1300, Text: '13:00' },
  2707. //{ Value: 1500, Text: '15:00' },
  2708. { Value: 1700, Text: '17:00' },
  2709. //{ Value: 1900, Text: '19:00' },
  2710. { Value: 2100, Text: '21:00' },
  2711. //{ Value: 2300, Text: '23:00' },
  2712. { Value: 1, Text: '1:00' }
  2713. //{ Value: 300, Text: '3:00' }
  2714. ],
  2715. Min: //最小模式
  2716. [
  2717. { Value: 900, Text: '9:00' },
  2718. { Value: 1900, Text: '19:00' },
  2719. { Value: 300, Text: '3:00' }
  2720. ]
  2721. }
  2722. },
  2723. //ID=1 9:00-3:45
  2724. {
  2725. Name:'9:00-3:45',
  2726. Data:
  2727. [
  2728. { Start: 900, End: 2359 },
  2729. { Start: 0, End: 345 },
  2730. ],
  2731. Coordinate:
  2732. {
  2733. Full://完整模式
  2734. [
  2735. { Value: 900, Text: '9:00' },
  2736. { Value: 1100, Text: '11:00' },
  2737. { Value: 1300, Text: '13:00' },
  2738. { Value: 1500, Text: '15:00' },
  2739. { Value: 1700, Text: '17:00' },
  2740. { Value: 1900, Text: '19:00' },
  2741. { Value: 2100, Text: '21:00' },
  2742. { Value: 2300, Text: '23:00' },
  2743. { Value: 1, Text: '1:00' },
  2744. { Value: 300, Text: '3:00' }
  2745. ],
  2746. Simple: //简洁模式
  2747. [
  2748. { Value: 900, Text: '9:00' },
  2749. //{ Value: 1100, Text: '11:00' },
  2750. { Value: 1300, Text: '13:00' },
  2751. //{ Value: 1500, Text: '15:00' },
  2752. { Value: 1700, Text: '17:00' },
  2753. //{ Value: 1900, Text: '19:00' },
  2754. { Value: 2100, Text: '21:00' },
  2755. //{ Value: 2300, Text: '23:00' },
  2756. { Value: 1, Text: '1:00' }
  2757. //{ Value: 300, Text: '3:00' }
  2758. ],
  2759. Min: //最小模式
  2760. [
  2761. { Value: 900, Text: '9:00' },
  2762. { Value: 1900, Text: '19:00' },
  2763. { Value: 300, Text: '3:00' }
  2764. ]
  2765. }
  2766. },
  2767. //ID=2 7:00-6:00
  2768. {
  2769. Name:'7:00-6:00',
  2770. Data:
  2771. [
  2772. { Start: 700, End: 2359 },
  2773. { Start: 0, End: 600 },
  2774. ],
  2775. Coordinate:
  2776. {
  2777. Full://完整模式
  2778. [
  2779. { Value: 700, Text: '7:00' },
  2780. { Value: 900, Text: '9:00' },
  2781. { Value: 1100, Text: '11:00' },
  2782. { Value: 1300, Text: '13:00' },
  2783. { Value: 1500, Text: '15:00' },
  2784. { Value: 1700, Text: '17:00' },
  2785. { Value: 1900, Text: '19:00' },
  2786. { Value: 2100, Text: '21:00' },
  2787. { Value: 2300, Text: '23:00' },
  2788. { Value: 1, Text: '1:00' },
  2789. { Value: 300, Text: '3:00' },
  2790. { Value: 500, Text: '5:00' }
  2791. ],
  2792. Simple: //简洁模式
  2793. [
  2794. { Value: 700, Text: '7:00' },
  2795. //{ Value: 900, Text: '9:00' },
  2796. { Value: 1100, Text: '11:00' },
  2797. //{ Value: 1300, Text: '13:00' },
  2798. { Value: 1500, Text: '15:00' },
  2799. //{ Value: 1700, Text: '17:00' },
  2800. { Value: 1900, Text: '19:00' },
  2801. //{ Value: 2100, Text: '21:00' },
  2802. { Value: 2300, Text: '23:00' },
  2803. //{ Value: 1, Text: '1:00' },
  2804. { Value: 300, Text: '3:00' }
  2805. //{ Value: 500, Text: '5:00' }
  2806. ],
  2807. Min: //最小模式
  2808. [
  2809. { Value: 700, Text: '7:00' },
  2810. { Value: 1800, Text: '18:00' },
  2811. { Value: 500, Text: '5:00' }
  2812. ]
  2813. }
  2814. },
  2815. //ID=3 09:00-21:45 22:31-03:20
  2816. {
  2817. Name:'09:00-21:45 22:31-03:20',
  2818. Data:
  2819. [
  2820. { Start: 900, End: 2145 },
  2821. { Start: 2231, End: 2359 },
  2822. { Start: 0, End: 320 },
  2823. ],
  2824. Coordinate:
  2825. {
  2826. Full://完整模式
  2827. [
  2828. { Value: 900, Text: '9:00' },
  2829. { Value: 1100, Text: '11:00' },
  2830. { Value: 1300, Text: '13:00' },
  2831. { Value: 1500, Text: '15:00' },
  2832. { Value: 1700, Text: '17:00' },
  2833. { Value: 1900, Text: '19:00' },
  2834. { Value: 2100, Text: '21:00' },
  2835. { Value: 2300, Text: '23:00' },
  2836. { Value: 1, Text: '1:00' },
  2837. { Value: 300, Text: '3:00' }
  2838. ],
  2839. Simple: //简洁模式
  2840. [
  2841. { Value: 900, Text: '9:00' },
  2842. //{ Value: 1100, Text: '11:00' },
  2843. { Value: 1300, Text: '13:00' },
  2844. //{ Value: 1500, Text: '15:00' },
  2845. { Value: 1700, Text: '17:00' },
  2846. //{ Value: 1900, Text: '19:00' },
  2847. { Value: 2100, Text: '21:00' },
  2848. //{ Value: 2300, Text: '23:00' },
  2849. { Value: 1, Text: '1:00' }
  2850. //{ Value: 300, Text: '3:00' }
  2851. ],
  2852. Min: //最小模式
  2853. [
  2854. { Value: 900, Text: '9:00' },
  2855. { Value: 1900, Text: '19:00' },
  2856. { Value: 300, Text: '3:00' }
  2857. ]
  2858. }
  2859. },
  2860. //ID=4 09:00-21:45 22:31-03:45
  2861. {
  2862. Name:'09:00-21:45 22:31-03:45',
  2863. Data:
  2864. [
  2865. { Start: 900, End: 2145 },
  2866. { Start: 2231, End: 2359 },
  2867. { Start: 0, End: 345 },
  2868. ],
  2869. Coordinate:
  2870. {
  2871. Full://完整模式
  2872. [
  2873. { Value: 900, Text: '9:00' },
  2874. { Value: 1100, Text: '11:00' },
  2875. { Value: 1300, Text: '13:00' },
  2876. { Value: 1500, Text: '15:00' },
  2877. { Value: 1700, Text: '17:00' },
  2878. { Value: 1900, Text: '19:00' },
  2879. { Value: 2100, Text: '21:00' },
  2880. { Value: 2300, Text: '23:00' },
  2881. { Value: 1, Text: '1:00' },
  2882. { Value: 300, Text: '3:00' }
  2883. ],
  2884. Simple: //简洁模式
  2885. [
  2886. { Value: 900, Text: '9:00' },
  2887. //{ Value: 1100, Text: '11:00' },
  2888. { Value: 1300, Text: '13:00' },
  2889. //{ Value: 1500, Text: '15:00' },
  2890. { Value: 1700, Text: '17:00' },
  2891. //{ Value: 1900, Text: '19:00' },
  2892. { Value: 2100, Text: '21:00' },
  2893. //{ Value: 2300, Text: '23:00' },
  2894. { Value: 1, Text: '1:00' }
  2895. //{ Value: 300, Text: '3:00' }
  2896. ],
  2897. Min: //最小模式
  2898. [
  2899. { Value: 900, Text: '9:00' },
  2900. { Value: 1900, Text: '19:00' },
  2901. { Value: 300, Text: '3:00' }
  2902. ]
  2903. }
  2904. },
  2905. //ID=5 07:00-05:15 05:31-06:00
  2906. {
  2907. Name:'07:00-05:15 05:31-06:00',
  2908. Data:
  2909. [
  2910. { Start: 700, End: 2359 },
  2911. { Start: 0, End: 515 },
  2912. { Start: 531, End: 600 },
  2913. ],
  2914. Coordinate:
  2915. {
  2916. Full://完整模式
  2917. [
  2918. { Value: 700, Text: '7:00' },
  2919. { Value: 900, Text: '9:00' },
  2920. { Value: 1100, Text: '11:00' },
  2921. { Value: 1300, Text: '13:00' },
  2922. { Value: 1500, Text: '15:00' },
  2923. { Value: 1700, Text: '17:00' },
  2924. { Value: 1900, Text: '19:00' },
  2925. { Value: 2100, Text: '21:00' },
  2926. { Value: 2300, Text: '23:00' },
  2927. { Value: 1, Text: '1:00' },
  2928. { Value: 300, Text: '3:00' },
  2929. { Value: 500, Text: '5:00' }
  2930. ],
  2931. Simple: //简洁模式
  2932. [
  2933. { Value: 700, Text: '7:00' },
  2934. //{ Value: 900, Text: '9:00' },
  2935. { Value: 1100, Text: '11:00' },
  2936. //{ Value: 1300, Text: '13:00' },
  2937. { Value: 1500, Text: '15:00' },
  2938. //{ Value: 1700, Text: '17:00' },
  2939. { Value: 1900, Text: '19:00' },
  2940. //{ Value: 2100, Text: '21:00' },
  2941. { Value: 2300, Text: '23:00' },
  2942. //{ Value: 1, Text: '1:00' },
  2943. { Value: 300, Text: '3:00' }
  2944. //{ Value: 500, Text: '5:00' }
  2945. ],
  2946. Min: //最小模式
  2947. [
  2948. { Value: 700, Text: '7:00' },
  2949. { Value: 1800, Text: '18:00' },
  2950. { Value: 500, Text: '5:00' }
  2951. ]
  2952. }
  2953. }
  2954. ]
  2955. this.FUTURES_LIST=
  2956. [
  2957. { Symbol:"ZC", Decimal:2, Time:0, Name:"玉米" }, //玉米
  2958. { Symbol:"XC", Decimal:2, Time:1, Name:"迷你玉米" }, //迷你玉米
  2959. { Symbol:"ZS", Decimal:2, Time:0, Name:'大豆' }, //大豆
  2960. { Symbol:"XK", Decimal:2, Time:1, Name:"迷你大豆" }, //迷你大豆
  2961. { Symbol:"ZL", Decimal:2, Time:0, Name:"豆油"}, //豆油
  2962. { Symbol:"ZR", Decimal:2, Time:0, Name:"稻谷" }, //稻谷
  2963. { Symbol:"ZO", Decimal:2, Time:0, Name:"燕麦" }, //燕麦
  2964. { Symbol:"ZW", Decimal:2, Time:0, Name:'小麦'}, //小麦
  2965. { Symbol:"XW", Decimal:2, Time:1, Name:"迷你小麦" }, //迷你小麦
  2966. { Symbol:"ZM", Decimal:1, Time:0, Name:"豆粕" }, //豆粕
  2967. { Symbol:"EH", Decimal:3, Time:2 }, //乙醇
  2968. { Symbol:"YM", Decimal:0, Time:2, Name:"小型道指"}, //小型道指
  2969. { Symbol:"ES", Decimal:2, Time:2, Name:"小型标普" }, //小型标普
  2970. { Symbol:"NQ", Decimal:2, Time:2, Name:"小型纳指" }, //小型纳指
  2971. { Symbol:"TY", Decimal:4, Time:2, Name:"10年美国债" }, //10年美国债
  2972. { Symbol:"TU", Decimal:4, Time:2, Name:"2年美国债" }, //2年美国债
  2973. { Symbol:"FV", Decimal:4, Time:2, Name:"5年美国债" }, //5年美国债
  2974. { Symbol:"US", Decimal:4, Time:2, Name:"30年美国债" }, //30年美国债
  2975. { Symbol:"UL", Decimal:4, Time:2, Name:"超国债" }, //超国债
  2976. ]
  2977. this.MarketSuffix=".CBOT";
  2978. }
  2979. //伦敦金属交易所 LME
  2980. function LMETimeData()
  2981. {
  2982. this.newMethod=NYMEXTimeData; //派生
  2983. this.newMethod();
  2984. delete this.newMethod;
  2985. //标准时间
  2986. this.TIME_SPLIT=
  2987. [
  2988. {
  2989. Name:'LME 9:00-3:00',
  2990. Data:
  2991. [
  2992. { Start: 900, End: 2359 },
  2993. { Start: 0, End: 300 },
  2994. ],
  2995. Coordinate:
  2996. {
  2997. Full://完整模式
  2998. [
  2999. { Value: 900, Text: '9:00' },
  3000. { Value: 1100, Text: '11:00' },
  3001. { Value: 1300, Text: '13:00' },
  3002. { Value: 1500, Text: '15:00' },
  3003. { Value: 1700, Text: '17:00' },
  3004. { Value: 1900, Text: '19:00' },
  3005. { Value: 2100, Text: '21:00' },
  3006. { Value: 2300, Text: '23:00' },
  3007. { Value: 100, Text: '1:00' },
  3008. { Value: 300, Text: '3:00' }
  3009. ],
  3010. Simple: //简洁模式
  3011. [
  3012. { Value: 900, Text: '9:00' },
  3013. //{ Value: 1100, Text: '11:00' },
  3014. { Value: 1300, Text: '13:00' },
  3015. //{ Value: 1500, Text: '15:00' },
  3016. { Value: 1700, Text: '17:00' },
  3017. //{ Value: 1900, Text: '19:00' },
  3018. { Value: 2100, Text: '21:00' },
  3019. //{ Value: 2300, Text: '23:00' },
  3020. { Value: 100, Text: '1:00' }
  3021. // { Value: 300, Text: '3:00' }
  3022. ],
  3023. Min: //最小模式
  3024. [
  3025. { Value: 900, Text: '9:00' },
  3026. { Value: 1800, Text: '18:00' },
  3027. { Value: 300, Text: '3:00' }
  3028. ]
  3029. }
  3030. }
  3031. ]
  3032. //夏令
  3033. this.TIME_SPLIT=
  3034. [
  3035. {
  3036. Name:'LME 8:00-2:00',
  3037. Data:
  3038. [
  3039. { Start: 800, End: 2359 },
  3040. { Start: 0, End: 200 },
  3041. ],
  3042. Coordinate:
  3043. {
  3044. Full://完整模式
  3045. [
  3046. { Value: 800, Text: '8:00' },
  3047. { Value: 1000, Text: '10:00' },
  3048. { Value: 1200, Text: '12:00' },
  3049. { Value: 1400, Text: '14:00' },
  3050. { Value: 1600, Text: '16:00' },
  3051. { Value: 1800, Text: '18:00' },
  3052. { Value: 2000, Text: '20:00' },
  3053. { Value: 2200, Text: '22:00' },
  3054. { Value: 0, Text: '0:00' },
  3055. { Value: 200, Text: '2:00' }
  3056. ],
  3057. Simple: //简洁模式
  3058. [
  3059. { Value: 800, Text: '8:00' },
  3060. //{ Value: 1000, Text: '10:00' },
  3061. { Value: 1200, Text: '12:00' },
  3062. //{ Value: 1400, Text: '14:00' },
  3063. { Value: 1600, Text: '16:00' },
  3064. //{ Value: 1800, Text: '18:00' },
  3065. { Value: 2000, Text: '20:00' },
  3066. //{ Value: 2200, Text: '22:00' },
  3067. { Value: 0, Text: '0:00' }
  3068. //{ Value: 200, Text: '2:00' }
  3069. ],
  3070. Min: //最小模式
  3071. [
  3072. { Value: 800, Text: '8:00' },
  3073. { Value: 1800, Text: '18:00' },
  3074. { Value: 200, Text: '2:00' }
  3075. ]
  3076. }
  3077. }
  3078. ]
  3079. this.FUTURES_LIST=
  3080. [
  3081. { Symbol:"SN", Decimal:0, Time:0, Name:"LME锡" }, //综合锡03
  3082. { Symbol:"AH", Decimal:2, Time:0, Name:"LME铝" }, //综合铝03
  3083. { Symbol:"PB", Decimal:2, Time:0, Name:"LME铅" }, //综合铅03
  3084. { Symbol:"ZS", Decimal:2, Time:0, Name:"LME锌" }, //综合锌03
  3085. { Symbol:"CA", Decimal:2, Time:0, Name:"LME铜" }, //综合铜03
  3086. { Symbol:"NI", Decimal:0, Time:0, Name:"LME镍" }, //综合镍03
  3087. ]
  3088. this.MarketSuffix=".LME";
  3089. }
  3090. //东京商品交易所(TOCOM)
  3091. function TOCOMTimeData()
  3092. {
  3093. this.newMethod=NYMEXTimeData; //派生
  3094. this.newMethod();
  3095. delete this.newMethod;
  3096. this.TimeType=0;
  3097. this.TIME_SPLIT=
  3098. [
  3099. //ID=0 15:30-04:30 07:46-14:15
  3100. {
  3101. Name:'15:30-04:30 07:46-14:15',
  3102. Data:
  3103. [
  3104. { Start: 1530, End: 2359},
  3105. { Start: 0, End: 430 },
  3106. { Start: 746, End: 1415 },
  3107. ],
  3108. Coordinate:
  3109. {
  3110. Full://完整模式
  3111. [
  3112. { Value: 1530, Text: '15:30' },
  3113. { Value: 1700, Text: '17:00' },
  3114. { Value: 1900, Text: '19:00' },
  3115. { Value: 2100, Text: '21:00' },
  3116. { Value: 2300, Text: '23:00' },
  3117. { Value: 100, Text: '1:00' },
  3118. { Value: 300, Text: '3:00' },
  3119. { Value: 430, Text: '4:30' },
  3120. { Value: 900, Text: '9:00' },
  3121. { Value: 1100, Text: '11:00' },
  3122. { Value: 1300, Text: '13:00' },
  3123. { Value: 1415, Text: '14:15' }
  3124. ],
  3125. Simple: //简洁模式
  3126. [
  3127. { Value: 1530, Text: '15:30' },
  3128. { Value: 1900, Text: '19:00' },
  3129. { Value: 2300, Text: '23:00' },
  3130. { Value: 100, Text: '1:00' },
  3131. { Value: 430, Text: '4:30' },
  3132. { Value: 1100, Text: '11:00' },
  3133. { Value: 1415, Text: '14:15' }
  3134. ],
  3135. Min: //最小模式
  3136. [
  3137. { Value: 1530, Text: '15:30' },
  3138. { Value: 100, Text: '1:00' },
  3139. { Value: 1415, Text: '14:15' }
  3140. ]
  3141. }
  3142. }
  3143. ];
  3144. this.FUTURES_LIST=
  3145. [
  3146. { Symbol:"JRV", Decimal:0, Time:0, Name:"东京TSR20橡胶" },
  3147. { Symbol:"JPL", Decimal:0, Time:0, Name:"东京铂金" },
  3148. { Symbol:"JAU", Decimal:0, Time:0, Name:"东京黄金" },
  3149. { Symbol:"JCO", Decimal:0, Time:0, Name:"中东原油" },
  3150. { Symbol:"JRU", Decimal:1, Time:0, Name:"东京RSS3橡胶橡胶" },
  3151. { Symbol:"JAG", Decimal:1, Time:0, Name:"日白银" } ,
  3152. { Symbol:"JPA", Decimal:1, Time:0, Name:"日钯金" }
  3153. ]
  3154. this.MarketSuffix=".TOCOM";
  3155. }
  3156. //美国洲际交易所(ICE EUROPE)
  3157. function IPETimeData()
  3158. {
  3159. this.newMethod=NYMEXTimeData; //派生
  3160. this.newMethod();
  3161. delete this.newMethod;
  3162. this.MarketSuffix=".IPE";
  3163. //美国标准时间
  3164. this.TIME_SPLIT=
  3165. [
  3166. //ID=0 8:00-6:00
  3167. {
  3168. Name:'8:00-6:00',
  3169. Data:
  3170. [
  3171. { Start: 800, End: 2359 },
  3172. { Start: 0, End: 600 },
  3173. ],
  3174. Coordinate:
  3175. {
  3176. Full://完整模式
  3177. [
  3178. { Value: 800, Text: '8:00' },
  3179. { Value: 1000, Text: '10:00' },
  3180. { Value: 1200, Text: '12:00' },
  3181. { Value: 1400, Text: '14:00' },
  3182. { Value: 1600, Text: '16:00' },
  3183. { Value: 1800, Text: '18:00' },
  3184. { Value: 2000, Text: '20:00' },
  3185. { Value: 2200, Text: '22:00' },
  3186. { Value: 0, Text: '0:00' },
  3187. { Value: 200, Text: '2:00' },
  3188. { Value: 400, Text: '4:00' },
  3189. { Value: 600, Text: '6:00' },
  3190. ],
  3191. Simple: //简洁模式
  3192. [
  3193. { Value: 800, Text: '8:00' },
  3194. { Value: 1200, Text: '12:00' },
  3195. { Value: 1600, Text: '16:00' },
  3196. { Value: 2000, Text: '20:00' },
  3197. { Value: 0, Text: '0:00' },
  3198. { Value: 400, Text: '4:00' },
  3199. { Value: 600, Text: '6:00' },
  3200. ],
  3201. Min: //最小模式
  3202. [
  3203. { Value: 800, Text: '8:00' },
  3204. { Value: 2000, Text: '20:00' },
  3205. { Value: 600, Text: '6:00' }
  3206. ]
  3207. }
  3208. }
  3209. ]
  3210. //美国夏时令
  3211. this.TIME_SPLIT2=
  3212. [
  3213. //ID=0 09:00-07:00
  3214. {
  3215. Name:'09:00-07:00',
  3216. Data:
  3217. [
  3218. { Start: 900, End: 2359 },
  3219. { Start: 0, End: 700 },
  3220. ],
  3221. Coordinate:
  3222. {
  3223. Full://完整模式
  3224. [
  3225. { Value: 900, Text: '9:00' },
  3226. { Value: 1100, Text: '11:00' },
  3227. { Value: 1300, Text: '13:00' },
  3228. { Value: 1500, Text: '15:00' },
  3229. { Value: 1700, Text: '17:00' },
  3230. { Value: 1900, Text: '19:00' },
  3231. { Value: 2100, Text: '21:00' },
  3232. { Value: 2300, Text: '23:00' },
  3233. { Value: 1, Text: '1:00' },
  3234. { Value: 300, Text: '3:00' },
  3235. { Value: 500, Text: '5:00' },
  3236. { Value: 700, Text: '7:00' }
  3237. ],
  3238. Simple: //简洁模式
  3239. [
  3240. { Value: 900, Text: '9:00' },
  3241. { Value: 1300, Text: '13:00' },
  3242. { Value: 1700, Text: '17:00' },
  3243. { Value: 2100, Text: '21:00' },
  3244. { Value: 1, Text: '1:00' },
  3245. { Value: 500, Text: '5:00' },
  3246. { Value: 700, Text: '7:00' }
  3247. ],
  3248. Min: //最小模式
  3249. [
  3250. { Value: 900, Text: '9:00' },
  3251. { Value: 2100, Text: '21:00' },
  3252. { Value: 700, Text: '7:00' }
  3253. ]
  3254. }
  3255. }
  3256. ]
  3257. this.FUTURES_LIST=
  3258. [
  3259. { Symbol:"RC", Decimal:2, Time:0, Name:"罗布斯塔咖啡" },
  3260. { Symbol:"W", Decimal:2, Time:0, Name:"白糖" },
  3261. { Symbol:"C", Decimal:2, Time:0, Name:"伦敦可可" },
  3262. { Symbol:"R", Decimal:2, Time:0, Name:"长期英国国债" },
  3263. { Symbol:"L", Decimal:2, Time:0, Name:"3个月英镑利率" },
  3264. { Symbol:"T", Decimal:2, Time:0, Name:"WTI原油" },
  3265. { Symbol:"G", Decimal:2, Time:0, Name:"低硫柴油" },
  3266. { Symbol:"B", Decimal:2, Time:0, Name:"布伦特原油" }
  3267. ]
  3268. }
  3269. var g_MinuteTimeStringData = new MinuteTimeStringData();
  3270. var g_MinuteCoordinateData = new MinuteCoordinateData();
  3271. var g_FuturesTimeData = new FuturesTimeData();
  3272. var g_NYMEXTimeData = new NYMEXTimeData();
  3273. var g_COMEXTimeData=new COMEXTimeData();
  3274. var g_NYBOTTimeData=new NYBOTTimeData();
  3275. var g_CBOTTimeData=new CBOTTimeData();
  3276. var g_LMETimeData=new LMETimeData();
  3277. var g_TOCOMTimeData=new TOCOMTimeData();
  3278. var g_IPETimeData=new IPETimeData();
  3279. function GetfloatPrecision(symbol) //获取小数位数
  3280. {
  3281. var defaultfloatPrecision = 2; //默认2位
  3282. if (!symbol) return defaultfloatPrecision;
  3283. var upperSymbol = symbol.toUpperCase();
  3284. //全部由外部控制
  3285. if (typeof(MARKET_SUFFIX_NAME.GetCustomDecimal)=='function') return MARKET_SUFFIX_NAME.GetCustomDecimal(upperSymbol);
  3286. if (MARKET_SUFFIX_NAME.IsSHSZFund(upperSymbol)) defaultfloatPrecision = 3; //基金3位小数
  3287. else if (MARKET_SUFFIX_NAME.IsSHO(upperSymbol) || MARKET_SUFFIX_NAME.IsSZO(upperSymbol)) defaultfloatPrecision = MARKET_SUFFIX_NAME.GetSHODecimal(upperSymbol);
  3288. else if (MARKET_SUFFIX_NAME.IsChinaFutures(upperSymbol)) defaultfloatPrecision = g_FuturesTimeData.GetDecimal(upperSymbol); //期货小数位数读配置
  3289. else if (MARKET_SUFFIX_NAME.IsFHK(upperSymbol)) defaultfloatPrecision = MARKET_SUFFIX_NAME.GetFHKDecimal(upperSymbol);
  3290. else if (MARKET_SUFFIX_NAME.IsFTSE(upperSymbol)) defaultfloatPrecision = MARKET_SUFFIX_NAME.GetFTSEDecimal(upperSymbol);
  3291. else if (MARKET_SUFFIX_NAME.IsForeignExchange(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetForeignExchangeDecimal(upperSymbol);
  3292. else if (MARKET_SUFFIX_NAME.IsBIT(upperSymbol)) defaultfloatPrecision = MARKET_SUFFIX_NAME.GetBITDecimal(upperSymbol);
  3293. else if (MARKET_SUFFIX_NAME.IsET(upperSymbol)) defaultfloatPrecision = MARKET_SUFFIX_NAME.GetETDecimal(upperSymbol);
  3294. else if (MARKET_SUFFIX_NAME.IsNYMEX(upperSymbol)) defaultfloatPrecision=g_NYMEXTimeData.GetDecimal(upperSymbol);
  3295. else if (MARKET_SUFFIX_NAME.IsCOMEX(upperSymbol)) defaultfloatPrecision=g_COMEXTimeData.GetDecimal(upperSymbol);
  3296. else if (MARKET_SUFFIX_NAME.IsNYBOT(upperSymbol)) defaultfloatPrecision=g_NYBOTTimeData.GetDecimal(upperSymbol);
  3297. else if (MARKET_SUFFIX_NAME.IsCBOT(upperSymbol)) defaultfloatPrecision=g_CBOTTimeData.GetDecimal(upperSymbol);
  3298. else if (MARKET_SUFFIX_NAME.IsTOCOM(upperSymbol)) defaultfloatPrecision=g_TOCOMTimeData.GetDecimal(upperSymbol);
  3299. else if (MARKET_SUFFIX_NAME.IsIPE(upperSymbol)) defaultfloatPrecision=g_IPETimeData.GetDecimal(upperSymbol);
  3300. else if (MARKET_SUFFIX_NAME.IsHK(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHKDecimal(upperSymbol);
  3301. else if (MARKET_SUFFIX_NAME.IsTW(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetTWDecimal(upperSymbol);
  3302. else if (MARKET_SUFFIX_NAME.IsJP(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetJPDecimal(upperSymbol);
  3303. else if (MARKET_SUFFIX_NAME.IsHSX(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHSXDecimal(upperSymbol);
  3304. else if (MARKET_SUFFIX_NAME.IsHNX(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetHNXDecimal(upperSymbol);
  3305. else if (MARKET_SUFFIX_NAME.IsUPCOM(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetUPCOMDecimal(upperSymbol);
  3306. else if (MARKET_SUFFIX_NAME.IsSZ(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetSZDecimal(upperSymbol);
  3307. else if (MARKET_SUFFIX_NAME.IsSH(upperSymbol)) defaultfloatPrecision=MARKET_SUFFIX_NAME.GetSHDecimal(upperSymbol);
  3308. else defaultfloatPrecision=MARKET_SUFFIX_NAME.GetDefaultDecimal(upperSymbol);
  3309. return defaultfloatPrecision;
  3310. }
  3311. //导出统一使用JSCommon命名空间名
  3312. var JSCommonCoordinateData=
  3313. {
  3314. MinuteCoordinateData: g_MinuteCoordinateData,
  3315. MinuteTimeStringData: g_MinuteTimeStringData,
  3316. MARKET_SUFFIX_NAME: MARKET_SUFFIX_NAME,
  3317. GetfloatPrecision: GetfloatPrecision
  3318. };
  3319. export
  3320. {
  3321. JSCommonCoordinateData,
  3322. MARKET_SUFFIX_NAME,
  3323. g_FuturesTimeData,
  3324. g_NYMEXTimeData,
  3325. g_COMEXTimeData,
  3326. g_NYBOTTimeData,
  3327. g_LMETimeData,
  3328. g_CBOTTimeData,
  3329. g_TOCOMTimeData,
  3330. g_IPETimeData,
  3331. GetfloatPrecision,
  3332. g_MinuteCoordinateData,
  3333. g_MinuteTimeStringData
  3334. };
  3335. /*
  3336. module.exports =
  3337. {
  3338. JSCommonCoordinateData:
  3339. {
  3340. MinuteCoordinateData: g_MinuteCoordinateData,
  3341. MinuteTimeStringData: g_MinuteTimeStringData,
  3342. MARKET_SUFFIX_NAME: MARKET_SUFFIX_NAME,
  3343. GetfloatPrecision: GetfloatPrecision
  3344. },
  3345. JSCommonCoordinateData_MARKET_SUFFIX_NAME: MARKET_SUFFIX_NAME,
  3346. JSCommonCoordinateData_Global_FuturesTimeData: g_FuturesTimeData,
  3347. JSCommonCoordinateData_Global_NYMEXTimeData: g_NYMEXTimeData,
  3348. JSCommonCoordinateData_Global_COMEXTimeData: g_COMEXTimeData,
  3349. JSCommonCoordinateData_Global_NYBOTTimeData: g_NYBOTTimeData,
  3350. JSCommonCoordinateData_Global_LMETimeData: g_LMETimeData,
  3351. JSCommonCoordinateData_Global_CBOTTimeData: g_CBOTTimeData,
  3352. JSCommonCoordinateData_Global_TOCOMTimeData: g_TOCOMTimeData,
  3353. JSCommonCoordinateData_Global_IPETimeData: g_IPETimeData,
  3354. JSCommonCoordinateData_GetfloatPrecision: GetfloatPrecision,
  3355. };
  3356. */