var costAmount=0; var allCombinations; var optionChainContext={}; $(document).ready(_=>{ dta={}; createOrderFrame(); createMasterFilterFrame(); let selectDataFirst=_=>{ return {enabled:false, tooltip:"Select a Ticker!"}; } $("#datePicker").datepicker({beforeShowDay:selectDataFirst}); }); let createOrderFrame=()=>{ let theFrameDiv=document.createElement("div"); theFrameDiv.setAttribute("id","frmOrder"); theFrameDiv.className="container-fluid "; window.document.getElementById('app').append(theFrameDiv); theFrameDiv.innerHTML=`
Gain $0 `; } let clearOrder=()=>{ costAmount=0; $("#listOrderItems").empty(); showCostAmount(); } let addToOrder=(openType,optionData)=>{ optionData=JSON.parse(optionData.replace(/'/g,'"')); console.log("AddToOrder",openType,optionData); let price=(openType.substr(0,1)==="b")?optionData.ask:optionData.bid; price=price*100; let priceEffect=price * ((openType.substr(0,1)==="b")?-1:1); costAmount+=priceEffect; showCostAmount(); $("#listOrderItems").append(`
  • [X] ${openType} | ${optionData.symbol} | ${price.toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2})}
  • `); } let removeFromOrder=(ele,priceEffect)=>{ costAmount-=priceEffect; let li=ele.parentElement; li.parentElement.removeChild(li); showCostAmount(); } let showCostAmount=_=>{ $("#lbCostAmount").text(costAmount.toLocaleString('en',{minimumFractionDigits: 2, maximumFractionDigits: 2})); } 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(); } }