Update examples to use StreamNode and Series with lookback
The `PipelineNode` has been refactored into `StreamNode`. This commit updates the example files to reflect this change and also updates the `series` constructor to accept a lookback parameter. The `PipelineNode` was an artifact of a previous implementation and is no longer needed. The `StreamNode` is the appropriate type for representing the output of a pipe operation. The `series` function now requires a `lookback` argument to specify the maximum number of items to store. This makes the behavior of series more explicit and prevents accidental unbounded memory growth.
This commit is contained in:
+17
-7
@@ -1,12 +1,22 @@
|
||||
#use rtl
|
||||
|
||||
(do
|
||||
(def src (create-random-ohlc 42 200))
|
||||
(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 printx [s] `(fn [x] (print ~s x)))
|
||||
(macro cache [lookback type src] `(do (def data (series ~lookback ~type)) (pipe [~src] (fn [s] (do (push data s)))) data))
|
||||
|
||||
(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="))
|
||||
)
|
||||
|
||||
|
||||
; (def bars (series 20 :float))
|
||||
; (pipe [src] (fn [s] (do (push bars (.close s)))))
|
||||
|
||||
(cache 20 :float src)
|
||||
|
||||
)
|
||||
Reference in New Issue
Block a user