My Code
from bokeh.plotting import figure,show,output_file
from bokeh.models import HoverTool,ColumnDataSource
def make_a_plot(data,company_name):
p=figure(x_axis_type="datetime",aspect_ratio= 16/9)
p.sizing_mode = 'scale_height'
data["Middle"]=(data.Open+data.Close)/2
data["Height"]=abs(data.Close+data.Open)
df1=data[data.Close > data.Open]
df2=data[data.Close < data.Open]
p.segment(data.index, data.High ,data.index, data.Low, color="black")
hours_12 = 12*60*60*1000
p.rect(df1.index,(df1["Open"]+df1["Close"])/2,hours_12,abs(df1["Open"]-df1["Close"]),fill_color="#CCFFFF",line_color="black")
p.rect(df2.index,(df2["Open"]+df2["Close"])/2,hours_12,abs(df2["Open"]-df2["Close"]),fill_color="#FF3333",line_color="black")
output_file("Get info on bse companies/bse stock info/bse_analysis_of_%s.html"%company_name,title="%s | Candle stick chart"%company_name)
show(p)
def get_locs_equal(data):
data["Status"]=[inc_dec(c, o) for c, o in zip(data.Close, data.Open)]
lst = ["Equal","Equal"]
equal = data[data.Status.isin(lst)]
return equal
def inc_dec(c, o):
if c > o:
value= "Increase"
elif c < o:
value="Decrease"
else:
value = "Equal"
return value
the Data Input will be something like
Date | High | Low | Open | Close | Volume | Adj Close | Status |
---|---|---|---|---|---|---|---|
2002-07-01 | 50.861099 | 48.863701 | 49.208698 | 49.381199 | 168134.0 | 37.136139 | Increase |
2002-07-02 | 50.207401 | 48.500500 | 49.907799 | 48.990799 | 47395.0 | 36.842548 | Decrease |
i solved it with this https://drive.google.com/open?id=1pmbMw_w33H3_ZW4bHdIR4h2rnZlFAZ5g check it out