import datetime as dt
from datetime import datetime, timedelta
import pandas as pd
import json
import sys
import hmac
import hashlib
import time
from typing import List
from websocket import WebSocketApp
import logging
from zoneinfo import ZoneInfo
from delta_rest_client import DeltaRestClient ,OrderType
import requests
import numpy as np
np.NaN = np.nan
import pandas_ta
import threading
-----------------------------------------------------------------------------
API Keys and DeltaRestClient setup
API_KEY = ‘’
API_SECRET = ‘’
delta_client = DeltaRestClient(
base_url=‘https://api.india.delta.exchange’,
api_key=API_KEY,
api_secret=API_SECRET
)
def sell_bracket_order_limit(symbol ,lot , limit_price , sltriggerprice ,sllimitprice , tgtriggerprice,tgtlimitprice):
pi = delta_client.get_product(symbol)[‘id’]
prams = {
“product_id”: pi,
“product_symbol”: symbol,
“limit_price”: limit_price,
“size”: lot,
“side”: “sell”,
“order_type”: “limit_order”,
“stop_trigger_method”: “last_traded_price”,
“bracket_stop_loss_limit_price”: sllimitprice,
“bracket_stop_loss_price”: sltriggerprice,
“bracket_take_profit_limit_price”: tgtlimitprice,
“bracket_take_profit_price”: tgtriggerprice,
“time_in_force”: “gtc”
}
response = delta_client.request(“POST”, “/v2/orders”,prams,auth=True).json()
return response
def buy_bracket_order_limit(symbol ,lot , limit_price , sltriggerprice ,sllimitprice , tgtriggerprice,tgtlimitprice):
pi = delta_client.get_product(symbol)[‘id’]
prams = {
“product_id”: pi,
“product_symbol”: symbol,
“limit_price”: limit_price,
“size”: lot,
“side”: “buy”,
“order_type”: “limit_order”,
“stop_trigger_method”: “last_traded_price”,
“bracket_stop_loss_limit_price”: sllimitprice,
“bracket_stop_loss_price”: sltriggerprice,
“bracket_take_profit_limit_price”: tgtlimitprice,
“bracket_take_profit_price”: tgtriggerprice,
“time_in_force”: “gtc”
}
response = delta_client.request(“POST”, “/v2/orders”,prams,auth=True).json()
return response[‘id’]
def modify_order_qty(symbol,orderno,qty):
pi = delta_client.get_product(symbol)[‘id’]
order = {
‘id’: orderno,
‘product_id’: pi,
‘size’: qty,
#‘limit_price’: str(0.2)
}
response = delta_client.request(“PUT”, “/v2/orders”, order,auth=True)
return response[‘state’]
def modify_order_price(symbol,orderno,price):
pi = delta_client.get_product(symbol)[‘id’]
order = {
‘id’: orderno,
‘product_id’: pi,
‘limit_price’: str(price)
}
response = delta_client.request(“PUT”, “/v2/orders”, order,auth=True)
return response[‘state’]
def cancel_order(symbol,orderno):
pi = delta_client.get_product(symbol)[‘id’]
orderRes=delta_client.cancel_order(product_id=pi, order_id=orderno)
return orderRes[‘state’]
def sell_limit_order(symbol ,lot, price):
pi = delta_client.get_product(symbol)[‘id’]
orderRes = delta_client.place_order( product_id= pi, size= lot, side = ‘sell’, limit_price=price, order_type=OrderType.LIMIT)
return orderRes[‘id’]
def buy_limit_order(symbol ,lot, price):
pi = delta_client.get_product(symbol)[‘id’]
orderRes = delta_client.place_order( product_id= pi, size= lot, side = ‘buy’, limit_price=price, order_type=OrderType.LIMIT)
return orderRes[‘id’]
def sell_market_order(symbol ,lot):
pi = delta_client.get_product(symbol)[‘id’]
orderRes = delta_client.place_order( product_id= pi, size= lot, side = ‘sell’, order_type=OrderType.MARKET)
return orderRes[‘id’]
def buy_market_order(symbol ,lot):
pi = delta_client.get_product(symbol)[‘id’]
orderRes = delta_client.place_order( product_id= pi, size= lot, side = ‘buy’, order_type=OrderType.MARKET)
return orderRes[‘id’]
def sell_sl_order(symbol ,lot, triggerprice,price ):
pi = delta_client.get_product(symbol)[‘id’]
orderRes =delta_client.place_stop_order(product_id=pi, size=lot, side = ‘sell’, stop_price=triggerprice, limit_price=price, order_type=OrderType.LIMIT)
return orderRes[‘id’]
def buy_sl_order(symbol ,lot, triggerprice,price ):
pi = delta_client.get_product(symbol)[‘id’]
orderRes =delta_client.place_stop_order(product_id=pi, size=lot, side = ‘buy’, stop_price=triggerprice, limit_price=price, order_type=OrderType.LIMIT)
return orderRes[‘id’]
def sell_sl_market_order(symbol ,lot, triggerprice ):
pi = delta_client.get_product(symbol)[‘id’]
orderRes =delta_client.place_stop_order(product_id=pi, size=lot, side = ‘sell’, stop_price=triggerprice, order_type=OrderType.MARKET)
return orderRes[‘id’]
def buy_sl_market_order(symbol ,lot, triggerprice ):
pi = delta_client.get_product(symbol)[‘id’]
orderRes =delta_client.place_stop_order(product_id=pi, size=lot, side = ‘buy’, stop_price=triggerprice, order_type=OrderType.MARKET)
return orderRes[‘id’]