КАК ОТОБРАЗИТЬ СДЕЛКИ НА ГРАФИКЕ СБЕРБАНК ИНВЕСТОР? ОТОБРАЖЕНИЕ СДЕЛОК СБЕРБАНК ПРИ ПОМОЩИ PYTHON

КАК ОТОБРАЗИТЬ СДЕЛКИ НА ГРАФИКЕ СБЕРБАНК ИНВЕСТОР? ОТОБРАЖЕНИЕ СДЕЛОК СБЕРБАНК ПРИ ПОМОЩИ PYTHON

1,706 Просмотров

Здравствуйте, в этом видео я расскажу как я отображаю свои сделки через брокера сбербанк на графике.

Сайт для скачивания среды программирования Python (PyCharm), пойдет обычная версия:
https://www.jetbrains.com/ru-ru/pycharm/download/#section=windows

Файлы из видео:
https://yadi.sk/d/hpfgtS1BEiVRiQ
_________________________________________
Код первой программы:

import requests
import apimoex
import pandas as pd
import pathlib
from datetime import datetime, date

board = 'TQBR'

with open("C:/PYEX/TICK.txt", "r") as TICKs:
TICKs = [line.rstrip() for line in TICKs]

DATE = date(2013, 1, 1)
i=0

maindate = pd.DataFrame()
datei = datetime.toordinal(DATE)
for datei in range(datetime.toordinal(DATE), datetime.toordinal(datetime.now())):
maindate = maindate.append({'TRADEDATE':datei}, ignore_index=True)

process = 0
for TICK in TICKs:
process = process + 1
print((process / len(TICKs))*100,' %')
data = apimoex.get_board_history(requests.Session(), TICK, board=board)
if data == []:
continue
df = pd.DataFrame(data)
maindate[TICK] = None
j=0
for i in range(0,datetime.toordinal(datetime.now())-datetime.toordinal(DATE)):
if maindate['TRADEDATE'][i] == datetime.toordinal(datetime.strptime(df['TRADEDATE'][j], '%Y-%m-%d')):
maindate.loc[maindate.TRADEDATE == maindate['TRADEDATE'][i], TICK] = df['CLOSE'][j]
j=j+1
if j == (len(df.index)-1):
break

pathlib.Path("C:/PYEX/Database").mkdir(parents=True, exist_ok=True)
maindate.to_excel("C:/PYEX/Database/{}.xlsx".format(board), index=False)

-----------------------------------------------------
Код второй:

import pandas as pd
import matplotlib.pyplot as plt
from matplotlib.ticker import (AutoMinorLocator)
from datetime import datetime


print("Введите ТИКЕР акции(например SBER)")
TICK = input()
print("Введите режим торгов для акций (TQBR), для etf (TQTF)")
board = input()
i=0

trade=pd.DataFrame()
tradeBUY=pd.DataFrame()
tradeSELL=pd.DataFrame()
main = pd.read_excel("C:/PYEX/Database/{}.xlsx".format(board), sheet_name=0)
tr = pd.read_excel("C:/PYEX/Trade.xlsx", sheet_name=0)
for i in range(0, len(tr['Дата заключения'])):
trade = trade.append({'INDEX':i}, ignore_index=True)
tradeBUY = trade.append({'INDEX':i}, ignore_index=True)
tradeSELL = trade.append({'INDEX': i}, ignore_index=True)

j=0
for i in range(0,len(tr['Код финансового инструмента'])):
if TICK == tr['Код финансового инструмента'][i]:
if tr['Операция'][i] == 'Покупка':
tradeBUY.loc[tradeBUY.INDEX == tradeBUY['INDEX'][j], TICK] = tr['Код финансового инструмента'][i]
tradeBUY.loc[tradeBUY.INDEX == tradeBUY['INDEX'][j], 'TRADEDATE'] = int(datetime.toordinal(tr['Дата заключения'][i]))
tradeBUY.loc[tradeBUY.INDEX == tradeBUY['INDEX'][j], 'PRICE'] = (tr['Цена'][i])
tradeBUY.loc[tradeBUY.INDEX == tradeBUY['INDEX'][j], 'CV'] = tr['Количество'][i]
tradeBUY.loc[tradeBUY.INDEX == tradeBUY['INDEX'][j], 'TYPE'] = tr['Операция'][i]
tradeBUY.loc[tradeBUY.INDEX == tradeBUY['INDEX'][j], 'VOLUME'] = tr['Операция'][i] * tr['Количество'][i]
j = j + 1
else:
tradeSELL.loc[tradeSELL.INDEX == tradeSELL['INDEX'][j], TICK] = tr['Код финансового инструмента'][i]
tradeSELL.loc[tradeSELL.INDEX == tradeSELL['INDEX'][j], 'TRADEDATE'] = datetime.toordinal(tr['Дата заключения'][i])
tradeSELL.loc[tradeSELL.INDEX == tradeSELL['INDEX'][j], 'PRICE'] = tr['Цена'][i]
tradeSELL.loc[tradeSELL.INDEX == tradeSELL['INDEX'][j], 'CV'] = tr['Количество'][i]
tradeSELL.loc[tradeSELL.INDEX == tradeSELL['INDEX'][j], 'TYPE'] = tr['Операция'][i]
tradeSELL.loc[tradeSELL.INDEX == tradeSELL['INDEX'][j], 'VOLUME'] = tr['Операция'][i] * tr['Количество'][i]
j=j+1

for i in range(0, len(main['TRADEDATE'])):
main.loc[main.TRADEDATE == main['TRADEDATE'][i], 'TRADEDATE'] = datetime.fromordinal(main['TRADEDATE'][i])

x1 = main['TRADEDATE']
y1 = main[TICK]
x2 = tradeBUY['TRADEDATE']
y2 = tradeBUY['PRICE']
x3 = tradeSELL['TRADEDATE']
y3 = tradeSELL['PRICE']
fig, ax = plt.subplots(figsize=(5, 1))
tradeBUY.apply(lambda x: ax.annotate(x['CV'],xy = (x['TRADEDATE'], x['PRICE']), color='green', fontsize=11,arrowprops=(dict(color='green'))), axis=1)
tradeSELL.apply(lambda x: ax.annotate(x['CV'], (x['TRADEDATE'], x['PRICE']), color='red', fontsize=11,arrowprops=(dict(color='red',headlength = - 10 ))), axis=1)
ax.plot(x1, y1)
ax.xaxis.set_minor_locator(AutoMinorLocator())
ax.yaxis.set_minor_locator(AutoMinorLocator())
ax.tick_params(which='major', length=10, width=2)
ax.tick_params(which='minor', length=5, width=1)
ax.set_xlabel('ДАТА')
ax.set_ylabel('ЦЕНА')
ax.set_title(TICK)
plt.grid()
plt.show()

_________________________________
#инвестиции #брокер #сбербанк

Тэги:

#отобразить_сделки_на_графике #сбербанк_брокер #сбербанк_инвестор #как_отобразить_сделки_в_сбербанк_инвесторе #как_увидеть_сделки_в_сбербанк_брокере #где_мои_сделки_в_сбербанк_брокере #как_показать_на_графике_сделки #python #скачать_котировки_в_один_файл #как_увидеть_сделки_на_графике #как_нанести_сделки_на_график #сбербанк_инвестиции #инвестиции #сделки #инвестор #как_стать_инвестором #тинькофф_инвестиции #дивидендные_акции #etf #акции #лср #режим_торгов
Ссылки и html тэги не поддерживаются


Комментарии: