persistable srecord noeq PriceDigitizer2(PriceCells cells) { settable int cellNumber; settable int lastCellNumber; settable bool verbose; // returns new digitized price double digitize(double price) { double cn = cells.toCellNumber(price); lastCellNumber = cellNumber; cellNumber = iroundTowards(cn, cellNumber); ret digitizedPrice(); } double digitizedPrice() { ret cells.fromCellNumber(cellNumber); } double lastDigitizedPrice() { ret cells.fromCellNumber(lastCellNumber); } // digitize price without looking at history double digitizeIndividually(double price) { double cn = cells.toCellNumber(price); ret cells.fromCellNumber(round(cn)); } }