var allCombinations; var optionChainContext={}; $(document).ready(_=>{ dta={}; createOrderFrame(); createMasterFilterFrame(); let selectDataFirst=_=>{ return {enabled:false, tooltip:"Select a Ticker!"}; } $("#datePicker").datepicker({beforeShowDay:selectDataFirst}); }); let dta={}; let datesOut=(dateInp)=>{ let date=dateInp.split(':')[0]; let dte=dateInp.split(':')[1]; let attrActive=""; if (optionChainContext.selectedDate === date) { attrActive="active"; //fillChainTable(dateInp,date); } return `` } let getCallArtifact=(callData,allColumns)=>{ let artifact=""; let classes=(callData.delta < 0.5)?" otm":" itm"; for (let i=0;i< allColumns.length;i++){ let cellValue=Number(callData[allColumns[i]]).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}); artifact+=` ${cellValue} `; } let strCallJSON=JSON.stringify(callData).replace(/"/g,"\\'"); bidFrm=Number(callData.bid).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}); askFrm=Number(callData.ask).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}); classes += " priceClick"; artifact+=` ${bidFrm} ${askFrm} `; return artifact; } let getPutArtifact=(putData,allColumns)=>{ let artifact=""; let classes=(putData.delta > -0.5)?" otm":" itm"; for (let i=0;i< allColumns.length;i++){ let cellValue=Number(putData[allColumns[i]]).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}); artifact+=` ${cellValue} `; } let strPutJSON=JSON.stringify(putData).replace(/"/g,"\\'"); bidFrm=Number(putData.bid).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}); askFrm=Number(putData.ask).toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2}); classes += " priceClick"; artifact+=` ${bidFrm} ${askFrm} `; return artifact; } let getStrikeArtifact=(strike)=>{ return ` ${strike} `; } let fillChainRow=(rowData)=>{ let theTable=document.getElementById("tblOptionChain"); let theNewRow=theTable.insertRow(-1); let allColumns=["delta","theta","vega"]; theNewRow.innerHTML=getCallArtifact(rowData.call,allColumns) + getStrikeArtifact(rowData.strike) + getPutArtifact(rowData.put,allColumns); } let clearChainTable=()=>{ let theTable=document.getElementById("tblOptionChain"); for (let i=theTable.rows.length;i>3;i--){ theTable.deleteRow(-1); } } let fillChainTable=(expirationDate,dateOnly)=>{ // Maintain Active Tab $(".nav a").on("click", function(){ $(".nav").find(".active").removeClass("active"); $(this).parent().addClass("active"); }); clearChainTable(); optionChainContext.selectedDate=dateOnly; let allCalls=dta.callExpDateMap[expirationDate]; let allPuts=dta.putExpDateMap[expirationDate]; //console.log(expirationDate,allCalls,allPuts); let allStrikes=Object.keys(allCalls); for (let i=0;i{ let app=window.document.getElementById('app'); $("#wrapperOptionChain").remove(); let newNode=document.createElement("div"); newNode.setAttribute("id","wrapperOptionChain"); newNode.innerHTML=`
CALLSPUTS
DeltaThetaVegaBidAskStrikeDeltaThetaVegaBidAsk
`; app.appendChild(newNode) // "click" the date if it's the context dte if ($(".nav").find(".active").children().length > 0){ $(".nav").find(".active").children()[0].click(); } }