Skip to content

Instantly share code, notes, and snippets.

@codecademydev
Created May 13, 2020 20:56
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 codecademydev/a86b42d8e7de4a09af30105eb78a8ab5 to your computer and use it in GitHub Desktop.
Save codecademydev/a86b42d8e7de4a09af30105eb78a8ab5 to your computer and use it in GitHub Desktop.
Codecademy export
from utils import *
def display_as_percentage(val):
return '{:.1f}%'.format(val * 100)
amazon_prices = [1699.8, 1777.44, 2012.71, 2003.0, 1598.01, 1690.17, 1501.97, 1718.73, 1639.83, 1780.75, 1926.52, 1775.07, 1893.63]
ebay_prices = [35.98, 33.2, 34.35, 32.77, 28.81, 29.62, 27.86, 33.39, 37.01, 37.0, 38.6, 35.93, 39.5]
# Write code here
def get_returns(prices):
returns=[]
for i in range(len(prices)-1):
start_price=prices[i]
end_price=prices[i+1]
Log_returns=calculate_log_return(start_price,end_price)
returns.append(Log_returns)
return returns
amazon_returns= get_returns(amazon_prices)
ebay_returns= get_returns(ebay_prices)
x = [display_as_percentage(returns) for returns in amazon_returns]
y = [display_as_percentage(returns) for returns in ebay_returns]
print("The monthly returns of amazon stock is " + ', ' .join(x))
print("The monthly returns of ebay stock is " + ', ' .join(y))
amazon_average = sum(amazon_returns) / len(amazon_returns)
ebay_average = sum(ebay_returns) / len(ebay_returns)
print("The monthly average of amazon stock is " + display_as_percentage(amazon_average))
print("The monthly average of ebay stock is " + display_as_percentage(ebay_average))
print("The annual return of amazon stock is " + display_as_percentage(sum(amazon_returns)))
print("The annual return of ebay stock is " + display_as_percentage(sum(ebay_returns)))
amazon_variance = calculate_variance (amazon_returns)
ebay_variance = calculate_variance(ebay_returns)
print("Amazon's variance is " + display_as_percentage(amazon_variance))
print("Ebay's variance is " + display_as_percentage(ebay_variance))
amazon_stddev = calculate_stddev(amazon_returns)
ebay_stddev = calculate_stddev(ebay_returns)
print("Amazon's standard deviation is " + display_as_percentage(amazon_stddev))
print("Ebay's standard deviation is " + display_as_percentage(ebay_stddev))
correlation = calculate_correlation(amazon_returns, ebay_returns)
print("The correlation between Amazon and Ebay is " + str(correlation))
from math import log, sqrt
# Calculate Log Return
def calculate_log_return(start_price, end_price):
return log(end_price / start_price)
# Calculate Variance
def calculate_variance(dataset):
mean = sum(dataset) / len(dataset)
numerator = 0
for data in dataset:
numerator += (data - mean) ** 2
return numerator / len(dataset)
# Calculate Standard Deviation
def calculate_stddev(dataset):
variance = calculate_variance(dataset)
return sqrt(variance)
# Calculate Correlation Coefficient
def calculate_correlation(set_x, set_y):
sum_x = sum(set_x)
sum_y = sum(set_y)
sum_x2 = sum([x ** 2 for x in set_x])
sum_y2 = sum([y ** 2 for y in set_y])
sum_xy = sum([x * y for x, y in zip(set_x, set_y)])
n = len(set_x)
numerator = n * sum_xy - sum_x * sum_y
denominator = sqrt((n * sum_x2 - sum_x ** 2) * (n * sum_y2 - sum_y ** 2))
return numerator / denominator
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment