//@Name:Alarm:Fib Retracement //@Description:An alarm that triggers when the price crosses a fibonacci retracement level. This script will only work on individual shares, not lists. //@Update:Periodic, 30 //@Env:Production //@Returns:Text //@Width:200 // 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 input = [7491.5,7514.8] var levelsPerc = [0,23.6,38.2,50,61.8,100,161.8,261.8] var levelsOn = [true,true,true,true,true,true,true,true] var levelsPrice = []; function init(status) { if (status == Loading || status == Editing) { input[0] = storage.getAt(1); input[1] = storage.getAt(2); var tempPerc = restore(storage.getAt(3),[[levelsPerc[0],0,2800],[levelsPerc[1],0,2800]]) levelsPerc[0] = tempPerc[0][0]/10; levelsPerc[1] = tempPerc[1][0]/10; var tempPerc = restore(storage.getAt(4),[[levelsPerc[2],0,2800],[levelsPerc[3],0,2800]]) levelsPerc[2] = tempPerc[0][0]/10; levelsPerc[3] = tempPerc[1][0]/10; var tempPerc = restore(storage.getAt(5),[[levelsPerc[4],0,2800],[levelsPerc[5],0,2800]]) levelsPerc[4] = tempPerc[0][0]/10; levelsPerc[5] = tempPerc[1][0]/10; var tempPerc = restore(storage.getAt(6),[[levelsPerc[6],0,2800],[levelsPerc[7],0,2800]]) levelsPerc[6] = tempPerc[0][0]/10; levelsPerc[7] = tempPerc[1][0]/10; var tempON = restore(storage.getAt(7),[[levelsOn[0],0,1],[levelsOn[1],0,1],[levelsOn[2],0,1],[levelsOn[3],0,1],[levelsOn[4],0,1],[levelsOn[5],0,1],[levelsOn[6],0,1],[levelsOn[7],0,1]]) for (var i=0;ilevelsPrice[i]) { alarmText = "Price above "+levelsPrice[i]+" ("+levelsPerc[i]+"%) level"; break; } if (levelsOn[i] && prevMid>levelsPrice[i] && mid8388608) print("Too much data for single storage space") return output } //restore from compression algorithm //storage is the compress function output and data is the same as compress function input. //individual values in "data" aren't important (those get overwritten), but min and max values are function restore(storage, data) { var remainder = storage var rangeTot = 1 for (var i=0;i=0;i--) { if (i