
HOW TO INSTALL WITH WINDOWS XP:
  1. RIGHT CLICK ON MW100.ZIP 
      THEN CLICK "EXTRACT ALL...", "NEXT", "NEXT", "FINISH".
  2. RIGHT CLICK ON FOLDERS.BAT, TO UNZIP FOLDERS
  3. RIGHT CLICK ON MW100.EXE, TO START PROGRAM. 
  4. FOLLOW THE BELOW "EOD HISTORICAL DATA UPDATE INSTRUCTIONS".
       ONLY "4 - CURRENCY, 14 ETFs" HISTORY DATA IS IN ZIP.

  - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

HOW TO INSTALL WITH DOS:
  1. MAKE A DIRECTORY NAMED 'MW100'
  2. UNZIP MW100.ZIP IN DIRECTORY NAMED 'MW100'.
  3. RUN FOLDERS.BAT, TO UNZIP FOLDERS
  4. RUN MW100.EXE, TO START PROGRAM. 
  5. FOLLOW THE BELOW "EOD HISTORICAL DATA UPDATE INSTRUCTIONS".
       ONLY "4 - CURRENCY, 14 ETFs" HISTORY DATA IS IN ZIP.

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 
 ***  THE RESULTS CAN BE READ IN "########.TXT" IN THE "OUT" DIRECTORY.         
      USE WINDOWS "NOTEPAD", USING FONT 'COURIER', 'COURIER NEW', 'TERMINAL' OR
      'LUCIDA CONSOLE' TO GET COLUMNS IN LINE.  SIZE: 8

 ***  'MS GOTHIC' SIZE: 9,  WILL GIVE MORE CHARACTERS PER LINE THAN LUCIDA OR COURIER.  *** 

 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

 THE ONLY HISTORY DATA INCLUDED IN MW100.ZIP IS  "DATA DIRECTORY:",   "4 - CURRENCY, 14 ETFs" 
 FOLLOW THE BELOW UPDATE INSTRUCTIONS:

EOD HISTORICAL DATA UPDATE INSTRUCTIONS:

 MY SOURCE OF EOD HISTORICAL QUOTE DATA IS FROM WWW.YAHOO.COM

 DOWNLOAD A "FREE, IF FOR PERSONAL USE" PROGRAM:
   FROM WWW.AMICHEL.COM  OR  WWW.YLOADER.COM
   "YAHOO & GOOGLE HISTORICAL QUOTES DOWNLOADER v2.9.1.0"
    THE MOST RECENT VERSIONS SUPPORT THE -t OPTION.
 
 SET "TIME RANGE" TO:
    [X] UPDATE
    PERIOD: DAILY
    FROM:  USE A DATE FOR THE LAST 1 YEARS TO BE DOWNLOADED.
           (1 YEAR (252) PLUS DAYS_PER_BAR, 1 TO 21 DAYS = 253 TO 273 DAYS) 

 SET "PRICE OPTIONS" TO:
    [X] DIVIDEND AND SPLIT ADJUSTED

 SET "SETTINGS" / "FORMATTING" TO:
    SORT BARS IN ASCENDING ORDER
    FIELD SEPARATOR = ,
    VOLUME MULTIPLIER = 1
    DATE SEPARATOR = /
    U.S. DATE FORMAT, M/D/Y

 SET "SETTINGS" / "OUTPUT" TO:
    EXTENSION = .CSV

 TYPICAL DWNLOAD.BAT LINE:
    ydownloaderpr.exe -n "Y"  -u 1  -t "2/1/2008"  -s C:\MW100\MWSYM1.TXT   -d C:\MW100\MWSYM1  -x

 MOVE DWNLOAD.BAT TO THE "YAHOO & GOOGLE HISTORICAL QUOTES DOWNLOADER" DIRECTORY,
    IN THE "PROGRAM FILES" DIRECTORY.
    CREATE A "SHORTCUT" OF THE .BAT AND MOVE THE "SHORTCUT" TO THE "DESKTOP" OR "MW100" DIRECTORY.

 RUN THE "SHORTCUT" TO UPDATE THE HISTORICAL DATA.

=========================================================================================

 COLUMN PERCENTS ARE MONTHLYIZED, ROCM = ROC * (21 / DAYS_PER_PERIOD)
 8,  5, 0.00, 0, 4, 4   THE 5 IN COLUMN 2 IS DAYS_PER_PERIOD 
 7, 21, 1.50, 0, 4, 4  THE 21 IN COLUMN 2 IS DAYS_PER_PERIOD 

 COLUMN B=BUY, S=SELL, +=UP TREND, -=DWN TREND
 B & S, BUY & SELL MEANS THE MOVING AVERAGE OF THE "CUMMULATIVE ROC LINE" IS ABOVE OR BELOW
   THE "CUMMULATIVE ROC LINE". [ S&P DTI USES "CUMMULATIVE ROC LINE" INSTEAD OF PRICE ]
 + & - TREND IS ROC(2) DAILY.
 IF TOTAL DAILY PERIOD (PERIOD * DAYS_PER_PERIOD) OF MOVING AVERAGE IS IN THE 20 TO
   250 RANGE THEN BUY & SELL CAN BE USED AS A TRADE SIGNAL. EWMA(###) OR EMA(###), WITH M=0.0 TO 1.5.

 DESC: 27 CHARACTERS IN COLUMN, MAX.
 CATR: 12 CHARACTERS IN COLUMN, MAX.

 ***  NO EMPTY EXTRA LINES ALLOWED AT END OF "MWSYM##.DAT", "SYMDIR.DAT" & "INDSETMN.DAT" FILES  ***
 ***  NO EMPTY EXTRA LINES LIKE: CR LF, CR LF  ***
------------------------------------------------------------------------------------------------------

 MWSET#.DAT: 
  1ST LINE:  1 = DAILY-IZED;  FOR DTI ROC_W
             5 = WEEKLY-IZED
            21 = MONTHLY-IZED;  <- S&P DTI(7,21,1.5)  
  2ND LINE:  0 = "BAR_AVERAGE_ROC";  FOR DTI ROC_W;  <- S&P DTI(7,21,1.5)
                 THE HISTORY DATA OF BARS OF ROC(DAYS_PER_BAR) IS MADE.
                 THE WEIGHT OF THE MOVING AVERAGE IS APPLIED TO THE BARS OF ROC,
                   WEIGHTED FOR 1 PERIOD IF EWMA (EXPONET WEIGHTED MOVING AVERAGE)
                   OR  2.5 TO 3 PERIODS IF EMA.  
             1 = "ROC"  (ROC = BAR_AVERAGE_ROC * PERIOD)
  3RD LINE:  1 = CUMMULATIVE ROC LINE IS USED FOR MOVING AVERAGE;  FOR DTI MA_W;  <- S&P DTI(7,21,1.5)
             0 = PRICE LINE IS USED FOR MOVING AVERAGE.
  4TH LINE:  1 = DONT PRINT TO SCREEN 
             0 = PRINT TO SCREEN
  5TH LINE:  1 = PRINT TO SCREEN,  HI-LO PRICE OUT OF LIMITS
             0 = DONT PRINT TO SCREEN
             HI-LO RATIO FOR LIMITS,  #.#:1 
  6TH LINE:  1 = SORT LINE 1; ROC, WEIGHTED    [ LINE #'S IN SYMBOL GROUPS IN EACH COLUMN ]   <- S&P DTI )
             2 = SORT LINE 2; M.A. %, WEIGHTED                                                <- S&P DTI,  FOR BUY/SELL SIGNAL )
             3 = SORT LINE 2; M.A. CROSSOVER DAYS
             4 = SORT LINE 3; MACD %  (MA_1 - MA_2)  [ MA_2 PERIOD IS 0.2 TO 0.5 * MA_1 PERIOD ];  MA_1 PERIOD = ROC & MA PERIODS;  ONLY DAILY PRICE USED 
             5 = SORT LINE 3; MACD CROSSOVER DAYS
             6 = SORT LINE 4; REGRESSION
             7 = SORT LINE 6; EFF RATIO
             8 = SORT LINE 7; DMI
             9 = SORT LINE 8: RSI
            10 = SORT LINE 9: ROC  
            11 = SORT LINE 10: STOC 
            12 = SORT TRAILING STOP %  
            13 = SORT TRAILING STOP DAYS
            14 = SORT RSI(14,7)
  7TH LINE:  MACD% MULT, MA MULT, MA TYPE:
               MULT:     MACD MULT FOR SHORT M.A. 0.20 TO 0.50;  BUT IF = 0.0 THEN FIXED PERIODS IN LINE 17 ARE USED
               MA MULT:  IF MA TYPE=0;  0.0=SMA;  0.45&0.50=WILDER;  0.78&1.00=EMA;  1.50=S&P DTI EMA
                         IF MA TYPE=1;  0.50-0.57=WILDER;  1.0=EMA;  1.55&1.50=S&P_DTI
               MA TYPE:  0=EWMA,  1=EMA K*MULT   
  8TH LINE:  TRAILING STOP: TYPE, PERIOD, MULT, SMOOTHING
                TYPE:    "HV" = HISTORIC VOLITILITY
                         "ATR"= AVERAGE TRUE RANGE 
                         "SD" = STANDARD DEVIATION
                         "FIX"= FIXED %
                VOLITILITY PERIOD:  5-25 IF ATR-HV-SD;  OR PUT IN 4%-5%, IF TYPE = "FIX"  
                MULTIPLIER:  2-5 IF ATR-HV-SD;          OR PUT IN 1, IF TYPE = "FIX"  
                VOLITILITY SMOOTHING SMA PERIOD:  1-10;  1=OFF;  FOR ATR-HV-SD;  DEFAULT: 5
                DELAY PERIOD:  0-5;  0=OFF;  NEED 0-5 CONSECUTIVE DAYS, "TRAIL %" >= "TRAIL STOP %", BEFORE SWITCHING TO LONG/SHORT ON NEXT DAY [DELAY+1] IF STILL >= "TRAIL STOP %"
                            IF PERIOD = 3 THEN SKIP SWITCH IF BAR = 0, 1 OR 2 AND CHANGE IF BAR 3 IS BELOW STOP
                            IF PERIOD = 0 THEN SKIP SWITCH IF BAR = --------- AND CHANGE IF BAR 0 IS BELOW STOP
  9TH LINE:  TRAILING STOP SMOOTHING SMA PERIOD FOR BARCLOSE();  PERIOD =1 TO 20;  1=OFF;  DEFAULT: 3 
 10TH LINE:  PRICE CHANNEL,  SHORT, MEDIUM, LONG CHANNEL PERIODS & 1=HI/LO, 0=CLOSE
 11TH LINE:  MAX DRAW DOWN OR UP PERIOD; 1-12 MONTHS 
 12TH LINE:  DMI MA TYPE  0=WILDER 1=EMA 2=SMA 3=EWMA;   EWMA MULT 0=SMA 0.5=WILDER 1.0=EMA
 13TH LINE:  RSI MA TYPE  0=WILDER 1=EMA 2=SMA 3=EWMA;   EWMA MULT 0=SMA 0.5=WILDER 1.0=EMA
 14TH LINE:  MA PERIODS,  10,20,35,50,100,200;  AND  EWMA MULTIPLIER:  SMA=0.0  WILDER=0.5  EMA=1.0;  AND  MATYPE: 0=EWMA,  1=EMA_K*MULT 
 15TH LINE:  BULL/BEAR SMALLER MA PERIODS,  5, 10,5 15,5, 20, 20, 50   SAME MULTIPLIER AND MATYPE  
 16TH LINE:  RSI WITH SMA SMOOTHING (14,7),  14=RSI PERIOD,  7=SMA PERIOD
 17TH LINE:  VOLUME SMA PERIOD
 18TH LINE:  MACD(26 52);   MULT: 0.0-0.5-1.0;   TYPE: 0=EWMA 1=EMA_K*MUL  
 19TH LINE:  MFI SWITCH,  1=NORMAL;  2=TYPICAL PRICE ONLY  NO VOLUME USED;  3=VOLUME ONLY  NO TYPICAL PRICE USED;  4=MFI2 USES CLOSE PRICE ROC(1)
 20TH LINE:  DMI SWITCH,  0=NORMAL;  1=LIMITED HIGH & LOW SHADOW USING [ATR(20)*MULT] LIMIT: ATR(20) MULTIPLIER: 0-5  1-2 IS OK;   2=CLOSE ONLY
 21TH LINE:  NUMBER OF 'TREND INDICATORS' IN MWSET##.DAT FILE, (IT'S THE ## IN A "FOR I = 1 TO ##: NEXT I" LOOP), WHICH IS ALSO THE NUMBER OF PERIOD COLUMNS TO BE PRINTED IN ########.TXT FILE.
 22TH LINE:  MACD% FIXED SHORT M.A. PERIODS  
 23TH LINE:  EFF RATIO, RSI, ROC, DMI & MFI:  SMA SIGNAL LINE PERIOD >= 1, IN DAYS  (SLINE PERIOD)
 24TH LINE:  EFF RATIO, RSI, ROC & DMI:  0=OUTPUT FROM INDICATOR;   1=OUTPUT FROM SIGNAL LINE (SMOOTHING)
 25TH LINE:  STOC M.A. K & D PERIOD PAIRS;   NUMBER OF PAIRS MUST MATCH NUMBER IN ABOVE 15TH LINE; (FOR NEXT LOOP USED)
 26TH PLUS LINES: 'TREND INDICATOR' VALUES:
             PERIOD; DAYS_PER_PERIOD; K_MULTIPLIER; MA TYPE 1=EMA_K*MULT & 0=EWMA DTI; SLINE PERIOD; PRICE DATA SMOOTH PERIOD
             DAYS_PER_PERIOD 21 10 5 1;  PUT ZERO IN PERIOD OF LAST UNUSED DTI 
             TYPE 0: EWMA MULTIPLIER  0.0=SMA; 0.45&0.50=WILDER; 0.78&1.00=EMA; 1.50=S&P_DTI; [EMA 0.78 OK FOR Ist BAR AND (BAR=1 TO BAR=PERIOD/4) WEIGHT]
             TYPE 1: EMA K*MULTIPLIER -------  0.50-0.57=WILDER; 1.00=EMA; 1.55&1.50=S&P_DTI
             TYPE 2: SWMA; STEP WMA;  SAME AS IBD_RS 40% 20% 20% 20%
-------------------------------------------------------------------------------------------

 MWSYM##.DAT:
  IF CATEGORY ENDS WITH A "-" AS IN "BOND-", "COMMODITY-", "REIT-", "CURRENCY-"
    THEN THE ETF WON'T BE INCLUDED IN THE "BUY & SELL TOTALS:"
    NO SPACE'S ALLOWED AFTER "-".
----------------------------------------------------------------------------------------------

 TO ADD MORE ETF'S:
   ADD THE SYMBOL TO "MWSYM##.DAT" AND "MWSYM##.TXT" FILES

 DPB = DAYS PER BAR
 P   = PERIOD
 S   = SMOOTHING PERIOD OF HISTORICAL PRICE DATA

 ########.TXT FILES IN THE "OUT" DIRECTORY:
 ##______ 1-2 = "DATA DIRECTORY" MENU NUMBER
 __##____ 3-4 = "TECH ANALYZE" MENU NUMBER
 ____##__ 5-6 = "RANK SORT COLUMN" MENU NUMBER
 ______## 7-8 = "RANK SORT TYPE" MENU NUMBER

   *** READ THE ########.TXT WITH WINDOWS "NOTEPAD" USING FONT 'COURIER', 'COURIER NEW',
         'TERMINAL' OR 'LUCIDA CONSOLE', FONT SIZE 8. (THE FONTS GET THE COLUMNS IN A VERTICAL LINE)
         'MS GOTHIC' SIZE: 9,  WILL GIVE MORE CHARACTERS PER LINE THAN COURIER OR LUCIDA. 

   * ON LEFT SIDE OF SYMBOL, "*SPY", MEANS HISTORICAL DATA IS OLD 
   MA_W% IS THE MOVING AVERAGE OF THE "CUMMULATIVE ROC LINE"  MINUS  THE "CUMMULATIVE ROC LINE".

===================================================================================

  TREND_INDICATOR:

  WGT_ROC IS A MONTHLYIZED PERCENT

  FOR S&P Diversified Trends Indicator (S&P DTI) USE  "7, 21, 1.50, 4, 1" 
    PERIODS = 7,  DAYS PER PERIOD = 21,  EWMA KMULT=1.50, TYPE = 0 = EWMA, SLINE HISTORY = 4 PERIODS

  EWMA, EXPONET WEIGHTED MOVING AVERAGE:
    KMULT:  0.00 = SMA     ( MULT = 1.00 IN SUB EWMA() )
            0.45 = WILDER  ( 1st BAR WGT & 1st 25% BARS WGT ARE OK )   
            0.50 = WILDER  ( BAR WGT SLOPE IS OK ***)
            0.78 = EMA     ( 1st BAR WGT & 1st 25% BARS WGT ARE OK )
            1.00 = EMA     ( BAR WGT SLOPE IS OK ***) 
            1.50 = S&P_DTI ( MULT = 1.60 INSIDE SUB EWMA(),  PERIOD=7 )
           15.25 = "RiskMetrics"TM, (PERIOD=509) [financial risk management company], SAME AS A LAMBDA OF 0.94, OR 94%

   REM  THIS SUB EWMA WAS DEVELOPED BY ME AND IS USED IN THE MW100 PROGRAM.
 SUB EWMA(PERIOD%, KMULT, EWMA2)
   K = (2 / (PERIOD% + 1)) * KMULT
   IF K = 1 THEN K = K * 0.99  ; FIX FOR "DIVIDE BY ZERO" ERROR IN MULT=1/(1-K)
   MULT = 1 / (1 - K)

   WGTOT = 0
   MUL = 1
   FOR I% = 1 TO PERIOD%
     WGTOT = WGTOT + MUL
     MUL = MUL * MULT
   NEXT I%

   EWMA2 = 0
   MUL = 1
   FOR I% = 1 TO PERIOD%
     EWMA2 = EWMA2 + (MUL / WGTOT) * BARCLOSE(I%)
     MUL = MUL * MULT
   NEXT I%
 END SUB

----------------------------------------------------------------------------------
    
  EMA K_MULTIPLIED:
    KMULT:  WILDER = 0.50-0.57  [ PERIODS FROM 200-7, LIKE WILDER BUT NOT EXACT ]
            WILDER = 0.50         GIVES "BAR VS WGT" SLOPE MATCH WITH WILDER ***
            EMA    = 1.00         
            SP_DTI = 1.55       [ LIKE SP_DTI, EXCEPT "TOTAL SAMPLE PERIOD" IS GREATER THAN "PERIOD" ]
            SP_DTI = 1.50         GIVES "BAR VS WGT" SLOPE MATCH WITH SP_DTI ***

    K = (2 / (PERIOD% + 1)) * KMULT
    FOR I% =  1 TO BAR%
      EMA_K = EMAPREV + K * (BARCLOSE(I%) - EMAPREV)
      EMAPREV = EMA_K
    NEXT I%

===================================================================================

 PRICE CHANNEL:
   10 AND 20 DAY PERIOD PRICE CHANNELS

   IF HIGH PRICE GOES ABOVE PRICE CHANNEL THEN SIGNAL IS LONG
   IF LOW  PRICE GOES BELOW PRICE CHANNEL THEN SIGNAL IS SHORT
   MOST RECENT SIGNAL WINS

   IF 20 AND 10 DAY SIGNALS ARE DIFFERENT THEN SIGNAL IS ?LONG OR ?SHRT
   IF 20 AND 10 DAY SIGANLS ARE SAME      THEN SIGNAL IS THE SAME SIGNALS, LONG OR SHORT

   IN THE "PC(10,20)" "PRICE CHANNEL" COLUMN:
   THE LAST  L OR S SHOWS THAT PRICE_CHANNEL(20) IS LONG OR SHORT
   THE FIRST L OR S SHOWS THAT PRICE_CHANNEL(5)  IS LONG OR SHORT
   LONG  (L,L)
   SHRT  (S,S)
   ?SHRT (L,S)
   ?LONG (S,L)

----------------------------------------------------------------------------------

  THE L OR S IN "STOC" LINE ARE THE PRICE CHANNEL LONG OR SHORT FOR EACH COLUMN PERIOD. 
    86.4+L     24.0+S
         ^          ^
-----------------------------------------------------------------------------------

 THE +- SIGNS AFTER INDICATOR ##.#  MEAN UP OR DOWN TRENDING, FROM PREV DAY:

    "TRAILING-STOP" COLUMN:  SMA(###)= #.#%-  LINES           ( USED ROC(2) )
                                           ^ 
          "PERIOD COLUMNS":  MOVING AVERAGE LINES -##.#+##    ( USED ROC(2) )
                                                       ^
          "PERIOD COLUMNS":  MACD LINES -##.#+##              ( USED ROC(1) )
                                             ^ 
          "PERIOD COLUMNS":  ROC LINES  -##.#+ROC             ( USED SIGNAL LINE HISTORY +- ) 
                                             ^
          "PERIOD COLUMNS":  RSI LINES  -##.#+RSI             ( USED SIGNAL LINE HISTORY +- ) 
                                             ^ 
          "PERIOD COLUMNS":  EFF LINES  -##.#+EFF             ( USED SIGNAL LINE HISTORY +- ) 
                                             ^
          "PERIOD COLUMNS":  STO LINES  -##.#+STO             ( USED SIGNAL LINE HISTORY +- ) 
                                             ^ 

 THE ## NUMBERS AFTER INDICATOR ##.#  MEAN DAYS SINCE + OR - CROSS OVER OF ZERO % OF MOVING AVERAGE OR MACD LINE:                                             

          "PERIOD COLUMNS":  MOVING AVERAGE LINES -##.#+##
                                                        ^^
          "PERIOD COLUMNS":  MACD LINES -##.#+##
                                              ^^ 
           99 DAYS IS MAX LIMIT PRINTED

----------------------------------------------------------------------------------

 TRAILING STOP:
   LONG(1.1/2.0%):  1.1 IS % PRICE CLOSE IS DOWN FROM HIGHEST HIGH, SHORT TO LONG SWITCH
                    2.0% IS STOP % THAT SWITCHES TO SHRT.  STOP % = HV(14) * 3,  HV = HISTORICAL VOLITILITY, DAILY
   SHRT(1.1/2.0%):  1.1 IS % PRICE CLOSE IS UP   FROM LOWEST LOW, LONG TO SHORT SWITCH 
                    2.0% IS STOP % THAT SWITCHES TO LONG.  STOP % = HV(14) * 3

    "TRAILING-STOP" COLUMN:  LONG(2.0/28.5%)    
                             18.5% IN 57 DAY    MEAN ##.#% GAIN OR LOSS  IN  ## DAYS SINCE LONG/SHRT SWITCH

  ?LONG OR ?SHRT  MEAN  TOTAL % IN LINE BELOW IS NEGATIVE, LOSING MONEY, WHIP-LASH.  
           ?SHRT(1.7/2.1%)
           -2.6% IN 16 BAR    
-----------------------------------------------------------------------------------

   "EWMA":                            ( WMA WITH VARIABLE EXPOTENTAL WEIGHTING)
      0.00 = "SMA"
      0.45 = "WILDER"   &  0.50 = "WILDER"
      0.78 = "EMA"      &  1.00 = "EMA"
      1.50 = "S&P_DTI"
   "EMA":                             ( EMA WITH VARIABLE K MULTIPLIER )
      >= 0.50 AND <= 0.57 = "WILDER"
      1.00 = "EMA"
      1.55 = "S&P_DTI"  & 1.50 = "S&P_DTI"
   "SWMA":                            ( STEP WEIGHTING )
      0.00 = "IBD"
--------------------------------------------------------------------------------------

 HH=, LL=, DU=, DD= USE CLOSE PRICE

--------------------------------------------------------------------------------------

 "SD RF" LINE:
    "SD" IS 'STANDARD DEVIATION' FROM THE 'REGRESSION LINE' TO THE 'LAST CLOSE PRICE'.
       0.4 = A STANDARD DEVIATION OF 0.4
    "RF" IS RAFF CHANNEL WITH INDEPENDENT UPPER AND LOWER CHANNEL LINES.
       0.4 = 4/10 THE DISTANCE TO THE UPPER CHANNEL LINE  
      -0.4 = 4/10 THE DISTANCE TO THE LOWER CHANNEL LINE 

---------------------------------------------------------------------------------------

 "MA_W" LINE:
    D=-3.5%, 60
    D=-3.5%,  IS DRAW DOWN OR UP SINCE TRAILING STOP HH OR LL. ( % WITH PRICE HISTORY NOT SMOOTHED BY SMA(3) )  
    60,  IS BARS SINCE TRAILING STOP HH OR LL

---------------------------------------------------------------------------------------

 MFI2  "MONEY FLOW INDEX #2":
   PMFTOT = 0
   NMFTOT = 0
   FOR I% = (BAR% - (PERIOD% - 1)) TO BAR%
     IF BARCLOSE(I% - 1) = 0 THEN
       ROC = 0
     ELSE
        ROC = (BARCLOSE(I%) - BARCLOSE(I% - 1)) / BARCLOSE(I% - 1)
     END IF
     MF = ABS(ROC) * BARVOL(I%)
     IF ROC >= 0 THEN PMFTOT = PMFTOT + MF
     IF ROC < 0 THEN NMFTOT = NMFTOT + MF
     IF NMFTOT = 0 THEN NMFTOT = .000001
     MFRAT = PMFTOT / NMFTOT
     MFI1 = 100 - (100 / (1 + MFRAT))
   NEXT I%
 END SUB

----------------------------------------------------------------------------------
