Skip to content

Instantly share code, notes, and snippets.

@atyrachma
Last active January 18, 2019 04:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save atyrachma/e56b828a2ce3c3b2f9249f698292aa41 to your computer and use it in GitHub Desktop.
Save atyrachma/e56b828a2ce3c3b2f9249f698292aa41 to your computer and use it in GitHub Desktop.
JDS-Stockprices-aty
import pandas as pd
import numpy as np
class StockPrices:
# param prices dict of string to list. A dictionary containing the tickers of the stocks, and each tickers daily prices.
# returns list of strings. A list containing the tickers of the two most correlated stocks.
@staticmethod
def most_corr(prices):
prices = pd.DataFrame.from_dict(prices)
korel = prices.pct_change().corr()
korel = korel.replace(1,0)
makskor = np.max(korel)
name = []
for k in makskor.index.values:
if(makskor[k] == makskor.max()):
name.append(k)
return name
#For example, with the parameters below the function should return ['FB', 'MSFT'].
prices = {
'GOOG' : [
742.66, 738.40, 738.22, 741.16,
739.98, 747.28, 746.22, 741.80,
745.33, 741.29, 742.83, 750.50
],
'FB' : [
108.40, 107.92, 109.64, 112.22,
109.57, 113.82, 114.03, 112.24,
114.68, 112.92, 113.28, 115.40
],
'MSFT' : [
55.40, 54.63, 54.98, 55.88,
54.12, 59.16, 58.14, 55.97,
61.20, 57.14, 56.62, 59.25
],
'AAPL' : [
106.00, 104.66, 104.87, 105.69,
104.22, 110.16, 109.84, 108.86,
110.14, 107.66, 108.08, 109.90
]
}
print(StockPrices.most_corr(prices))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment