def pivot(data: list, data_properties: dict) -> dict: """ Strategy for Pivot points. :param data: list[numeric] :param data_properties: dict :return: dict Result from strategy_builder """ close = data_parser.get_close(data) pivot = indicators.pivot(data) pp = pivot[Keys.pp] r1 = pivot[Keys.r1] s1 = pivot[Keys.s1] buy = Condition(data1=close, data2=pp, operation=Operation.GREATER_THAN) sell = Condition(data1=close, data2=pp, operation=Operation.LESS_THAN) chart_1 = ChartElement(data=pivot, label="pivot", chart_type=ChartType.JUMPLINE, plot=ChartAxis.SAME_AXIS) charts = [chart_1] result = strategy_builder(data_properties=data_properties, data_list=data, strategy=BUY, buy=buy, sell=sell, charts=charts, target=r1, sl=s1, backtest_chart=ChartType.COLUMN) return result
def cum_pl_short(): """ Chart for back test reports of Cumulative profit and loss :return: None """ data_prop, data = data_parser.get_data(start_date="2000-01-18") high = data_parser.get_high(data) low = data_parser.get_low(data) close = data_parser.get_close(data) sma = indicators.sma(close) ema = indicators.ema(close) macd = indicators.macd(close) rsi = indicators.rsi(close) stoch = indicators.stoch(high, low, close) bbands = indicators.bollinger_bands(close) pivot = indicators.pivot(data) chart_1 = ChartElement(data=sma, label="sma", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.YELLOW) chart_2 = ChartElement(data=ema, label="ema", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.PINK) chart_3 = ChartElement(data=stoch, label="stoch", chart_type=ChartType.LINE, plot=ChartAxis.DIFFERENT_AXIS, color=ChartColor.PURPLE) chart_4 = ChartElement(data=bbands, label="bbands", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.BLUE) chart_5 = ChartElement(data=pivot, label="pivot", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.GREEN) chart_6 = ChartElement(data=rsi, label="rsi", chart_type=ChartType.LINE, plot=1, color=ChartColor.RED) chart_7 = ChartElement(data=macd, label="macd", chart_type=ChartType.LINE, plot=2, color="magenta") charts = [chart_1, chart_2, chart_3, chart_6] buy = Condition(data1=sma, data2=ema, operation=Operation.CROSSOVER) sell = Condition(data1=rsi, data2=70, operation=Operation.GREATER_THAN) result = strategy.strategy_builder(data_properties=data_prop, data_list=data, charts=charts, buy=buy, sell=sell, target=1.0, sl=0.5, strategy=strategy.BUY) cum_short = result['short']['DATE_CUM_PL'] # print(cum_short) return render_template("cum_pl_short.html", shortData=cum_short)
def chart(): """ For plotting normal candle chart or along with indicators :return: None """ # prop, data = data_parser.get_data(start_date="2017-08-18") # result = Strategies.rsi(data, data_properties=prop) # data_properties = result['data_properties'] # main_chart = [] # for key, values in data_properties.items(): # main_chart.append([key, values]) # params = result['params'] # data = result['data'] # print(params,data_with_indicators) # final_data = data_with_indicators[1:] # print(final_data) data_prop, data = data_parser.get_data(start_date="2007-01-18") high = data_parser.get_high(data) low = data_parser.get_low(data) close = data_parser.get_close(data) sma = indicators.sma(close) ema = indicators.ema(close) macd = indicators.macd(close) rsi = indicators.rsi(close) stoch = indicators.stoch(high, low, close) bbands = indicators.bollinger_bands(close) pivot = indicators.pivot(data) chart_1 = ChartElement(data=sma, label="sma", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.YELLOW) chart_2 = ChartElement(data=ema, label="ema", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.PINK) chart_3 = ChartElement(data=stoch, label="stoch", chart_type=ChartType.LINE, plot=ChartAxis.DIFFERENT_AXIS, color=ChartColor.PURPLE) chart_4 = ChartElement(data=bbands, label="bbands", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.BLUE) chart_5 = ChartElement(data=pivot, label="pivot", chart_type=ChartType.LINE, plot=ChartAxis.SAME_AXIS, color=ChartColor.GREEN) chart_6 = ChartElement(data=rsi, label="rsi", chart_type=ChartType.LINE, plot=1, color=ChartColor.RED) chart_7 = ChartElement(data=macd, label="macd", chart_type=ChartType.LINE, plot=2, color="magenta") charts = [chart_4, chart_6] buy = Condition(data1=sma, data2=ema, operation=Operation.CROSSOVER) sell = Condition(data1=rsi, data2=70, operation=Operation.GREATER_THAN) result = strategy.strategy_builder(data_properties=data_prop, data_list=data, charts=charts, buy=buy, sell=sell, target=1.0, sl=0.5, strategy=strategy.BUY) # strategy.show_back_testing_reports(result, auto_open=True) data_properties = result['data_properties'] main_chart = [] for key, values in data_properties.items(): main_chart.append([key, values]) params = result['params'] # print(params) data_list = result['data'] return render_template("chart.html", chartData=data_list, chart_params=params, main_chart_properties=main_chart)