In [1]:
import pandas as pd
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
holding = pd.read_csv("~/Downloads/holdings(3).csv")
#holding.set_index('Instrument',inplace=True)
print holding
In [1]:
#currently owned with avg cost line
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
import MySQLdb as mdb
import pandas as pd
holding = pd.read_csv("~/Downloads/holdings(3).csv")
holding.set_index('Instrument',inplace=True)
def plotSingle(stock):
con = mdb.connect('127.0.0.1', 'root', 'paytm@197', 'stocks');
with con:
cur = con.cursor()
cur.execute("select * from stock_data where symbol = '"+stock+"' and series = 'EQ' and date>'2010-01-01' order by date asc")
rows = cur.fetchall()
df = pd.DataFrame( [[ij for ij in i] for i in rows] )
#print(df.head(20))
layout = go.Layout(
{'shapes':[{
'type': 'line',
'x0': df[3].min(),
'y0': holding.loc[stock]['Avg. cost'],
'x1': df[3].max(),
'y1': holding.loc[stock]['Avg. cost'],
'line': {
'color': 'rgb(255, 0, 0)',
'width': 1,
}
}]
},title=stock)
percent = (df[4].iloc[-1]- holding.loc[stock]['Avg. cost'])/holding.loc[stock]['Avg. cost']*100
percent_str = str(float("%0.2f"%percent))
absolute_pl = (df[4].iloc[-1]- holding.loc[stock]['Avg. cost'])*holding.loc[stock]['Qty.']
absolute_pl_str = str(float("%0.2f"%absolute_pl))
title = "Rs."+ absolute_pl_str+"/- & percent "+ percent_str+" % "+stock+" p/l for "+str(holding.loc[stock]['Qty.'])+" qty"
pl_layout = go.Layout({"xaxis":{"range":["2017-01-01",df[3].max()]}},title=title)
plotly.offline.iplot({
"data": [go.Scatter(x=df[3], y=df[4])],
"layout": layout
},filename = stock)
plotly.offline.iplot({
"data": [go.Scatter(x=df[3], y=(df[4]- holding.loc[stock]['Avg. cost'])*holding.loc[stock]['Qty.'], fill="tozeroy")],
"layout": pl_layout
})
for stock in ["CROMPTON","GSFC","GABRIEL","ICICIBANK","INDIGO","INDIANHUME","SUNDRMFAST","JSWSTEEL","JBCHEPHARM","UTISENSETF","EIDPARRY","VTL","INOXLEISUR","INFIBEAM","CLNINDIA","NIACL","INFY","PIDILITIND","HDFCLIFE","CPSEETF","GICRE","HINDUNILVR","BRITANNIA","KEC","GODREJCP","RELNV20","SUPRAJIT","TCS","SBILIFE","FLFL","ICICIGI","HAVELLS","VMART"]:
plotSingle(stock)
In [2]:
#used for testing graph features
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
import MySQLdb as mdb
import pandas as pd
con = mdb.connect('127.0.0.1', 'root', 'paytm@197', 'stocks');
stock="GSFC"
with con:
cur = con.cursor()
cur.execute("select * from stock_data where symbol = '"+stock+"' and series = 'EQ' order by date asc")
rows = cur.fetchall()
df = pd.DataFrame( [[ij for ij in i] for i in rows] )
#print df[3].isnull().sum()
#print(df.head(20))
layout = go.Layout({"shapes":[{
'type': 'line',
'x0': df[3].min(),
'y0': 300,
'x1': df[3].max(),
'y1': 300,
'line': {
'color': 'rgb(255, 0, 0)',
'width': 1,
}
}]
}, title=stock)
plotly.offline.iplot({
"data": [go.Scatter(x=df[3], y=df[4],mode="lines")],
"layout" : layout
},filename = stock)
In [19]:
#plot multiple graphs standalone
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
import MySQLdb as mdb
import pandas as pd
con = mdb.connect('127.0.0.1', 'root', 'paytm@197', 'stocks');
def plotSingle(symbol):
with con:
cur = con.cursor()
cur.execute("select * from stock_data where symbol = '"+symbol+"' and series = 'EQ' order by date asc")
rows = cur.fetchall()
df = pd.DataFrame( [[ij for ij in i] for i in rows] )
#print df[3].isnull().sum()
#print(df.head(20))
layout = go.Layout(title=symbol)
plotly.offline.iplot({
"data": [go.Scatter(x=df[3], y=df[4],mode="lines")],
"layout": layout
},filename = stock)
for stock in ['JINDCOT']:
plotSingle(stock)
In [77]:
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
import MySQLdb as mdb
import pandas as pd
con = mdb.connect('127.0.0.1', 'root', 'paytm@197', 'stocks');
def findData(symbol):
df = pd.read_sql("select * from stock_data where symbol = '"+symbol+"' and series = 'EQ' order by date asc",con)
return df;
data = findData('GSFC')
for key in ['open_price','high_price','low_price','close_price']:
data[key+'_30_max']=data.rolling(window=80)[key].mean()
data[key+'_30_min']=data.rolling(window=50)[key].mean()
plotly.offline.iplot({
"data": [go.Scatter(x=data['date'], y=data['close_price']),
go.Scatter(x=data['date'], y=data['close_price_30_max']),
go.Scatter(x=data['date'], y=data['close_price_30_min'])
],
"layout": layout
},filename = stock)
In [32]:
#plot multiple graphs standalone
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
import MySQLdb as mdb
import pandas as pd
con = mdb.connect('127.0.0.1', 'root', 'paytm@197', 'stocks');
def plotSingle(symbol):
days=200
df = pd.read_sql("select * from stock_data where symbol = '"+symbol+"' and date>date_sub(curdate(),interval "+str(days)+" day) and series = 'EQ' order by date asc",con)
#print df
#print(df.head(20))
layout = go.Layout(xaxis=dict(rangeslider=dict(visible=False)),title=symbol)
plotly.offline.iplot({
"data": [go.Candlestick(x=df['date'],open=df['open_price'],high=df['high_price'],low=df['low_price'],close=df['close_price'])],
"layout": layout
},filename = stock)
for stock in ['HINDUNILVR']:
plotSingle(stock)
In [67]:
from ta import *
#plot multiple graphs standalone
import plotly
plotly.offline.init_notebook_mode()
import plotly.graph_objs as go
import MySQLdb as mdb
import pandas as pd
con = mdb.connect('127.0.0.1', 'root', 'paytm@197', 'stocks');
def plotSingle(symbol):
days=150
df = pd.read_sql("select * from stock_data where symbol = '"+symbol+"' and date>date_sub(curdate(),interval "+str(days)+" day) and series = 'EQ' order by date asc",con)
#print df
df = add_all_ta_features(df, "open_price", "high_price", "low_price", "close_price", "total_traded_quantity", fillna=True)
#print(df.head(20))
df['bb_high'] = bollinger_hband(df["close_price"], n=20, ndev=2, fillna=True)
df['bb_low'] = bollinger_lband(df["close_price"], n=20, ndev=2, fillna=True)
#df.info()
#print df['bb_low_indicator']
layout = go.Layout(xaxis=dict(rangeslider=dict(visible=False)),title=symbol)
plotly.offline.iplot({
"data": [go.Candlestick(x=df['date'],open=df['open_price'],high=df['high_price'],low=df['low_price'],close=df['close_price']),go.Scatter(x=df['date'],y=df['volatility_bbh']),go.Scatter(x=df['date'],y=df['volatility_bbl'])],
"layout": layout
},filename = stock)
for stock in ['hindunilvr']:
plotSingle(stock)
In [ ]: