Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

79 Commits

Repository files navigation

SMARTAPI-PYTHON

SMARTAPI-PYTHON is a Python library for dealing AMX,that is a set of REST-like HTTP APIs that expose many capabilities required to build stock market investment and trading platforms. It lets you execute orders in real time.

Installation

Use the package manager pip to install smartapi-python.

pip install smartapi-python
pip install websocket-client

Usage

# package import statementfromsmartapiimportSmartConnect#or from smartapi.smartConnect import SmartConnect#import smartapi.smartExceptions(for smartExceptions)#create object of callobj=SmartConnect(api_key="your api key",
#optional#access_token = "your access token",#refresh_token = "your refresh_token")#login api calldata=obj.generateSession("Your Client ID","Your Password","Your totp")
refreshToken=data['data']['refreshToken']
#fetch the feedtokenfeedToken=obj.getfeedToken()
#fetch User ProfileuserProfile=obj.getProfile(refreshToken)
#place ordertry:
orderparams= {
"variety": "NORMAL",
"tradingsymbol": "SBIN-EQ",
"symboltoken": "3045",
"transactiontype": "BUY",
"exchange": "NSE",
"ordertype": "LIMIT",
"producttype": "INTRADAY",
"duration": "DAY",
"price": "19500",
"squareoff": "0",
"stoploss": "0",
"quantity": "1"
}
orderId=obj.placeOrder(orderparams)
print("The order id is: {}".format(orderId))
exceptExceptionase:
print("Order placement failed: {}".format(e.message))
#gtt rule creationtry:
gttCreateParams={
"tradingsymbol" : "SBIN-EQ",
"symboltoken" : "3045",
"exchange" : "NSE", "producttype" : "MARGIN",
"transactiontype" : "BUY",
"price" : 100000,
"qty" : 10,
"disclosedqty": 10,
"triggerprice" : 200000,
"timeperiod" : 365
}
rule_id=obj.gttCreateRule(gttCreateParams)
print("The GTT rule id is: {}".format(rule_id))
exceptExceptionase:
print("GTT Rule creation failed: {}".format(e.message))
#gtt rule listtry:
status=["FORALL"] #should be a listpage=1count=10lists=obj.gttLists(status,page,count)
exceptExceptionase:
print("GTT Rule List failed: {}".format(e.message))
#Historic apitry:
historicParam={
"exchange": "NSE",
"symboltoken": "3045",
"interval": "ONE_MINUTE",
"fromdate": "2021-02-08 09:00", "todate": "2021-02-08 09:16"
}
obj.getCandleData(historicParam)
exceptExceptionase:
print("Historic Api failed: {}".format(e.message))
#logouttry:
logout=obj.terminateSession('Your Client Id')
print("Logout Successfull")
exceptExceptionase:
print("Logout failed: {}".format(e.message))

Getting started with SmartAPI Websocket's

fromsmartapiimportSmartWebSocket# feed_token=092017047FEED_TOKEN="YOUR_FEED_TOKEN"CLIENT_CODE="YOUR_CLIENT_CODE"# token="mcx_fo|224395"token="EXCHANGE|TOKEN_SYMBOL"#SAMPLE: nse_cm|2885&nse_cm|1594&nse_cm|11536&nse_cm|3045# token="mcx_fo|226745&mcx_fo|220822&mcx_fo|227182&mcx_fo|221599"task="mw"# mw|sfi|dpss=SmartWebSocket(FEED_TOKEN, CLIENT_CODE)
defon_message(ws, message):
print("Ticks: {}".format(message))
defon_open(ws):
print("on open")
ss.subscribe(task,token)
defon_error(ws, error):
print(error)
defon_close(ws):
print("Close")
# Assign the callbacks.ss._on_open=on_openss._on_message=on_messagess._on_error=on_errorss._on_close=on_closess.connect()

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages