Рубрики
Без рубрики

Акции с питоном

Введение в это приложение получает живые данные в формате JSON, а затем анализирует данные в соответствии с … Tagged с Python, Stocks.

вступление

Это приложение получает живые данные в формате JSON, а затем анализирует данные соответственно. Требуется ключ API, который может быть запрошен по этой ссылке https://www.alphavantage.co/support/#api-key .

Монтаж

Чтобы запустить эту программу, требуется пакет Alpha-Vatange. Установите пакет на локальную или виртуальную среду, используя: PIP установить alpha_vantage

API -ключ

Эта часть кода инициализирует ключ API. Пользователь также должен указать акции в формате списка.

apiKey = os.getenv('STOCK_API')
stock_sym = ['GOOGL','FB']
ts = TimeSeries(apiKey)

Будний день

Эта функция отвечает за определение дня недели. Если конечный пользователь запускает программу в течение выходных, будут отображаться данные пятницы.

def weekday():
    today_date = date.today()
    weekday = today_date.weekday()

    if weekday <= 4:
        return today_date
    elif weekday == 5 : 
        return datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
    else: 
        return datetime.strftime(datetime.now() - timedelta(2), '%Y-%m-%d')

Данные запаса

Вызов API сделан для Alpha Vantage в этой функции, и результат хранится в списке.

def vatage_stock_data(date):
    vantage_data = []
    local_stock_list = []

    for symbol in stock_sym:
        symbol, meta = ts.get_daily(symbol=f'{symbol}')
        vantage_data.append(symbol[f'{date}'])

    for line,name in zip(vantage_data,stock_sym):
        new_dict={f'{name}':line}
        local_stock_list.append(new_dict)

    return local_stock_list

Данные анализа

Список акций, полученный с помощью вызова API, проанализируется в этой функции. Эта функция отображает аналитику акций, которая может быть легко изменена. Я решил показать Daily Open, Close, High и Close.

def stock_open(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("OPEN",symbol,value['1. open'],sep="-")
    print("\n")

def stock_high(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("HIGH",symbol,value['2. high'],sep="-")
    print("\n")

def stock_low(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("LOW",symbol,value['3. low'],sep=":")
    print("\n")

def stock_close(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("ClOSE",symbol,value['4. close'],sep="-")
    print("\n")

Полный код

import urllib.request
from alpha_vantage.timeseries import TimeSeries
from datetime import date, datetime, timedelta
import os

apiKey = os.getenv('STOCK_API')
stock_sym = ['GOOGL','FB']
ts = TimeSeries(apiKey)

def weekday():
    today_date = date.today()
    weekday = today_date.weekday()

    if weekday <= 4:
        return today_date
    elif weekday == 5 : 
        return datetime.strftime(datetime.now() - timedelta(1), '%Y-%m-%d')
    else: 
        return datetime.strftime(datetime.now() - timedelta(2), '%Y-%m-%d')

def vatage_stock_data(date):
    vantage_data = []
    local_stock_list = []

    for symbol in stock_sym:
        symbol, meta = ts.get_daily(symbol=f'{symbol}')
        vantage_data.append(symbol[f'{date}'])

    for line,name in zip(vantage_data,stock_sym):
        new_dict={f'{name}':line}
        local_stock_list.append(new_dict)

    return local_stock_list

def stock_open(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("OPEN",symbol,value['1. open'],sep="-")
    print("\n")

def stock_high(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("HIGH",symbol,value['2. high'],sep="-")
    print("\n")

def stock_low(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("LOW",symbol,value['3. low'],sep=":")
    print("\n")

def stock_close(list):
    for i in range(len(list)):
        for symbol,value in list[i].items():
            print("ClOSE",symbol,value['4. close'],sep="-")
    print("\n")

weekday = weekday()
stock_data = vatage_stock_data(weekday)

stock_open(stock_data)
stock_high(stock_data)
stock_low(stock_data)
stock_close(stock_data)

Оригинал: “https://dev.to/pleasantencounter/stocks-with-python-2epd”