//@Name:Alarm:Trade Jump //@Description:An alarm that triggers when the latest trade is higher or lower than the previous trade by a certain percentage //@Update:Intraday //@Env:Production //@Returns:Text //@Width:120 // 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: Richard Chiesa, ShareScript Support var var1 = 1; function init(status) { if (status == Loading || status == Editing) { var1 = storage.getAt(0); } if (status == Adding || status == Editing) { dlg = new Dialog("Trade Jump alarm",150,55); dlg.addOkButton(); dlg.addCancelButton(); dlg.addNumEdit("NUM1",35,-1,-1,-1,"Trigger","%",var1,0.1,100.0); if (dlg.show()==Dialog.Cancel) return false; var1 = dlg.getValue("NUM1"); storage.setAt(0, var1); } } function getVal(share) { var trades = share.getITradeArray(); if (trades == undefined || trades.length<2) return; var oldAlarm = getValueForShare(share); var alarmText; if (oldAlarm == undefined || !isAlarmContext) { if (trades[trades.length-1].price/trades[trades.length-2].price-1>=var1/100) { alarmText = "Trade rise "+((trades[trades.length-1].price/trades[trades.length-2].price-1)*100).toFixed(2)+"%"; setValueForShare(share, 1); } if (trades[trades.length-1].price/trades[trades.length-2].price-1<=-var1/100) { alarmText = "Trade fall "+((trades[trades.length-1].price/trades[trades.length-2].price-1)*100).toFixed(2)+"%"; setValueForShare(share, 1); } } else { setValueForShare(share, undefined); } return alarmText; }