From 7fe0e95cd4daf9a5e2b7f142e8a9c20dba32156d Mon Sep 17 00:00:00 2001
From: John Benediktsson <mrjbq7@gmail.com>
Date: Thu, 3 May 2012 16:31:04 -0700
Subject: [PATCH] math.finance: adding dema, gdema, and tema.

---
 extra/math/finance/finance.factor | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/extra/math/finance/finance.factor b/extra/math/finance/finance.factor
index 12f58c891b..8e85e52820 100644
--- a/extra/math/finance/finance.factor
+++ b/extra/math/finance/finance.factor
@@ -20,6 +20,17 @@ PRIVATE>
 : sma ( seq n -- newseq )
     clump [ mean ] map ;
 
+: dema ( seq n -- newseq )
+    [ ema ] keep [ drop 2 v*n ] [ ema ] 2bi v- ;
+
+: gdema ( seq n v -- newseq )
+    [ [ ema ] keep dupd ema ] dip
+    [ 1 + v*n ] [ v*n ] bi-curry bi* v- ;
+
+: tema ( seq n -- newseq )
+    [ ema ] keep dupd [ ema ] keep
+    [ drop [ 3 v*n ] bi@ v- ] [ ema nip ] 3bi v+ ;
+
 : macd ( seq n1 n2 -- newseq )
     rot dup ema [ swap ema ] dip v- ;