//document.write ("
40秒自動更新或按我立即更新
") var timerID = null; function refreshimg080850(){ var d=new Date(); //var imgsrc=""+d.getTime(); //document.tickGraph080850.src=imgsrc; } timerID = setInterval("refreshimg080850()",40000); var magicHeight = 45; magicHeight = 85; function SystexCharLibLoad(_p){ var s = document; var o = 'script'; var a = s.createElement(o); a.charset = 'UTF-8'; a.async = 1; a.src = '//ubot.megatime.com.tw/asp/JScript/'+_p; var m = s.getElementsByTagName(o)[0]; m.parentNode.insertBefore(a, m) } SystexCharLibLoad('jquery.min.js'); SystexCharLibLoad('xml2json.js'); SystexCharLibLoad('BrowserInfo.js'); SystexCharLibLoad('Chart/raphael-min-IEShiftFixed.js'); SystexCharLibLoad('Chart/surreal.js'); SystexCharLibLoad('Chart/scRender.js'); SystexCharLibLoad('Chart/raChart.js'); SystexCharLibLoad('Chart/raChartXCS.js'); var SystexFWCharStr = ''+ '
'+ '
'+ '
'+ ''+ ''+ ' '+ ''+ ''+ ''+ '
'+ '
'+ '
'+//overflow:auto; '
'+ '精誠資訊'+ '
'+ '
'+ '
'+ '
'+ '
'; document.write(SystexFWCharStr); var raChart080850; var SystexFWCharMagicSize080850 = 0; initSystexFWChar080850(); function initSystexFWChar080850(){ setTimeout(function(){ if ( typeof(raChart) == 'function' &&typeof(MYXCS) == 'function' &&typeof(SCLineRender) == 'function' &&typeof(Surreal) == 'function' &&typeof(Raphael) == 'function' &&typeof(BrowserInfoClass) == 'function' ){ var ggWidth = 620-200+14;//寬-右方資訊+走勢圖右偏移(增加繪圖可顯示區) var ggHeight = 300-15-3;//高-名稱-下留白 var CharZoneObj = document.getElementById('SystexFWChar080850'); raChart080850 = new raChart(CharZoneObj); raChart080850.setViewObjs({'defAttr': {'font-family': 'Arial, Helvetica, sans-serif, Meiyo, 微軟正黑體','font-weight': 600}}); raChart080850.setSize( ggWidth, ggHeight); var lastMX, lastTK; CharZoneObj.onmousemove = function(e) { var mX = getMouseOffset(this, e).x; if (mX <= 0 || lastMX == mX) return; lastMX = mX; var timekey = raChart080850.getTimeKey(mX); if (lastTK == timekey || typeof(timekey) == 'undefined') return; lastTK = timekey; raChart080850.setTimeKey(timekey); }; CharZoneObj.onmouseleave = function() { setTimeout(function() { // 延遲5秒後 raChart080850.setTimeKey(); }, 5000); }; var statusXCS= getXCSData080850(); if (statusXCS == false) { return statusXCS; } setInterval(function(){ getXCSData080850(); },15000); }else{ initSystexFWChar080850(); } },10); } function convertXml2JSon(_response) { var x2js = new X2JS(); var xmlSerial = new XMLSerializer(); var newXmlStr = xmlSerial.serializeToString(_response); _response = newXmlStr.replace('',""); _response = newXmlStr.replace(/["]/g, "'"); var x2json = x2js.xml_str2json(_response); var stringfy =JSON.stringify(x2json); return stringfy; } function doDrawSystexFWChar080850(_XCSData){ if ( SystexFWCharMagicSize080850 != _XCSData.Data.Ref.length ){ var IE8FixWidth = (BrowserInfo.Name()=="IE" && BrowserInfo.Version() <= 8.0 ) ? -18 : 0; SystexFWCharMagicSize080850 = _XCSData.Data.Ref.length - 4; if ( SystexFWCharMagicSize080850 < 0 ) SystexFWCharMagicSize080850 = 0; raChart080850.setSize( 620-200+IE8FixWidth-(20*SystexFWCharMagicSize080850)+14, 282); var s = document; s.getElementById('SystexFWChar080850').style.width = 620-200+IE8FixWidth-(20*SystexFWCharMagicSize080850)+"px"; s.getElementById('SystexFWCharInfo080850').style.width = 620-200+IE8FixWidth-(20*SystexFWCharMagicSize080850)+"px"; s.getElementById('SystexFWCharQuoteInfo080850').style.width = 200+(20*SystexFWCharMagicSize080850)+"px"; } setInfoData080850(_XCSData.Data); raChart080850.setXCSData(_XCSData); } function combineXCSData080850(_minXCS , _curXCS , _tickXCS){ var _XCSStockCurData = {}; _XCSStockCurData.Data = _curXCS.Data.CurStatus; if ( (_tickXCS.Ticks != null) && ( _tickXCS.Ticks.Stock !=null ) && (_tickXCS.Ticks.Stock.Tick !=null) ){ console.warn('combineXCSData',_tickXCS.Ticks); if (_tickXCS.Ticks.Stock.Tick instanceof Array) { //alert('value is Array!'); _XCSStockCurData.Data.Ticks = _tickXCS.Ticks.Stock.Tick; } else { //alert('Not an array'); _XCSStockCurData.Data.Ticks = []; _XCSStockCurData.Data.Ticks.push(_tickXCS.Ticks.Stock.Tick); } }else { // _XCSStockCurData.Data.Ticks = []; var _ticks_minutes_Data; var _ticks_minutes_ago = startAndEndTime(5)[2]; console.warn('combineXCSData',_tickXCS.Ticks); do { // code block to be executed _ticks_minutes_Data = getStockTickXml(startAndEndTime(_ticks_minutes_ago)); _ticks_minutes_ago += 30; _XCSStockCurData.Data.Ticks = _ticks_minutes_Data.Ticks.Stock.Tick; if (_ticks_minutes_Data.Ticks.Stock.Tick === undefined ) { _XCSStockCurData.Data.Ticks = []; break; } } while( _ticks_minutes_Data.Ticks.Stock.Tick === undefined ); while (_XCSStockCurData.Data.Ticks.length >= 499 ) { _ticks_minutes_ago -= 10; _ticks_minutes_Data = getStockTickXml(startAndEndTime(_ticks_minutes_ago)); _XCSStockCurData.Data.Ticks = _ticks_minutes_Data.Ticks.Stock.Tick; }; } _XCSStockCurData.Data.Sections = [{"OpenTime": "32400","CloseTime": "52200"}];//上午九點到下午兩點半 _XCSStockCurData.Data.Name = _XCSStockCurData.Data.name; _XCSStockCurData.Data.TradeDate = _XCSStockCurData.Data.LastTime; _XCSStockCurData.Data.Trade = addZeroes(getConvertZero(_XCSStockCurData.Data.trade)); _XCSStockCurData.Data.UpLim = addZeroes(getConvertZero(_XCSStockCurData.Data.uplim)); _XCSStockCurData.Data.DownLim = addZeroes(getConvertZero(_XCSStockCurData.Data.downlim)); _XCSStockCurData.Data.Open = addZeroes(getConvertZero(_XCSStockCurData.Data.open)); _XCSStockCurData.Data.High = addZeroes(getConvertZero(_XCSStockCurData.Data.high)); _XCSStockCurData.Data.Low = addZeroes(getConvertZero(_XCSStockCurData.Data.low)); _XCSStockCurData.Data.UpDownRate = _XCSStockCurData.Data.percent; _XCSStockCurData.Data.UpDown = _XCSStockCurData.Data.updown; _XCSStockCurData.Data.Volume = _XCSStockCurData.Data.volume; _XCSStockCurData.Data.VolInc = _XCSStockCurData.Data.volinc; _XCSStockCurData.Data.Buy = _XCSStockCurData.Data.buy; _XCSStockCurData.Data.Sell = _XCSStockCurData.Data.sell; _XCSStockCurData.Data.BuyVol = _XCSStockCurData.Data.buyvol; _XCSStockCurData.Data.SellVol = _XCSStockCurData.Data.sellvol; var dataTicks = []; if (_XCSStockCurData.Data.Ticks != null){ for (var index = 0; index < _XCSStockCurData.Data.Ticks.length; index++) { var eachTicks = []; var _tempTicks = _XCSStockCurData.Data.Ticks[index]; //console.warn(_tempTicks); //eachMins[0] = _tempTicks._Count; eachTicks[0] = _tempTicks._Time; eachTicks[1] = _tempTicks._B; eachTicks[2] = _tempTicks._S; eachTicks[3] = _tempTicks._T; eachTicks[4] = _tempTicks._V; dataTicks.push(eachTicks); } } _XCSStockCurData.Data.Ticks = dataTicks; var tempBuyPVBest5 = 0, tempSellPVBest5 = 0, tempBuyCount=0 ,tempSellCount=0; // _XCSStockCurData.Data.Buy1 = _XCSStockCurData.Data.BP1; for (var index = 1; index <= 5; index++) { var Buy_String = "Buy" + index; var BP_String = "BP" + index; var Sell_String = "Sell" + index; var SP_String = "SP" + index; var BuyVol_String = "BuyVol" + index; var BV_String = "BV" + index; var SellVol_String = "SellVol" + index; var SV_String = "SV" + index; _XCSStockCurData.Data[Buy_String] = _XCSStockCurData.Data[BP_String]; _XCSStockCurData.Data[Sell_String] = _XCSStockCurData.Data[SP_String]; _XCSStockCurData.Data[BuyVol_String] = _XCSStockCurData.Data[BV_String]; _XCSStockCurData.Data[SellVol_String] = _XCSStockCurData.Data[SV_String]; if (_XCSStockCurData.Data[Buy_String] !='--') { if ( Number(_XCSStockCurData.Data[Buy_String]) == 99.9999 || Number(_XCSStockCurData.Data[Buy_String]) == -99.9999 || Number(_XCSStockCurData.Data[Buy_String]) == 999999.0000 || Number(_XCSStockCurData.Data[Buy_String]) == -999999.0000 ) { } else { tempBuyPVBest5 += Number(_XCSStockCurData.Data[Buy_String]) * Number(_XCSStockCurData.Data[BuyVol_String]); tempBuyCount += Number(_XCSStockCurData.Data[BuyVol_String]); } } else {} if (_XCSStockCurData.Data[Sell_String] !='--') { if ( Number(_XCSStockCurData.Data[Sell_String]) == 99.9999 || Number(_XCSStockCurData.Data[Sell_String]) == -99.9999 || Number(_XCSStockCurData.Data[Sell_String]) == 999999.0000 || Number(_XCSStockCurData.Data[Sell_String]) == -999999.0000 ) { } else { tempSellPVBest5 += Number(_XCSStockCurData.Data[Sell_String]) * Number(_XCSStockCurData.Data[SellVol_String]); tempSellCount += Number(_XCSStockCurData.Data[SellVol_String]); } } else {} delete _XCSStockCurData.Data[BP_String]; delete _XCSStockCurData.Data[SP_String]; delete _XCSStockCurData.Data[BV_String]; delete _XCSStockCurData.Data[SV_String]; } if (tempBuyCount == 0) { _XCSStockCurData.Data.BuyPVBest5Avg = '--'; } else { _XCSStockCurData.Data.BuyPVBest5Avg = (tempBuyPVBest5/tempBuyCount).toFixed(2); } if (tempSellCount == 0) { _XCSStockCurData.Data.SellPVBest5Avg = '--'; } else { _XCSStockCurData.Data.SellPVBest5Avg = (tempSellPVBest5/tempSellCount).toFixed(2); } if (_minXCS.Data !=null && _minXCS.Data.Stock !=null && _minXCS.Data.Stock.Min !=null ) { _XCSStockCurData.Data.TA1Mins = _minXCS.Data.Stock.Min; } else { _XCSStockCurData.Data.TA1Mins = []; } var dataMins = []; for (var index = 0; index < _XCSStockCurData.Data.TA1Mins.length; index++) { var eachMins = []; var _tempMins = _XCSStockCurData.Data.TA1Mins[index]; eachMins[0] = _tempMins.T; eachMins[1] = addZeroes((_tempMins.O)); eachMins[2] = addZeroes((_tempMins.H)); eachMins[3] = addZeroes((_tempMins.L)); eachMins[4] = addZeroes((_tempMins.C)); eachMins[5] = _tempMins.V; dataMins.push(eachMins); } _XCSStockCurData.Data.TA1Mins = dataMins; _XCSStockCurData.Data.Ref = addZeroes(getConvertZero(_XCSStockCurData.Data.ref)); _XCSStockCurData.Data.SymbolID = _XCSStockCurData.Data.REGID; delete _XCSStockCurData.Data.ref; delete _XCSStockCurData.Data.REGID; delete _XCSStockCurData.Data.name; //delete _XCSStockCurData.Data.LastTime; delete _XCSStockCurData.Data.uplim; delete _XCSStockCurData.Data.downlim; delete _XCSStockCurData.Data.open; delete _XCSStockCurData.Data.high; delete _XCSStockCurData.Data.low; delete _XCSStockCurData.Data.updown; delete _XCSStockCurData.Data.percent; delete _XCSStockCurData.Data.volume; delete _XCSStockCurData.Data.volinc; delete _XCSStockCurData.Data.buy; delete _XCSStockCurData.Data.sell; delete _XCSStockCurData.Data.buyvol; delete _XCSStockCurData.Data.sellvol; delete _XCSStockCurData.Data.trade; // console.warn("combine",_XCSStockCurData.Data); doDrawSystexFWChar080850(_XCSStockCurData); } function getFormat(params) { var num = (Math.round(params * 100)).toFixed(4); return num; } // ************************************************************************************** // read data from demo.xml using Jquery | AJAX * // ************************************************************************************** function getStockCurXml() { var ajaxResponse; $.ajax({ type: "POST", url: "/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/stock_cur.xml?id=080850", dataType: "xml", contentType: "text/xml; charset=big5", async: false, beforeSend: function (xhr) { xhr.overrideMimeType("text/xml; charset=big5"); }, error: function (xhr, status, error) { // alert("An error occurred while processing XML file"); console.log("XML reading Failed: ", xhr); var text = xhr.responseText; console.warn("狀態: ",status ,";錯誤: ", text); if(xhr.status == 502 || xhr.status == 200){ console.log("15秒後重發一次 getStockCurXml()"); } ajaxResponse = false; }, success: function (response) { var _XCSStockCurData = JSON.parse(convertXml2JSon(response)); //console.warn("Cur Xml",_XCSStockCurData.Data); //console.warn("Cur Xml",_XCSStockCurData.Data.CurStatus.ref); //console.warn("Cur Xml",_XCSStockCurData.Data.CurStatus.name); ajaxResponse = _XCSStockCurData; }, timeout: 2000 // sets timeout to 2 seconds }); return ajaxResponse; } // ************************************************************************************** // read data from demo.xml using Jquery | AJAX * // ************************************************************************************** function getStockMinXml() { var ajaxResponse; $.ajax({ type: "GET", url: "/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/stock_min.xml?id=080850&sc=0&ec=-1&timefmt=0&digitfmt=1&interval=60", dataType: "xml", contentType: "text/xml; charset=big5", async: false, beforeSend: function (xhr) { xhr.overrideMimeType("text/xml; charset=big5"); }, error: function (xhr, status, error) { // alert("An error occurred while processing XML file"); console.log("XML reading Failed: ", xhr); var text = xhr.responseText; console.warn("狀態: ",status ,";錯誤: ", text); if(xhr.status == 502 || xhr.status == 200){ console.log("15秒後重發一次 getStockMinXml()"); } ajaxResponse = false; }, success: function (response) { var _XCSMinData = JSON.parse(convertXml2JSon(response)); //console.warn("MIN XML",_XCSMinData.Data); //console.warn("MIN XML",_XCSMinData.Data.Stock._id); //console.warn("MIN XML",_XCSMinData.Data.Stock.Min); //console.warn("MIN XML",_XCSMinData.Data.Stock.Min[0].T); ajaxResponse = _XCSMinData; }, timeout: 2000 // sets timeout to 2 seconds }); return ajaxResponse; } // ************************************************************************************** // read data from demo.xml using Jquery | AJAX * // ************************************************************************************** function getStockTickXml(_time) { var ajaxResponse, // url = "/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/stock_tick.xml?id=080850&timefmt=1&st="+ _time[0] + "&et="+ _time[1]+"&sc=0"; url = "/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/stock_tick.xml?id=080850&timefmt=1&sc=0&reverse=1"; $.ajax({ type: "GET", url: url, //url: "https://dm-demo2.megatime.com.tw/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/stock_tick.xml?id=080850&timefmt=1&st=1630&et=1730&sc=0", dataType: "xml", contentType: "text/xml; charset=big5", async: false, beforeSend: function (xhr) { xhr.overrideMimeType("text/xml; charset=big5"); }, error: function (xhr, status, error) { // alert("An error occurred while processing XML file"); console.log("XML reading Failed: ", xhr); var text = xhr.responseText; console.warn("狀態: ",status ,";錯誤: ", text); if(xhr.status == 502 || xhr.status == 200){ console.log("15秒後重發一次 getStockTickXml()"); } ajaxResponse = false; }, success: function (response) { var _XCSTickData = JSON.parse(convertXml2JSon(response)); // console.log("Tick XML",_XCSTickData.Ticks); //console.warn("Tick XML",_XCSTickData.Ticks.Tick[0].Time); //console.warn("Tick XML",_XCSTickData.Ticks.Tick[0].B); ajaxResponse = _XCSTickData; }, timeout: 2000 // sets timeout to 2 seconds }); return ajaxResponse; } function getXCSData080850(){ var d=new Date(); var s = document; var o = 'script'; var a = s.createElement(o); a.async = 1; //a.src = '//ubot.megatime.com.tw/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/fut_data.js?key=&callback=doDrawSystexFWChar080850&t='+d.getTime(); //a.src = '//ubot.megatime.com.tw/asp/java_asp/XCS_Convert.asp?url=/asp/xcs/stock_cur.xml?id=080850&callback=doDrawSystexFWChar080850&t='+d.getTime(); var _time = startAndEndTime(5);//預設取最後五分鐘20200210 var _minXCS = getStockMinXml(),_curXCS = getStockCurXml(),_tickXCS = getStockTickXml(_time); if(_minXCS == false || _curXCS == false || _tickXCS == false){ alert("伺服器忙碌中,請稍後! (錯誤代碼:XCS_502)"); return false; }else{ // combineXCSData080850(getStockMinXml(), getStockCurXml(), getStockTickXml(_time)); combineXCSData080850(_minXCS, _curXCS, _tickXCS); } var m = s.getElementsByTagName(o)[0]; m.parentNode.insertBefore(a, m) } function setInfoData080850(_Data){ var s = document; s.getElementById("SystexFWCharInfoName080850").innerHTML = _Data.Name; if ( _Data.SymbolID.substring(_Data.SymbolID.length-1,_Data.SymbolID.length) != "F" ){ s.getElementById("SystexFWCharInfoSymbolID080850").innerHTML = "("+_Data.SymbolID+")"; } //s.getElementById("SystexFWCharInfoTime080850").innerHTML = _Data.TradeDate + " " + _Data.LastTime; if ( _Data.LastTime != "--" && _Data.Ticks.length != 0 ){ // s.getElementById("SystexFWCharInfoTime080850").innerHTML = _Data.LastTime + " " + getNowTime(); var ticks_length = _Data.Ticks.length; s.getElementById("SystexFWCharInfoTime080850").innerHTML = _Data.LastTime + " " + _Data.Ticks[0][0]; }else { s.getElementById("SystexFWCharInfoTime080850").innerHTML = getNowDate() + " " + getNowTime(); } raChart080850.changeUpDnMode(true);//改成漲跌停 var TickCount = Math.floor((300-(13*16))/16); var QuoteInfoText = ''; /* 分時明細 20200204 */ QuoteInfoText += getQuoteStockInfo(_Data) ; QuoteInfoText += getQuoteStockInfoTicks(_Data , TickCount); QuoteInfoText += '
'; s.getElementById("SystexFWCharQuoteInfoBar080850").innerHTML = getQuoteInfoBarStyle(_Data) + getQuoteInfoBar(_Data); s.getElementById("SystexFWCharQuoteInfoText080850").innerHTML = QuoteInfoText } function Comparator(a, b) { if (a[0] < b[0]) return -1; if (a[0] > b[0]) return 1; return 0; } function getQuoteInfoTextStyle() { var QuoteInfoTextStyle = 'table.myFormat tr td {'+ 'font-size: 12pt;'+ //'font-size: 10pt;'+ // 'display: inline-block;'+ // 'position: relative;'+ 'max-width:100%;'+ 'white-space:nowrap;'+ 'text-align: center;'+ 'vertical-align: middle;'+ '}'; QuoteInfoTextStyle += 'table.myFormat tbody { display: block; }'; QuoteInfoTextStyle += 'table.myFormat tbody {'+ // 'height: 130px;' + //'max-width: 550px;' + //'max-height: 160px;' + /* Just for the demo */ //'overflow-y: auto;' + /* Trigger vertical scroll */ //'overflow-x: scroll;' + /* Hide the horizontal scroll */ //'-ms-overflow-style:scrollbar;' + '}'; QuoteInfoTextStyle += 'table.myForma tbody tr {'+ 'display:table;'+ 'width:100%;'+ 'table-layout:fixed;'+ /* even columns width , fix width of table too*/ '}'; return QuoteInfoTextStyle; } /*個股價量明細專用20200204 */ function getQuoteStockInfoPQ() { var time_range = [{"OpenTime": "0830","CloseTime": "0900"},{"OpenTime": "0901","CloseTime": "0930"},{"OpenTime": "0931","CloseTime": "1000"}, {"OpenTime": "1001","CloseTime": "1030"},{"OpenTime": "1031","CloseTime": "1100"}, {"OpenTime": "1101","CloseTime": "1130"},{"OpenTime": "1131","CloseTime": "1200"}, {"OpenTime": "1201","CloseTime": "1230"},{"OpenTime": "1231","CloseTime": "1300"}, {"OpenTime": "1301","CloseTime": "1330"},{"OpenTime": "1331","CloseTime": "1430"}]; //0207記得改 // var time_range = [ // {"OpenTime": "1500","CloseTime": "1530"}, // {"OpenTime": "1531","CloseTime": "1600"}, // {"OpenTime": "1631","CloseTime": "1700"}, // {"OpenTime": "1731","CloseTime": "1800"}]; var QuoteStockInfoPQ = ''+ ''+ ''+ ''+ ''+ ''; var all_ticks = []; for (var index = 0; index < time_range.length; index++) { var element = time_range[index]; var data_time = []; data_time[0] = element.OpenTime; data_time[1] = element.CloseTime; var temp_All_Ticks = getStockTickXml(data_time); // console.log(temp_All_Ticks); if (temp_All_Ticks.Ticks != null && temp_All_Ticks.Ticks.Stock !=null && temp_All_Ticks.Ticks.Stock.Tick !=null ){ all_ticks = all_ticks.concat(temp_All_Ticks.Ticks.Stock.Tick); }else { console.warn("problem in getQuoteStockInfoPQ",temp_All_Ticks); all_ticks = all_ticks.concat([]); // all_ticks = all_ticks.concat(testTicksData());//0207記得改 } } var pq_count_from_ticks = []; all_ticks.forEach(function(o) { var existing = pq_count_from_ticks.filter(function(i) { return i["_T"] === o["_T"] })[0]; if (!existing) pq_count_from_ticks.push(o); else existing["_V"] = parseInt(existing["_V"]) + parseInt(o["_V"]) ; }); var data_sum_pq_ticks = []; var total_Volume_ticks = 0; for (var index = 0; index < pq_count_from_ticks.length; index++) { var sum_pq_ticks = []; var element = pq_count_from_ticks[index]; sum_pq_ticks[0] = element["_T"]; sum_pq_ticks[1] = element["_V"]; total_Volume_ticks += parseInt(element["_V"]); data_sum_pq_ticks.push(sum_pq_ticks); } data_sum_pq_ticks = data_sum_pq_ticks.sort(Comparator); // console.log("data_sum_pq_ticks",data_sum_pq_ticks); var QuoteStockInfoPQStyle =''; for (var index = 0; index < data_sum_pq_ticks.length; index++) { var element = data_sum_pq_ticks[index]; QuoteStockInfoPQ += ''+ ''+ ''+ ''+ //''+ ''; // QuoteStockInfoPQStyle += // ''; } QuoteStockInfoPQ+= '
百分比
'+ element[0] +''+ element[1] +''+ ((parseInt(element[1])/total_Volume_ticks)*100).toFixed(2) +'%' + '
'; return QuoteStockInfoPQStyle + QuoteStockInfoPQ; } /*個股基本資料專用20200204 */ function getQuoteStockInfo(_Data) { var QuoteStockInfoText = // ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''; // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // ''+ // QuoteStockInfoText+= '
成交'+getSimTradeMode(_Data,"Trade",true)+'開盤'+_Data.Open+'
漲跌'+getUnDownConvert(_Data.UpDown)+'買進'+addZeroes(getConvertZero(_Data.Buy))+'
漲幅'+_Data.UpDownRate+'賣出'+addZeroes(getConvertZero(_Data.Sell))+'
昨收'+_Data.Ref+'高點'+_Data.High+'
總量'+getConvertZero(_Data.Volume)+'低點'+_Data.Low+'
現量'+getSimTradeMode(_Data,"VolInc",true)+'委買均'+getConvertZero(_Data.BuyPVBest5Avg)+'
昨量'+getConvertZero(_Data.refvol)+'委賣均'+getConvertZero(_Data.SellPVBest5Avg)+'
結算'+_Data.SettlementPrice+'委賣口'+getConvertZero(_Data.SellQty)+'
交易日'+_Data.TradeDate.substring(5)+'未平倉'+getConvertZero(_Data.OI)+'
'; return QuoteStockInfoText; } /*個股分時明細專用20200204 */ function getQuoteStockInfoTicks(_Data , _TickCount) { var QuoteStockInfoTicks = // ''+ // ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''+ ''; //***************** 20200204 分時明細********/ if ( _Data.Ticks.length <= _TickCount ) _TickCount = _Data.Ticks.length; var temp_Ticks = _Data.Ticks; // temp_Ticks.reverse();//反轉 for ( var i = 1 ; i <= _TickCount ; i++ ){ var TickTime = temp_Ticks[_TickCount-i][0]; var Buy = temp_Ticks[_TickCount-i][1]; var Sell = temp_Ticks[_TickCount-i][2]; var Trade = temp_Ticks[_TickCount-i][3]; var Vol = temp_Ticks[_TickCount-i][4]; QuoteStockInfoTicks += ''+ ''+ ''+ ''+ ''+ ''+ ''; } // QuoteStockInfoTicks+= '
     
時間買進賣出成交現量
'+TickTime+''+addZeroes(getConvertZero(Buy))+''+addZeroes(getConvertZero(Sell))+''+Trade+''+getConvertZero(Vol)+'
'; return QuoteStockInfoTicks; } /*最佳五檔專用20200203*/ function getQuoteStockInfoBest5(_Data) { var QuoteStockInfoBest5Text = // ''+ ''+ ''+ ''+ ''+ // ''+ ''+ ''+ ''+ ''+ ''+ ''+ // ''+ ''+ ''+ ''+ ''+ ''+ ''+ // ''+ ''+ ''+ ''+ ''+ ''+ ''+ // ''+ ''+ ''+ ''+ ''+ ''+ ''+ // ''+ ''+ ''+ ''+ ''+ ''+ ''+ // ''+ ''+ ''+ ''; // QuoteStockInfoBest5Text += '
買價買量'+""+'賣價賣量
'+addZeroes(getConvertZero(_Data.Buy1))+''+getConvertZero(_Data.BuyVol1)+''+""+''+addZeroes(getConvertZero(_Data.Sell1))+''+getConvertZero(_Data.SellVol1)+'
'+addZeroes(getConvertZero(_Data.Buy2))+''+getConvertZero(_Data.BuyVol2)+''+""+''+addZeroes(getConvertZero(_Data.Sell2))+''+getConvertZero(_Data.SellVol2)+'
'+addZeroes(getConvertZero(_Data.Buy3))+''+getConvertZero(_Data.BuyVol3)+''+""+''+addZeroes(getConvertZero(_Data.Sell3))+''+getConvertZero(_Data.SellVol3)+'
'+addZeroes(getConvertZero(_Data.Buy4))+''+getConvertZero(_Data.BuyVol4)+''+""+''+addZeroes(getConvertZero(_Data.Sell4))+''+getConvertZero(_Data.SellVol4)+'
'+addZeroes(getConvertZero(_Data.Buy5))+''+getConvertZero(_Data.BuyVol5)+''+""+''+addZeroes(getConvertZero(_Data.Sell5))+''+getConvertZero(_Data.SellVol5)+'
'; return QuoteStockInfoBest5Text; } /*內外盤專用20200203*/ function getQuoteInfoBarStyle(_tempData) { var QuoteInfoBarStyle = ''; return QuoteInfoBarStyle; } /*內外盤專用20200203*/ function getQuoteInfoBar(_tempData) { var QuoteInfoBar = ""; if (_tempData.inv == 0 && _tempData.outv == 0) { } else { QuoteInfoBar = '
'+ '
'+getInline_InOut(_tempData.inv,_tempData.outv)[0]+ '%內盤
'+ '
外盤 '+getInline_InOut(_tempData.inv,_tempData.outv)[1]+ '%
'+ '
'+ '
'+ '
'; } return QuoteInfoBar; } /*內外盤專用20200203*/ function getInline_InOut(_in,_out) { var _total = Number(parseInt(_in)) + Number(parseInt(_out)); var temp_in = Number(parseInt(_in))/Number(_total) , temp_out = Number(parseInt(_out))/Number(_total); var inline_in_out = []; if (_in != null && _out!=null) { inline_in_out[0] = (Math.round(temp_in * 100)).toFixed(0); inline_in_out[1] = (Math.round(temp_out * 100)).toFixed(0); } else { _in = 0; _out = 0; inline_in_out[0] = _in; inline_in_out[1] = _out; } return inline_in_out; } function getConvertZero(_N){ if ( !isNaN(_N) && _N*1 != 0 ) { return _N; } return "--"; } function getUnDownConvert(_P){ if ( !isNaN(_P) && _P*1 != 0 ){ if ( _P*1 > 0 ) return "▲"+_P*1; if ( _P*1 < 0 ) return "▼"+_P*-1; } return _P; } function getUpDownClassName(_R,_P){ if ( !isNaN(_R) && !isNaN(_P) ){ if ( _R*1 > _P*1 ) return " DOWN"; if ( _R*1 < _P*1 ) return " UP"; } return ""; } function getTickVolUpDownClassName(_B,_S,_T){ if ( !isNaN(_B) && !isNaN(_S) && !isNaN(_T) ){ if ( _T*1 >= _S*1 ) return " UP"; if ( _T*1 <= _B*1 ) return " DOWN"; return " DOWN"; } return ""; } function getSimTradeMode(_Data,_Mode,_Flag){ var ReturnValue = ""; // alert(_Data.MarketState);//0207記得改 if ( _Data.MarketState != "正常" && _Data.MarketState != "試撮" ){ if ( _Mode == "Trade" ) ReturnValue = _Data.Trade; // ReturnValue = _Data.SimTrade; if ( _Mode == "VolInc" ) ReturnValue = getConvertZero(_Data.VolInc); // ReturnValue = getConvertZero(_Data.SimTradeVol); if ( _Flag == true && ReturnValue != "--" ){ ReturnValue = "#" + ReturnValue; } }else{ if ( _Mode == "Trade" ) ReturnValue = _Data.Trade; if ( _Mode == "VolInc" ) ReturnValue = getConvertZero(_Data.VolInc); } return ReturnValue; } function getMouseOffset(target, ev){ ev = ev || window.event; var docPos = getPosition(target); var mousePos = mouseCoords(ev); return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y}; } function Nan0(_Nan){ if ( isNaN(_Nan) ){ return 0; } return _Nan; } function getPosition(e){ var left = 0; var top = 0; while (e.offsetParent){ left += e.offsetLeft + (e.currentStyle?(parseInt(Nan0(e.currentStyle.borderLeftWidth))):0); top += e.offsetTop + (e.currentStyle?(parseInt(Nan0(e.currentStyle.borderTopWidth))):0); e = e.offsetParent; } left += e.offsetLeft + (e.currentStyle?(parseInt(Nan0(e.currentStyle.borderLeftWidth))):0); top += e.offsetTop + (e.currentStyle?(parseInt(Nan0(e.currentStyle.borderTopWidth))):0); return {x:left, y:top}; } function mouseCoords(ev){ if(ev.pageX || ev.pageY){ return {x:ev.pageX, y:ev.pageY}; } return { x:ev.clientX + document.body.scrollLeft - document.body.clientLeft, y:ev.clientY + document.body.scrollTop - document.body.clientTop }; } function checkTime(i) { if (i < 10) { i = "0" + i; } return i; } /*分時明細時間區間20200204*/ function startAndEndTime(minus_minutes) { var today = new Date(), later = new Date ( today ); var today_h = today.getHours(); var today_m = today.getMinutes(); later.setMinutes ( today.getMinutes() - minus_minutes );//0207記得改 var later_h = later.getHours(); var later_m = later.getMinutes(); // add a zero in front of numbers<10 var time_data =[]; time_data[0] = checkTime(later_h) +"" + checkTime(later_m); time_data[1] = checkTime(today_h) +"" + checkTime(today_m); time_data[2] = 30;//若倒退五分鐘找不到tick資料,則倒退30分鐘 // console.warn(time_data); /*20200210 起始時間小於開盤時間*/ if (time_data[0] < 0900 ) { time_data[0] = '0900'; time_data[1] = "0930"; } else {} /*20200210 結束時間大於收盤時間 */ if (time_data[1] > 1330 ) { time_data[0] = '1325'; time_data[1] = "1430"; time_data[2] = ( parseInt(time_data[0].substring(0, 2)) - 13 ) *60 ; } else {} // console.log(time_data); return time_data; } function addZeroes( num ) { if (num != '--') { var number = Number(num); if (number == 99.9999 || number == -99.9999 || number == 999999.0000 || number == -999999.0000 ) { number = "市價"; } else if (String(number).split(".").length < 2 || String(number).split(".")[1].length<=2 ){ number = number.toFixed(2); } return number; } return num; } function getNowDate() { var dateObj = new Date(); var month = dateObj.getUTCMonth() + 1; //months from 1-12 var day = dateObj.getUTCDate(); var year = dateObj.getUTCFullYear(); var newdate = year + "/" + month + "/" + day + " "; return newdate; } function getNowTime() { var today = new Date(); var time = checkTime(today.getHours()) + ":" + checkTime(today.getMinutes()) + ":" + checkTime(today.getSeconds()); return time; }