//@Name:CMF Value //@Description:Displays the latest value of the Chaikin Money Flow Indicator. Can be used in data mining. // 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. //Coded by: Paul Hall, ShareScript Support var period = 20; var useIntra = 0; var dataType =0; var lookback =0; var dataSource = ["Daily","Weekly","Monthly"]; var dataName = ["day","week","month"]; function init(status) { if (status==Loading || status==Editing) { period = storage.getAt(0); dataType = storage.getAt(1); useIntra = storage.getAt(2); lookback = storage.getAt(3); } if (status==Adding || status==Editing) { var dlg = new Dialog("CMF settings",180,80) dlg.addOkButton(); dlg.addCancelButton(); dlg.addIntEdit("INT1",8,8,-1,-1,"","period",period,2,1000); dlg.addDropList("VAL1",8,-1,-1,-1,dataSource,"","",dataType); dlg.addTickBox("VAL2",8,-1,150,-1,"Include intraday data",useIntra); dlg.addIntEdit("INT2",40,-1,-1,-1,"Lookback","periods ago",lookback,0,1000); if (dlg.show()==Dialog.Cancel) return false; period = dlg.getValue("INT1"); dataType = dlg.getValue("VAL1"); useIntra = dlg.getValue("VAL2"); lookback = dlg.getValue("INT2"); storage.setAt(0, period); storage.setAt(1, dataType); storage.setAt(2, useIntra); storage.setAt(3, lookback); } setTitle(period+" "+dataName[dataType]+" CMF"+(lookback?(" ("+lookback+")"):"")); } function getVal(share) { var sum1, sum2; var data = getData(share,dataType,useIntra); if (data.lengthdata[data.length-1].high?idata[0].high:data[data.length-1].high), low:(idata[0].lowdata[data.length-1].high?idata[0].high:data[data.length-1].high), low:(idata[0].low