#!/bin/sh # # ----------------------------------------------------------------------------- # # A license is hereby granted to reproduce this software source code and # to create executable versions from this source code for personal, # non-commercial use. The copyright notice included with the software # must be maintained in all copies produced. # # THIS PROGRAM IS PROVIDED "AS IS". THE AUTHOR PROVIDES NO WARRANTIES # WHATSOEVER, EXPRESSED OR IMPLIED, INCLUDING WARRANTIES OF # MERCHANTABILITY, TITLE, OR FITNESS FOR ANY PARTICULAR PURPOSE. THE # AUTHOR DOES NOT WARRANT THAT USE OF THIS PROGRAM DOES NOT INFRINGE THE # INTELLECTUAL PROPERTY RIGHTS OF ANY THIRD PARTY IN ANY COUNTRY. # # Copyright (c) 1994-2007, John Conover, All Rights Reserved. # # Comments and/or bug reports should be addressed to: # # john@email.johncon.com (John Conover) # # ----------------------------------------------------------------------------- # # Shell script to analyze the characteristics of the DJIA: # tsfraction djia | tsavg -p # 0.000236 tsfraction djia | tsrms -p # 0.010950 # # P (0.000236, 0.010950) # 0.51077625570776255708 # tsfraction djia | tsmath -s 0.000236 | tsrms -p # 0.010947 # ln (0.010947) = -4.51468983285971677053 tsmath -l djia | tsderivative | tsmath -s 0.000176 | tsrms -p # 0.010998 # wc djia # 29010 29010 202761 djia head -1 djia # 68.13 # tsgain -p djia # 1.000176 # ln (1.000176) = 0.00017598451381701882 ~ 0.000176 tsmath -l djia | tsderivative | tsavg -p # 0.000176 # tslsq -e -p djia # e^(3.450080 + 0.000172t) = 1.000172^(20062.070643 + t) = 2^(4.977413 + 0.000248t) # exp (3.450080) = 31.50291244093657542517 # R="0.5" # > "log" # LAST="NOTHING" # LOOP="1" # while [ "${LOOP}" -eq "1" ] do tsmath -l djia | tsderivative | tsmath -s 0.000176 | tsintegrate | tsrunmagnitude -r "${R}" > "djia.magnitude" cut -f1 "djia.magnitude" | tsmath -l > "temp.5" cut -f2 "djia.magnitude" | tsmath -l > "temp.6" LAST=`paste temp.5 temp.6 | egrep '^[0-5]\.' | tslsq -p` echo "${LAST}" R=`echo "${LAST}" | sed -e 's/^.* //' -e 's/t.*$//'` # if grep -e "${LAST}" "log" then LOOP="0" fi # mv "temp.5" "temp.5.last" mv "temp.6" "temp.6.last" mv "djia.magnitude" "djia.magnitude.last" echo "${LAST}" >> "log" done # mv "temp.5.last" "temp.5" mv "temp.6.last" "temp.6" mv "djia.magnitude.last" "djia.magnitude" # # -4.592316 + 0.537435t # -4.648576 + 0.541035t # -4.653584 + 0.541347t # -4.654019 + 0.541375t # -4.654057 + 0.541377t # -4.654058 + 0.541377t # -4.654058 + 0.541377t # # exp (-4.654058) = 0.00952287957071537193 # # P(0.000236, 0.010950) # 0.51077625570776255708 # # djia.sim: # # djia, p = 0.51077625570776255708, f = 0.010950, i = 31.50291244093657542517, h = 0.541377, l = 1 # tsinvestsim djia.sim 29010 | cut -f3 > sim # tsfraction sim | tsavg -p # 0.000253 tsfraction sim | tsrms -p # 0.010994 tsmath -l sim > sim.ln # tslsq -e -p sim # e^(3.548001 + 0.000146t) = 1.000146^(24382.768809 + t) = 2^(5.118683 + 0.000210t) # tsfraction djia | tsmath -s 0.000236 | tsnormal -t > djia.distribution tsfraction djia | tsmath -s 0.000236 | tsnormal -t -f > djia.frequency tsfraction sim | tsmath -s 0.000236 | tsnormal -t > sim.distribution tsfraction sim | tsmath -s 0.000236 | tsnormal -t -f > sim.frequency # egrep '^-' djia.frequency | wc # 50 100 950 egrep '^-' djia.frequency | tail -49 | tslsq -e -p | sed 's/ = .*$//' # e^(0.710298 + 147.146009t) # tsfraction djia | tsmath -s 0.000236 | sed 's/[0-9][0-9][0-9]$//' | sort -n | tscount -r | tsmath -t -d 29009 | tsintegrate -t > djia.cumulative tsfraction sim | tsmath -s 0.000236 | sed 's/[0-9][0-9][0-9]$//' | sort -n | tscount -r | tsmath -t -d 29009 | tsintegrate -t > sim.cumulative # tsmath -l djia | tsderivative | tsmath -s 0.000176 | tsintegrate | tsrunmagnitude > djia.magnitude tsmath -l sim | tsderivative | tsmath -s 0.000176 | tsintegrate | tsrunmagnitude > sim.magnitude # tsmath -l djia | tsderivative | tsmath -s 0.000176 | tsintegrate | tsrunlength | cut -f1,7 > djia.length tsmath -l sim | tsderivative | tsmath -s 0.000176 | tsintegrate | tsrunlength | cut -f1,7 > sim.length # cut -f1 djia.magnitude | tsmath -l > temp.1 cut -f2 djia.magnitude | tsmath -l > temp.2 paste temp.1 temp.2 > djia.magnitude.ln cut -f1 sim.magnitude | tsmath -l > temp.3 cut -f2 sim.magnitude | tsmath -l > temp.4 paste temp.3 temp.4 > sim.magnitude.ln # egrep '^0\.' djia.magnitude.ln | tslsq -p # -4.510133 + 0.518242t egrep '^0\.' sim.magnitude.ln | tslsq -p # -4.510679 + 0.569523t # tsmath -l djia | tsderivative | tssequence | sort -n | cut -f3 | tsmath -s 0.000176 | tsintegrate > "scrambled" # R="0.5" # > "log" # LAST="NOTHING" # LOOP="1" # while [ "${LOOP}" -eq "1" ] do tsrunmagnitude -r "${R}" scrambled > "scrambled.magnitude" cut -f1 "scrambled.magnitude" | tsmath -l > "temp.7" cut -f2 "scrambled.magnitude" | tsmath -l > "temp.8" LAST=`paste temp.7 temp.8 | egrep '^[0-5]\.' | tslsq -p` echo "${LAST}" R=`echo "${LAST}" | sed -e 's/^.* //' -e 's/t.*$//'` # if grep -e "${LAST}" "log" then LOOP="0" fi # mv "temp.7" "temp.7.last" mv "temp.8" "temp.8.last" mv "scrambled.magnitude" "scrambled.magnitude.last" echo "${LAST}" >> "log" done # mv "temp.7.last" "temp.7" mv "temp.8.last" "temp.8" mv "scrambled.magnitude.last" "scrambled.magnitude" # # -4.498716 + 0.496851t # -4.495234 + 0.496649t # -4.495005 + 0.496635t # -4.494994 + 0.496635t # -4.494994 + 0.496635t # -4.494994 + 0.496635t # R="0.5" # > "log" # LAST="NOTHING" # LOOP="1" # while [ "${LOOP}" -eq "1" ] do tsmath -l djia | tsderivative | tsmath -s 0.000176 | tsintegrate | tsrunmagnitude -r "${R}" > "djia.magnitude" cut -f1 "djia.magnitude" | tsmath -l > "temp.9" cut -f2 "djia.magnitude" | tsmath -l > "temp.10" LAST=`paste temp.9 temp.10 | egrep '^[0]\.' | tslsq -p` echo "${LAST}" R=`echo "${LAST}" | sed -e 's/^.* //' -e 's/t.*$//'` # if grep -e "${LAST}" "log" then LOOP="0" fi # mv "temp.9" "temp.9.last" mv "temp.10" "temp.10.last" mv "djia.magnitude" "djia.magnitude.last" echo "${LAST}" >> "log" done # mv "temp.9.last" "temp.9" mv "temp.10.last" "temp.10" mv "djia.magnitude.last" "djia.magnitude" # # -4.510133 + 0.518242t # -4.539663 + 0.521663t # -4.545016 + 0.522309t # -4.546053 + 0.522481t # -4.546241 + 0.522468t # -4.546241 + 0.522468t # -4.546241 + 0.522468t # sed 's/^/DJIA /' djia | tsnumber | tsinvest -r | tail -1 # # DJIA, p = 0.510810, f = 0.010949, h = 0.544745, i = 68.130000 # tsinvestsim djia.sim 29010 | tsinvest -r | tail -1 # # DJIA, p = 0.511489, f = 0.010994, h = 0.548321, i = 31.787033 # sed 's/^/DJIA /' djia | tsnumber | tsinvest -its -d5 | egrep DJIA | cut -f3 | tsgain -p # 1.000535