class stock: def __init__(self,name,beta,eps): self.name = name self.beta = beta self.eps = eps def price_change(self,price): self.price = price self.p_e = self.price/self.eps self.pe = self.price/self.eps def shares_owned(self,num): self.sh_owned = num def make_sale(self,num): self.sh_owned+=num def print_stat(self): print(self.name+"'s last recorded price is "+str(self.price)+", you own "+str(self.sh_owned)+" shares, and the price to earnings ratio is: " + str(self.p_e) ) class portfolio: def __init__(self,stock1,stock6,stock2,stock3,stock4,stock5): self.stock1 = stock1 self.stock2 = stock2 self.stock3 = stock3 self.stock4 = stock4 self.stock5 = stock5 self.stock6 = stock6 collection = [self.stock1,self.stock2,self.stock3,self.stock4,self.stock5,self.stock6] self.short_val = 0 self.short_beta = 0 s_count=0 l_count=0 self.long_beta = 0 self.long_val = 0 for s in collection: if s.sh_owned<0: self.short_val+=s.sh_owned*s.price; self.short_beta+=s.sh_owned*s.beta; s_count-=s.sh_owned if s.sh_owned>0: self.long_val+=s.sh_owned*s.price; self.long_beta += s.sh_owned*s.beta; l_count+=s.sh_owned self.short_beta/=s_count self.long_beta/=l_count self.portfolio_val = self.stock6.price*self.stock6.sh_owned+self.stock1.price*self.stock1.sh_owned + self.stock2.price*self.stock2.sh_owned + self.stock3.price*self.stock3.sh_owned + self.stock4.price*self.stock4.sh_owned + self.stock5.price*self.stock5.sh_owned self.portfolio_beta = (self.stock1.beta*self.stock1.price*self.stock1.sh_owned+self.stock2.beta*self.stock2.price*self.stock2.sh_owned+self.stock3.beta*self.stock3.price*self.stock3.sh_owned+self.stock4.beta*self.stock4.price*self.stock4.sh_owned+self.stock5.beta*self.stock5.price*self.stock5.sh_owned+self.stock6.beta*self.stock6.price*self.stock6.sh_owned)/self.portfolio_val def print_stat(self): print("Portfolio value is: "+str(self.portfolio_val)+", long value is " +str(self.long_val) + " and short value is " +str(self.short_val)) print("Portfolio long beta is: "+ str(self.long_beta)+", short beta is " +str(self.short_beta)) JPM = stock("JP Morgan", 1.65,4.36) JPM.price_change(57.29) JPM.shares_owned(-8) GM = stock("General Motors", 1.73,2.38) GM.price_change(36.10) GM.shares_owned(20) WM = stock("Waste Management", .70, .20) WM.price_change(41.22) WM.shares_owned(15) AIG = stock("AIG",3.38,6.08) AIG.price_change(49.5) AIG.shares_owned(-15) ABX = stock("Barrick Gold",.47,-9.63) ABX.price_change(20.26) ABX.shares_owned(30) ABX.make_sale(30) FCSMF = stock("Focus Graphite",1,-.03) FCSMF.price_change(.470) FCSMF.shares_owned(300) feb_port = portfolio(JPM,GM,WM,AIG,ABX,FCSMF) #initially included Boeing, but it sucked so I sold it. Obviously, There is going to be a new market correction feb_port.print_stat() JPM.print_stat() AIG.print_stat()
Run
Reset
Share
Import
Link
Embed
Language▼
English
中文
Python Fiddle
Python Cloud IDE
Follow @python_fiddle
Browser Version Not Supported
Due to Python Fiddle's reliance on advanced JavaScript techniques, older browsers might have problems running it correctly. Please download the latest version of your favourite browser.
Chrome 10+
Firefox 4+
Safari 5+
IE 10+
Let me try anyway!
url:
Go
Python Snippet
Stackoverflow Question