//@Name:Twigg Money Flow_21 //@Description:Trend Indicator based on Volume and recent position of close relative to ATR //Coded by Roger Harmer //Modified by Philip Tolhurst, ShareScript Support based on the forumla found here: //http://www.incrediblecharts.com/indicators/twiggs_money_flow.php var lim = 8; var period = 21; var upCol = Colour.Red; var neutralCol = Colour.Blue; var downCol = Colour.Green; var lineCol = Colour.Black; var useLine = false; var lineWidth = 0; var lineStyle = 0 function init(status) { if (status == Loading || status == Editing) { period = storage.getAt(0); lim = storage.getAt(1); lim = storage.getAt(1); upCol = storage.getAt(2); neutralCol = storage.getAt(3); downCol = storage.getAt(4); lineCol = storage.getAt(5); useLine = storage.getAt(6); } if (status == Adding || status == Editing) { var dlg = new Dialog("Twigg Money Flow", 220, 80); dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",8,-1,-1,-1,"","Period",period,2,2000); dlg.addColLinePicker("LN1",70,4,-1,-1,"","",lineCol,0,0); dlg.addTickBox("TB1",110,6,-1,-1,"Line Only",useLine); dlg.addIntEdit("INT2",8,-1,-1,-1,"","",lim,2,2000); dlg.addColPicker("COL1",8,-1,-1,-1,""," Positive",upCol); dlg.addColPicker("COL2",8,40,-1,-1,"","",neutralCol); dlg.addIntEdit("INT2",45,41,-1,-1,"","Limit",lim,0,2000); dlg.addColPicker("COL3",8,59,-1,-1,""," Negative",downCol); if (dlg.show()==Dialog.Cancel) return false; period = dlg.getValue("INT1"); lim = dlg.getValue("INT2"); upCol = dlg.getValue("COL1"); neutralCol = dlg.getValue("COL2"); downCol = dlg.getValue("COL3"); lineCol = dlg.getValue("LN1").colour; useLine = dlg.getValue("TB1"); lineStyle = dlg.getValue("LN1").pen; lineWidth = dlg.getValue("LN1").width; storage.setAt(0, period); storage.setAt(1, lim); storage.setAt(2, upCol); storage.setAt(3, neutralCol); storage.setAt(4, downCol); storage.setAt(5, lineCol); storage.setAt(6, useLine); } setSeriesColour(0, lineCol); setSeriesLineStyle(lineStyle, lineWidth); setSeriesColour(1, downCol); setSeriesChartType(1, ChartType.Histogram); setSeriesColour(2, upCol); setSeriesChartType(2, ChartType.Histogram); setSeriesColour(3, neutralCol); setSeriesChartType(3, ChartType.Histogram); setHorizontalLine(0); setTitle("Twigg "+period); } function getGraph(share, data) { var ma21 = new Array(); var mav = new Array(); var ma1 = new Array(); var ma2 = new Array(); var test = new Array(); var tmf = new Array(); var AD = new Array(); var count; var red = new Array(); var green = new Array(); var blue = new Array(); for (var j=0; j lim) green[j] = tmf[j]; if (tmf[j] < -lim) red[j] = tmf[j]; if (tmf[j] >= -lim && tmf[j] <= lim) blue[j] = tmf[j]; } if (useLine) return tmf; else return [tmf, red, green, blue]; }