Money_Flow screen

DrBob2 at the Mechanical Investing forum on The Fool (fool.com) posted a followup on his money flow screen (named Money_Flow hereafter). He first posted about this screen in January and according to his (manual, I presume) backtest (top 5, held monthly) the CAGR/GSD numbers were 56/46. Considering the high GSD number, this would be considered a very volatile screen. In December 2007 he posts a followup showing a CAGR of 80% for 2007. Even if the original GSD is a bit high for my taste, getting an 80% return in 2007 makes it worth spending a few minutes looking into the numbers.

On the traditional keelix.com backtester the Money_Flow screen can be described as follows:


Define {Money_Flow}
; Author: DrBob2, post discovery from: 2007-01-01
Deblank [SI Price] [SI Volume--Average Daily 10d] [SI Price--Volume M001] [SI Price--Volume M002] [SI Price--Volume M003] [SI Price--Volume M004] [SI Price--Volume M005] [SI Price--Volume M006] [SI Price--Volume M007] [SI Price--Volume M008] [SI Price--Volume M009] [SI Price/FCFPS]
Keep: [SI Price]>10
Keep: [SI Volume--Average Daily 10d]>20
Keep: [SI Price--Volume M009]>0
Keep: [SI Price/FCFPS]<25
Create [MF001]: [SI Price--Volume M001] * SIGN([SI Price M001] - [SI Price M002])
Create [MF002]: [SI Price--Volume M002] * SIGN([SI Price M002] - [SI Price M003])
Create [MF003]: [SI Price--Volume M003] * SIGN([SI Price M003] - [SI Price M004])
Create [MF004]: [SI Price--Volume M004] * SIGN([SI Price M004] - [SI Price M005])
Create [MF005]: [SI Price--Volume M005] * SIGN([SI Price M005] - [SI Price M006])
Create [MF006]: [SI Price--Volume M006] * SIGN([SI Price M006] - [SI Price M007])
Create [MF007]: [SI Price--Volume M007] * SIGN([SI Price M007] - [SI Price M008])
Create [MF008]: [SI Price--Volume M008] * SIGN([SI Price M008] - [SI Price M009])
Create [MF009]: [SI Price--Volume M009] * SIGN([SI Price M009] - [SI Price M010])
Create [SumMF]: [MF001]+[MF002]+[MF003]+[MF004]+[MF005]+[MF006]+[MF007]+[MF008]+[MF009]
Create [SumVolume]: [SI Price--Volume M001]+[SI Price--Volume M002]+[SI Price--Volume M003]+[SI Price--Volume M004]+[SI Price--Volume M005]+[SI Price--Volume M006]+[SI Price--Volume M007]+[SI Price--Volume M008]+[SI Price--Volume M009]
Create [NormMF]: [SumMF]/[SumVolume]
Keep: [NormMF]>0.75
Create [SortCritera]: [SumMF]/[SI Price--Volume M001]
Sort Ascending [SortCritera]
End

This is a "traditional" money flow screen with a nine month lookback. It also has a value filter to stabilize returns (decrease volatility) somewhat ([SI Price/FCFPS]<25). It makes use of the [SI Price--Volume M001] field (containing the volume for the current/last month going back up to ten month) which first became available in 2004-06-02. This screen, holding top 5 for at least 28 days (link to job here), gives the following result:

----
                  Money_Flow              DJIA             SP500            NASDAQ
2000-06-02            1.0000            1.0000            1.0000            1.0000  (PIOG,HRDG,LH,TNL,SAFT)
2000-06-30     7.58   1.0758    -3.21   0.9679    -1.53   0.9847     4.01   1.0401  (LH,PIOG,DGX,RIT,EV), stopped (HRDG)
...
2006-12-29     2.40  10.3188    -9.94   1.0000     1.55   0.9601     0.09   0.6334  (ORH,AXR,IWZ,AFN,VTV), splits (CRVL:1.5000)

CAGR                      43                 0                -1                -7
GSD                       45                17                17                33
Cycles                    83                83                83                83
Ups/downs                 61                60                58                59
Turnover                  84                                                      
Avg.held                   5                 0                 0                 0
cagr/gsd                0.94              0.00             -0.04             -0.20
mar                     1.00              1.00              1.00              1.00
up                      0.04              0.01              0.01              0.02
dd                      0.05              0.03              0.03              0.06
upr                     0.96              0.36              0.34              0.37

DrBob2 reported the numbers (CAGR/GSD) 56/46 (probably from late 1997), while the backtester reports 43/45 from 2000-06-02. In a recent post on the MI forum at The Fool, DrBob2 mentions that according to his manual tracking the screen returned 80% for 2007. The backtester reports the following numbers:

----
                  Money_Flow              DJIA             SP500            NASDAQ
2006-12-29            1.0000            1.0000            1.0000            1.0000  (ORH,AXR,IWZ,AFN,VTV)
2007-01-26    -1.20   0.9880     0.19   1.0019     0.27   1.0027     0.84   1.0084  (ORH,AXR,AFN,VTV,CHU)
2007-02-23    -1.57   0.9725     1.29   1.0148     2.04   1.0232     3.27   1.0413  (CCF,ROCM,AMSF,MALL,MFW)
2007-03-23     8.60   1.0562    -1.32   1.0014    -1.04   1.0126    -2.63   1.0139  (ROCM,TNH,MFW,AMSF,EMS), warning (ROCM_34%_16.32_21.90)
2007-04-20    20.59   1.2737     3.85   1.0400     3.36   1.0466     3.16   1.0460  (KFI,HBG,ROCM,HYSL,ACY), warning (MFW_44%_41.10_59.03)
2007-05-18    -3.62   1.2275     4.59   1.0877     2.59   1.0736     1.27   1.0593  (XSONF,SPAN,HAYN,ROCM,CNRD), stopped (HYSL)
2007-06-15    -2.66   1.1948     0.61   1.0944     0.67   1.0808     2.67   1.0875  (TNH,FCPO,EXM,VO,AL)
2007-07-13     8.38   1.2950     1.96   1.1159     1.28   1.0946     3.06   1.1208  (PLX,RCCC,NTL,BPHX,IMMR)
2007-08-10     2.06   1.3216    -4.80   1.0623    -6.37   1.0249    -5.99   1.0537  (GHM,IMMR,EXM,CALM,SRVY), warning (PLX_65%_23.29_38.40)
2007-09-07    19.91   1.5847    -0.95   1.0522    -0.01   1.0249     0.82   1.0623  (EXM,PWJ,EEM,PPA,EWH), warning (EXM_52%_31.48_47.88)
2007-10-05    15.42   1.8291     7.26   1.1286     7.16   1.0982     8.36   1.1511  (EXM,GIB,EWH,PWJ,NBG)
2007-11-02     5.38   1.9275    -3.35   1.0908    -3.08   1.0644     1.08   1.1636  (EIHI,MTK,EXM,MTL,EWH)
2007-11-30    -4.03   1.8498    -1.64   1.0729    -1.89   1.0443    -5.32   1.1017  (CEVA,CMO,GEOY,DAR,CF)
2007-12-28    13.51   2.0998    -0.04   1.0724    -0.18   1.0424     0.51   1.1073

CAGR                     110                 7                 4                11
GSD                       35                12                13                15
Cycles                    13                13                13                13
Ups/downs                 62                54                54                77
Turnover                  75                                                      
Avg.held                   5                 0                 0                 0
cagr/gsd                3.15              0.58              0.34              0.73
mar                     1.00              1.00              1.00              1.00
up                      0.06              0.01              0.01              0.01
dd                      0.02              0.02              0.02              0.03
upr                     3.19              0.57              0.40              0.47

Impressive indeed. Please note however that DrBob2's numbers are monthly numbers, trading around the start of each month. That means there are at least four other monthly trading schedules which could have happened if you started any week of the month. For 2007, the monthly holds (with averages at the end) for each weekly start is:

(no enddate given; using end date 2007-12-28)
($ screenerd --start=20061229 --src=/tmp/mf.scr --cash --freq=28 --varystart --hold=5)
----
                  Money_Flow
2006-12-29            1.0000  (ORH,AXR,IWZ,AFN,VTV)
2007-01-26    -1.20   0.9880  (ORH,AXR,AFN,VTV,CHU)
2007-02-23    -1.57   0.9725  (CCF,ROCM,AMSF,MALL,MFW)
2007-03-23     8.60   1.0562  (ROCM,TNH,MFW,AMSF,EMS), warning (ROCM_34%_16.32_21.90)
2007-04-20    20.59   1.2737  (KFI,HBG,ROCM,HYSL,ACY), warning (MFW_44%_41.10_59.03)
2007-05-18    -3.62   1.2275  (XSONF,SPAN,HAYN,ROCM,CNRD), stopped (HYSL)
2007-06-15    -2.66   1.1948  (TNH,FCPO,EXM,VO,AL)
2007-07-13     8.38   1.2950  (PLX,RCCC,NTL,BPHX,IMMR)
2007-08-10     2.06   1.3216  (GHM,IMMR,EXM,CALM,SRVY), warning (PLX_65%_23.29_38.40)
2007-09-07    19.91   1.5847  (EXM,PWJ,EEM,PPA,EWH), warning (EXM_52%_31.48_47.88)
2007-10-05    15.42   1.8291  (EXM,GIB,EWH,PWJ,NBG)
2007-11-02     5.38   1.9275  (EIHI,MTK,EXM,MTL,EWH)
2007-11-30    -4.03   1.8498  (CEVA,CMO,GEOY,DAR,CF)
2007-12-28    13.51   2.0998

CAGR                     110
GSD                       35
Cycles                    13
Ups/downs                 62
Turnover                  75
Avg.held                   5
cagr/gsd                3.15
mar                     1.00
up                      0.06
dd                      0.02
upr                     3.19
CAGR+3S                  418
CAGR+2S                  284
CAGR+1S                  184
CAGR-1S                   56
CAGR-2S                   15
CAGR-3S                  -14
----
                  Money_Flow
2007-01-05            1.0000  (ORH,AXR,AFN,VTV,CHU)
2007-02-02    -0.86   0.9914  (DIT,CCF,AMSF,MALL,MFW)
2007-03-02    -6.41   0.9278  (JLN,ROCM,TNH,MFW,AMSF)
2007-03-30    23.43   1.1452  (XSONF,KFI,HBG,ROCM,BDHHY), warning (ROCM_58%_14.38_22.78, TNH_30%_44.00_57.33, MFW_31%_36.33_47.61)
2007-04-27     2.35   1.1721  (KFI,HBG,ROCM,HYSL,ACY)
2007-05-25     1.01   1.1839  (HAYN,ROCM,CNRD,ESLT,MFW), stopped (HYSL) warning (ACY_38%_11.57_15.95)
2007-06-22     3.11   1.2207  (BPHX,TNH,FCPO,EXM,VO)
2007-07-20    13.56   1.3862  (PLX,RCCC,NTL,BPHX,IMMR), warning (EXM_55%_24.10_37.42)
2007-08-17    10.84   1.5365  (GHM,IMMR,EXM,CALM,SRVY), warning (PLX_90%_20.60_39.10)
2007-09-14    24.26   1.9093  (EXM,PWJ,EEM,PPA,EWH), warning (GHM_34%_31.82_42.67, CALM_37%_15.58_21.33, EXM_40%_32.63_45.75)
2007-10-12    19.23   2.2765  (EXM,GIB,EWH,PWJ,NBG), warning (EXM_54%_45.75_70.58)
2007-11-09    -7.58   2.1040  (EIHI,MTK,EXM,MTL,EWH)
2007-12-07     5.10   2.2113  (CEVA,CMO,GEOY,DAR,CF)

CAGR                     137
GSD                       44
Cycles                    12
Ups/downs                 75
Turnover                  77
Avg.held                   5
cagr/gsd                3.12
mar                     1.00
up                      0.07
dd                      0.03
upr                     2.33
CAGR+3S                  605
CAGR+2S                  390
CAGR+1S                  241
CAGR-1S                   65
CAGR-2S                   14
CAGR-3S                  -20
----
                  Money_Flow
2007-01-12            1.0000  (ORH,AXR,IWZ,AFN,VTV)
2007-02-09    -4.16   0.9584  (DIT,CCF,AMSF,MALL,MFW)
2007-03-09    -2.50   0.9344  (JLN,ROCM,TNH,MFW,AMSF)
2007-04-06    22.39   1.1436  (XSONF,KFI,HBG,ROCM,HYSL), warning (ROCM_37%_16.21_22.18, MFW_62%_37.50_60.65)
2007-05-04    -1.48   1.1268  (SPAN,HAYN,ROCM,CNRD,ESLT), stopped (HYSL)
2007-06-01    -0.56   1.1205  (TNH,ARTL,EXM,VO,GTI)
2007-06-29     7.86   1.2085  (PLX,ESGR,MKTAY,RCCC,NTL), warning (TNH_47%_86.60_127.07)
2007-07-27   -23.07   0.9298  (GTI,NTL,TNH,MTOX,WNR)
2007-08-24     5.24   0.9785  (GHM,IMMR,EXM,CALM,SRVY), warning (NTL_31%_18.99_24.87)
2007-09-21    16.99   1.1447  (EXM,PWJ,EEM,PPA,EWH)
2007-10-19    12.07   1.2829  (EXM,GIB,EWH,PWJ,NBG), warning (EXM_51%_50.67_76.63)
2007-11-16    -6.81   1.1956  (MTK,EXM,MTL,EWH,FXI)
2007-12-14     5.83   1.2653

CAGR                      29
GSD                       55
Cycles                    12
Ups/downs                 50
Turnover                  82
Avg.held                   5
cagr/gsd                0.53
mar                     1.00
up                      0.05
dd                      0.07
upr                     0.67
CAGR+3S                  380
CAGR+2S                  210
CAGR+1S                  100
CAGR-1S                  -17
CAGR-2S                  -46
CAGR-3S                  -65
----
                  Money_Flow
2007-01-19            1.0000  (ORH,AXR,AFN,VTV,CHU)
2007-02-16    -5.45   0.9455  (CCF,ROCM,AMSF,MALL,MFW)
2007-03-16     1.24   0.9572  (ROCM,TNH,MFW,AMSF,EMS)
2007-04-13    28.72   1.2321  (XSONF,KFI,HBG,ROCM,HYSL), warning (MFW_57%_37.55_59.11)
2007-05-11    -5.39   1.1657  (XSONF,SPAN,HAYN,ROCM,CNRD), stopped (HYSL)
2007-06-08    -5.02   1.1072  (BPHX,TNH,FCPO,ARTL,EXM)
2007-07-06    11.99   1.2399  (PLX,ESGR,RCCC,NTL,BPHX), warning (TNH_46%_93.58_137.08, BPHX_35%_10.14_13.67)
2007-08-03   -14.30   1.0626  (GHM,IMMR,EXM,CALM,SRVY)
2007-08-31     2.17   1.0856  (EXM,PWJ,EEM,PPA,EWH)
2007-09-28    13.22   1.2292  (EXM,GIB,EWH,PWJ,NBG)
2007-10-26    10.96   1.3639  (EXM,GIB,EWH,PWJ,NBG), warning (EXM_37%_55.80_76.70)
2007-11-23   -15.02   1.1591  (MTK,EXM,MTL,EWH,FXI)
2007-12-21     9.45   1.2686

CAGR                      29
GSD                       56
Cycles                    12
Ups/downs                 58
Turnover                  70
Avg.held                   5
cagr/gsd                0.53
mar                     1.00
up                      0.05
dd                      0.06
upr                     0.87
CAGR+3S                  390
CAGR+2S                  214
CAGR+1S                  102
CAGR-1S                  -17
CAGR-2S                  -47
CAGR-3S                  -66

Avg.  CAGR                76
Avg.   GSD                47
Avg.   UPR              1.77
Avg.Up/dow                61
Avg.Turnov                76
Avg.Held                   5
Stdev.CAGR             55.50
Stdev. GSD              9.90
Stdev. UPR              1.21
Std.Up/dow             10.40
Std.Turnov              4.81

Returns are calculated for stock price changes only.
Dividends and costs of doing trading are NOT included.

Using a unreleased backtester, I can easily test a staggered hold 5 approach, basically buying and selling one stock every week, holding each for at least 5 weeks, which give the following equity lines:


The statistics are:

==> main (job 9592 - marius:Money_Flow)
cagr     :  28.63%  turnover    : 95.61%  cycles      :    297    bestYret   :   63.45%  mcprobpos :  86.41%
gsd      :  37.34%  total trades:   342   avgheld     :   4.85    bestttmret :   68.91%  mcprobneg :  13.59%
drawd    :  45.09%  wins        :   226   avghelddays :  38.81    worstYret  :   -9.80%  mccount   : 1000000 
cagr/gsd :   0.77   losses      :   116   avgcashratio:  3.01%    worstttmret:  -12.08%  symcount  :     298
rrr4     :   0.66   % wins      : 66.08%  accum.ret.  :  6.7346   bestY      : 2007
upr      :   0.60   avg.win     : 12.68%  drawd.date  : 20040813  worstY     : 2006
ui       :  16.45   avg.loss    :-13.32%  startdate   : 20000602  bestttm    : 200006
upi4     :   1.50   profitfactor:  1.85   enddate     : 20071228  worstttm   : 200603

Similarily, for a hold 12, buying three stocks and holding each for at least four weeks give the somewhat prettier equity curves and statistics shown below:


==> main (job 11056 - marius:Money_Flow 12)
cagr     :  25.56%  turnover    : 79.65%  cycles      :    297    bestYret   :   55.02%  mcprobpos :  90.96%
gsd      :  22.52%  total trades:  1101   avgheld     :  11.51    bestttmret :   55.94%  mcprobneg :   9.04%
drawd    :  23.33%  wins        :   687   avghelddays :  28.75    worstYret  :   -6.90%  mccount   : 1000000 
cagr/gsd :   1.14   losses      :   414   avgcashratio:  4.23%    worstttmret:  -14.48%  symcount  :     708
rrr4     :   0.96   % wins      : 62.40%  accum.ret.  :  5.6076   bestY      : 2004
upr      :   0.72   avg.win     :  9.60%  drawd.date  : 20070817  worstY     : 2002
ui       :   8.05   avg.loss    : -9.97%  startdate   : 20000602  bestttm    : 200408
upi4     :   2.68   profitfactor:  1.60   enddate     : 20071228  worstttm   : 200110