import time
import argparse
import pandas as pd
from nsetools import Nse
nse = Nse()
t = time.time()
FILE_LOCATION = '' # csv file, blank because path not relevant to others
df = pd.read_csv(FILE_LOCATION)
Contenu du fichier CSV:
Instrument,Qty,Avg buy price
APLAPOLLO,3,949.95
AVANTIFEED,6,554.55
BALAMINES,9,337.72
BALMLAWRIE,4,258.5
BANCOINDIA,15,217
DCMSHRIRAM,12,261.4
GHCL,12,267.2
GIPCL,27,101.95
JAMNAAUTO,15,182.1
JBCHEPHARM,15,344.85
KEI,24,143.95
KPRMILL,6,569.65
KRBL,9,312
MPHASIS,6,533.95
SHEMAROO,2,413.25
code:
# using argparse to provide options for obtaining closePrice or buyPrice1
# of stocks
parser = argparse.ArgumentParser(description='Stock Quote fetcher')
parser.add_argument('-r', '--realtime', help='Obtain realtime stock\
quotes', action='store_true')
args = parser.parse_args()
def get_closing(stock):
"""Function to obtain closePrice or buyPrice1 of stocks"""
if args.realtime:
return nse.get_quote(stock)['buyPrice1']
else:
return nse.get_quote(stock)['closePrice']
# calculating current value of investment
current_value = sum(get_closing(row[0]) * row[1] for index, row in
df.iterrows())
print(current_value)
print("Completed in ", time.time() - t)
Actuellement, les cours des actions sont obtenues en utilisant successivement l'expression du générateur. Cela prend 18-25 secondes pour calculer la valeur actuelle de l'investissement. Existe-t-il un moyen d'obtenir ces prix tous ensemble en parallèle et de calculer la valeur actuelle de l'investissement?Obtenir les cours des actions en parallèle en utilisant nsetools à partir des données csv
problème peut être 'nse' qui a besoin de temps pour obtenir des données. Peut-être qu'il peut obtenir beaucoup de stocks en une seule demande. – furas
Fonctionnalités fournies par nsetools pour obtenir les prix de plusieurs stocks en une seule requête. – Dana
Parallélisez le processus, ne savez pas combien de connexions pourriez-vous ouvrir avec nse. mais vous pouvez bifurquer dans le processus N qui ne demande qu'une seule chaussette et l'enregistrer dans la csv comme colonne supplémentaire, attendre que tout finisse, puis faire la somme. – Mquinteiro