Advertisement
Guest User

alicesrc

a guest
Jul 6th, 2021
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.68 KB | None | 0 0
  1. import pandas as pd
  2. from alice_blue import *
  3. from nsepython import *
  4. import logging
  5. logger = logging.getLogger()
  6. logger.setLevel(logging.INFO)
  7.  
  8. username = ''
  9. password = ''
  10. twoFA=''
  11.  
  12. client_id = ''
  13. client_secret = ''
  14. redirect_url = ''
  15.  
  16.  
  17. access_token = AliceBlue.login_and_get_access_token(username=username, password=password, twoFA=twoFA,api_secret=client_secret,app_id=client_id)
  18. alice = AliceBlue(username=username, password=password, access_token=access_token, master_contracts_to_download=['NSE'])
  19. print('opening')
  20.  
  21. socket_opened = False
  22. ltp = 0
  23. open = 0
  24. high = 0
  25. low = 0
  26. close = 0
  27. volume = 0
  28. df = pd.DataFrame()
  29.  
  30. #Functions for getting data from Alice Blue
  31. def open_callback():
  32.     global socket_opened
  33.     socket_opened = True
  34.  
  35. def quote_update(message):
  36.     global ltp
  37.     global open
  38.     global high
  39.     global low
  40.     global close
  41.     global volume
  42.     print('message===', message)
  43.     ltp = (message['ltp'])
  44.     open = (message['open'])
  45.     high = (message['high'])
  46.     low = (message['low'])
  47.     close = (message['close'])
  48.     volume = message['volume']
  49.  
  50.  
  51.     print(open,high,low,close,ltp,volume)
  52.  
  53.  
  54. def  socket_error(error):
  55.     print(error)
  56.  
  57. #initialize bn data from Alice
  58. alice.start_websocket(subscribe_callback=quote_update,
  59.                         socket_open_callback=open_callback,
  60.                         socket_error_callback = socket_error,
  61.                         run_in_background=True)
  62. print('opening socket')
  63. while(socket_opened==False):
  64.     pass
  65. print('socket opened')
  66.  
  67. symbol = 'HITECH'
  68. alice.subscribe(alice.get_instrument_by_symbol('NSE', symbol), LiveFeedType.MARKET_DATA)
  69. # alice.subscribe(alice.get_instrument_by_symbol('NSE', symbol), LiveFeedType.COMPACT)
  70. # alice.subscribe(alice.get_instrument_by_symbol('NSE', symbol), LiveFeedType.SNAPQUOTE)
  71. # alice.subscribe(alice.get_instrument_by_symbol('NSE', symbol), LiveFeedType.FULL_SNAPQUOTE)
  72.  
  73. print('subcribe done')
  74.  
  75. rec_count = 0
  76. df['open'] = ""
  77. df['high'] = ""
  78. df['low'] = ""
  79. df['close'] = ""
  80. df['ltp'] = ""
  81. df['volume'] = ""
  82. while True:
  83.     Cu_DateTime = datetime.datetime.now()
  84.     # print(Cu_DateTime.strftime("%Y-%m-%d %H:%M:%S"))
  85.     df = df.append({'Date': Cu_DateTime.strftime("%Y-%m-%d %H:%M:%S"),
  86.                     # 'NewDate' : end_date,
  87.                     # 'Adj Close' : df['Adj Close'].iloc[-1] ,
  88.                     'open': open,
  89.                     'high': high,
  90.                     'low': low,
  91.                     'close': close,
  92.                     'ltp': ltp,
  93.                     'volume': volume
  94.                     },
  95.                    ignore_index=True)
  96.  
  97.  
  98.     rec_count += 1
  99.  
  100.     df.to_csv(symbol+'.csv',index=False)
  101.     time.sleep(30)
  102.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement