//@Name:Intraday TICK & TRIN //@Description:A TICK and TRIN market graph for interaday charts. //@Update:Periodic, 60 //@Type:Intraday // Care has been taken in preparing this code but it is provided without guarantee. // You are welcome to modify and extend it. Please add your name as a modifier if you distribute it. var relShare = 0; var TICKTRIN = 0; var indexList = ["FTSE100","FTSE250","FTSE350","FTSE All-Share","Nasdaq","NYSE","AMEX"]; var relShareList = [getList(List.FTSE100),getList(List.FTSE250),getList(List.FTSE350), getList(List.FTSEAllShare),getList(List.NASDAQ),getList(List.NYSE),getList(List.AMEX)]; var refreshTest = 0; var output = []; var lineCol = Colour.RGB(255,125,0); var lineStyle = Pen.Solid var lineWidth = 0 function init(status) { if (status == Loading || status == Editing) { TICKTRIN = storage.getAt(0); relShare = storage.getAt(1); lineCol = storage.getAt(2); lineStyle = storage.getAt(3); lineWidth = storage.getAt(4); } if (status == Adding || status == Editing) { dlg = new Dialog("TICK & TRIN", 195, 44); dlg.addOkButton(); dlg.addCancelButton(); dlg.addDropList("DL1", 8, -1, 80, -1, ["TICK","TRIN"], "", "", TICKTRIN); dlg.addDropList("DL2", 8, -1, 80, -1, indexList, "", "", relShare); dlg.addColLinePicker("CL1",100,5,-1,-1,"","",lineCol,lineStyle,lineWidth); if (dlg.show()==Dialog.Cancel) return false; TICKTRIN = dlg.getValue("DL1"); relShare = dlg.getValue("DL2"); lineCol = dlg.getValue("CL1").colour; lineStyle = dlg.getValue("CL1").pen; lineWidth = dlg.getValue("CL1").width; storage.setAt(0, TICKTRIN); storage.setAt(1, relShare); storage.setAt(2, lineCol); storage.setAt(3, lineStyle); storage.setAt(4, lineWidth); } setSeriesColour(0,lineCol); setSeriesLineStyle(0,lineStyle,lineWidth) setHorizontalLine(TICKTRIN?1:0); setTitle((TICKTRIN?"TRIN ":"TICK ")+indexList[relShare]); } function getGraph(share, data) { if (refreshTest != share) { var fixedPeriod = (data[1].timeNum-data[0].timeNum); var risers = []; var riseVol = []; var fallers = []; var fallVol = []; var interimData = []; var idata = []; output = []; output[0] = 0; var numDays = 0; var c,v,t; for (var i=1;i=0;j--) { var temp = list[i].getIBarArray(j, fixedPeriod); if (temp == undefined) { interimData = undefined; break; } interimData = interimData.concat(temp); } if (interimData == undefined) continue; for (k=0;kidata[j-1].close) { risers[j]++; riseVol[j] += idata[j].volume; } if (idata[j].close