#use rtl (do (def src (create-random-ohlc 42 20000)) (macro printx [s] `(fn [x] (print ~s x))) ; (pipe src print) ; (pipe [(pipe [(.close src)] (SMA 20))] (printx "sma20=")) ; (pipe [(pipe [(.close src)] (SMA 5))] (printx "sma5=")) ; (pipe [(pipe [(.close src)] (SMA 100))] (printx "sma100=")) (macro cache [lookback type src] `(do (def data (series ~lookback ~type)) (pipe [~src] (fn [s] (do (push data s)))) data)) ; (def bars (series 20 :float)) ; (pipe [src] (fn [s] (do (push bars (.close s))))) (cache 20 :float src) )