Created
December 15, 2017 16:36
-
-
Save omnichronous/7167c2bbb860326aa372822e728935d8 to your computer and use it in GitHub Desktop.
Equal-weighted Dogs of the Dow (and variants) portfolio
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE html> | |
<html> | |
<head> | |
<title></title> | |
<script> | |
function balance(assets, portfolioWorth) { | |
try { | |
var portfolio = {}; | |
var numberOfAssets = Object.keys(assets).length; | |
var moneyPerAsset = portfolioWorth / numberOfAssets; | |
for (var asset in assets) { | |
var price = assets[asset]; | |
var stock = moneyPerAsset / price; | |
console.log(moneyPerAsset, 'will buy', stock, 'stock from', asset); | |
portfolio[asset] = stock; | |
} | |
return portfolio; | |
} catch (e) { | |
console.error(e); | |
} | |
} | |
function foolish4(assets, portfolioWorth) { | |
try { | |
var portfolio = {}; | |
var numberOfAssets = Object.keys(assets).length; | |
var cheapestAssetPrice = Object.keys(assets).reduce(function(m, k){ return assets[k] < m ? assets[k] : m }, +Infinity); | |
var cheapestAssetKey = val2key(cheapestAssetPrice, assets); | |
console.log('40% of portfolio -', portfolioWorth * 0.4, '- will buy', (portfolioWorth * 0.4) / cheapestAssetPrice, 'stock from', cheapestAssetKey); | |
for (var asset in assets) { | |
if (asset !== cheapestAssetKey) { | |
console.log('20% of portfolio -', portfolioWorth * 0.2, '- will buy', (portfolioWorth * 0.2) / assets[asset], 'stock from', asset); | |
} | |
} | |
} catch (e) { | |
console.error(e); | |
} | |
} | |
function val2key(val, array) { | |
for (var key in array) { | |
if (array[key] == val) { | |
return key; | |
} | |
} | |
return false; | |
} | |
</script> | |
</head> | |
<body> | |
<script> | |
console.log('Foolish 4 2018'); | |
foolish4({ | |
vz: 52.34, | |
pfe: 36.46, | |
ko: 46.03, | |
csco: 37.90 | |
}, 500); | |
console.log('Dow 4 2018'); | |
balance({ | |
vz: 52.34, | |
pfe: 36.46, | |
ko: 46.03, | |
csco: 37.90 | |
}, 500); | |
console.log('Small Dogs of the Dow 2018'); | |
balance({ | |
ge: 17.64, | |
vz: 52.34, | |
pfe: 36.46, | |
ko: 46.03, | |
csco: 37.90 | |
}, 500); | |
console.log('Dogs of the Dow 2018'); | |
balance({ | |
ge: 17.64, | |
vz: 52.34, | |
ibm: 154.00, | |
xom: 82.90, | |
cvx: 119.53, | |
pfe: 36.46, | |
mrk: 56.01, | |
ko: 46.03, | |
csco: 37.90, | |
pg: 91.00 | |
}, 500); | |
console.log('U.S. Fundamental Growth'); | |
balance({ | |
goog: 1018.38, | |
aapl: 169.01, | |
avgo: 263.89, | |
cvs: 71.38, | |
hd: 180.8, | |
mmc: 84.4, | |
ma: 147.42, | |
msft: 82.78, | |
rtn: 185.2, | |
tmo: 183.87 | |
}, 500); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment