async def main(broker_account_id=None): balance = 10000 amount = 20 journal = Journal(mode='debug') traider = Traider(balance, journal, amount) analysis = Analysis(journal) stock = Stock(traider, journal) client = ti.AsyncClient(TOKEN, use_sandbox=True) data = await get_data(client, figi) print('Amount of data:', len(data)) df = pd.DataFrame(data) df.set_index('date', inplace=True) traider.trade(df, strategy=StrategyMACD_Day(loss_level=loss, profit_level=profit, macd_level=macd_level, target_stability=target_stability)) stock.interval_trade(df[-1:]) analysis.score() no_update = True async with ti.Streaming(TOKEN, receive_timeout=20, reconnect_timeout=10, heartbeat=20) as streaming: await streaming.candle.subscribe(figi, ti.CandleResolution.min5) async for event in streaming: if event.event == 'candle': pass # print(event.payload.figi, event.payload.c, event.payload.interval, event.payload.h, event.payload.time) if not (event.payload.time.strftime('%e-%m-%Y %H:%M') == data[-1]['date']) and no_update: no_update = False data = await get_data(client, figi) df = pd.DataFrame(data) df.set_index('date', inplace=True) traider.trade(df, strategy=StrategyMACD_Day( loss_level=loss, profit_level=profit, macd_level=macd_level, target_stability=target_stability)) stock.interval_trade(df[-1:]) analysis.score() elif event.payload.time.strftime( '%e-%m-%Y %H:%M') == data[-1]['date']: no_update = True
data_ = df[:i + 1] # print(data_[-1:]) # print(talib.MACD(data_['Close'])) traider.trade(data_, strategy=StrategyMACD_Day( loss_level=loss, profit_level=profit, macd_level=macd_level, target_stability=target_stability)) # traider.trade(data_, strategy=StartegyBase()) stock.interval_trade(data_[i:i + 1]) # print(journal.get_orders()) # print(journal.get_limits()) # journal.save_to_csv() analysis.score('data/results.csv') journal = None traider = None stock = None analysis = None def search_limits(): for profit in np.linspace(0.01, 0.05, num=5): res = [] for loss in np.linspace(0.001, 0.01, num=10): for macd_level in np.linspace(0.05, 0.5, num=10): for target_stability in np.linspace(0, 6, num=6): for i in range(data_limit_MACD, len(df)): data_ = df[:i + 1]