# # import numpy as np # import constant # # strike_feeds = [140.5, 140.2, 160.3, 155.40, 152.35, 180.61, 250.5] # # # Finding the closes number # # lst = np.asarray(strike_feeds) # # idx = (np.abs(lst - constant.STRIKE_RANGE)).argmin() # # print (lst[idx]) # # # strike_feeds = [140, 160, 155, 152, 180, 250] # # # s_strikes = [] # # # for j in strike_feeds: # # # for n in x_strike: # # # print(n) # # # if(j == n): # # # s_strikes.append(j) # # # print(s_strikes) # # # print(max(s_strikes)) # # # print(min(s_strikes)) # # # i = 2.5 # # # print(type(i)) # # # x = [] # # # x.append(2.5) # # # x.append(3.5) # # # print(x[0]) # # # y = np.array(x) # # # z = y.astype(np.float64) # # # print(type(z)) # # # if(i == z[0]): # # # print("yes") # # # else: # # # print("no") # import datetime # import time # # forever_loop = True # # while (forever_loop): # # # *** Auto Square of Code Start *** # # # named_tuple = time.localtime() # get struct_time # # current_time = time.strftime("%H:%M:%S", named_tuple) # # print(current_time) # # if (current_time >= constant.SQUARE_OFF_TIME): # # print("Your Position square offed") # # forever_loop = False # # # *** Auto Square of Code End *** # # # time.sleep(1) # # For Placing Order # # try: # # # Place a Order # # client.place_order(order_type="N", instrument_token=token, # # transaction_type="BUY", quantity=constant.QUANTITY, current_ltp=0, # # disclosed_quantity=0, trigger_current_ltp=0, # # validity="GFD", variety="REGULAR", tag="string") # # except Exception as e: # # print("Exception when calling OrderApi->place_order: %s\n" % e) # xyz = {'Success': {'NSE': {'message': 'Your Order has been Placed and Forwarded to the Exchange: 13230503205607. ', # 'orderId': 13230503205607, 'current_ltp': 0, 'quantity': 50, 'tag': 'string'}}} # # *** to get order id of position # # print(xyz['Success']['NSE']['message']) # # # *** to get order message # # print(xyz['Success']['NSE']['orderId']) # position = {'Success': [{'actualNetTrdValue': 0, 'averageStockcurrent_ltp': 0, 'buyOpenQtyLot': 0, 'buyOpenVal': 0, 'buyTradedQtyLot': 100, 'buyTradedVal': 182.5, 'buyTrdAvg': 1.825, 'deliveryStatus': 0, 'denominator': 1, 'exchange': 'NN', 'expiryDate': '04MAY23', 'exposureMargin': 0, 'exposureMarginTotal': 0, 'grossUtilization': 0, 'instrumentName': 'NIFTY-OI-04MAY23-17700.00-PE', 'instrumentToken': 103804, 'lastcurrent_ltp': 1.75, 'marginType': 'S', 'marketLot': 50, 'maxCODQty': 0, # 'maxSingleOrderQty': 1801, 'maxSingleOrderValue': -1, 'multiplier': 1, 'netChange': -1.05, 'netTrdQtyLot': 0, 'netTrdValue': 0, 'normalSqOffQty': 0, 'optionType': 'PE', 'percentChange': -37.5, 'premium': -5, 'qtyUnit': '', 'rbiRefRate': 1, 'realizedPL': -5, 'segment': 'OI', 'sellOpenQtyLot': 0, 'sellOpenVal': 0, 'sellTradedQtyLot': 100, 'sellTradedVal': 177.5, 'sellTrdAvg': 1.775, 'spanMargin': 0, 'spanMarginTotal': 0, 'spreadTotal': 0, 'strikecurrent_ltp': 17700, 'symbol': 'NIFTY', 'totalStock': 0}]} # print(position['Success'][0]['realizedPL']) # report = {'success': [{'cancelledQuantity': 0, 'disclosedQuantity': 0, 'exchange': 'NSE', 'exchangeOrderId': '1100000066745453', 'expiryDate': '04MAY23', 'filledQuantity': 50, 'instrumentName': 'NIFTY', 'instrumentToken': 103804, 'instrumentType': 'OI', 'isFNO': 'Y', 'leg': 1, 'marketExchange': 'NN', 'marketLot': 50, 'multiplier': 1, 'optionType': 'PE', 'orderId': 13230503204437, 'orderQuantity': 50, 'orderTimestamp': 'May 03 2023 02:21:02:000PM', 'pendingQuantity': 0, 'current_ltp': 1.85, 'product': 'NORMAL', 'status': 'TRAD', 'statusInfo': 'Traded', 'statusMessage': 'Completely Traded Order', 'strikecurrent_ltp': 17700, 'tag': 'string', 'transactionType': 'BUY', 'triggercurrent_ltp': 0, 'validity': '-', 'variety': 'REGULAR'}, {'cancelledQuantity': 0, 'disclosedQuantity': 0, 'exchange': 'NSE', 'exchangeOrderId': '1100000066917870', 'expiryDate': '04MAY23', 'filledQuantity': 50, 'instrumentName': 'NIFTY', 'instrumentToken': 103804, 'instrumentType': 'OI', 'isFNO': 'Y', 'leg': 1, 'marketExchange': 'NN', 'marketLot': 50, 'multiplier': 1, 'optionType': 'PE', 'orderId': 13230503204787, 'orderQuantity': 50, 'orderTimestamp': # 'May 03 2023 02:22:06:000PM', 'pendingQuantity': 0, 'current_ltp': 1.8, 'product': 'NORMAL', 'status': 'TRAD', 'statusInfo': 'Traded', 'statusMessage': 'Completely Traded Order', 'strikecurrent_ltp': 17700, 'tag': # 'Android_KST3 ORDERS ONLY', 'transactionType': 'SELL', 'triggercurrent_ltp': 0, 'validity': '-', 'variety': 'REGULAR'}, {'cancelledQuantity': 0, 'disclosedQuantity': 0, 'exchange': 'NSE', 'exchangeOrderId': '1100000067272234', 'expiryDate': '04MAY23', 'filledQuantity': 50, 'instrumentName': 'NIFTY', 'instrumentToken': 103804, 'instrumentType': 'OI', 'isFNO': 'Y', 'leg': 1, 'marketExchange': 'NN', 'marketLot': 50, 'multiplier': 1, 'optionType': 'PE', 'orderId': 13230503205607, 'orderQuantity': 50, 'orderTimestamp': 'May 03 2023 02:23:47:000PM', 'pendingQuantity': 0, 'current_ltp': 1.8, 'product': 'NORMAL', 'status': 'TRAD', 'statusInfo': 'Traded', 'statusMessage': 'Completely Traded Order', 'strikecurrent_ltp': 17700, 'tag': 'string', 'transactionType': 'BUY', 'triggercurrent_ltp': 0, 'validity': '-', 'variety': 'REGULAR'}, {'cancelledQuantity': 0, 'disclosedQuantity': 0, 'exchange': 'NSE', 'exchangeOrderId': '1100000067345025', 'expiryDate': '04MAY23', 'filledQuantity': 50, 'instrumentName': 'NIFTY', 'instrumentToken': 103804, 'instrumentType': 'OI', 'isFNO': 'Y', 'leg': 1, 'marketExchange': 'NN', 'marketLot': 50, 'multiplier': 1, 'optionType': 'PE', 'orderId': 13230503205801, 'orderQuantity': 50, 'orderTimestamp': 'May 03 2023 02:24:10:000PM', 'pendingQuantity': 0, 'current_ltp': 1.75, 'product': 'NORMAL', 'status': 'TRAD', 'statusInfo': 'Traded', 'statusMessage': 'Completely Traded Order', 'strikecurrent_ltp': 17700, 'tag': # 'Android_KST3 ORDERS ONLY', 'transactionType': 'SELL', 'triggercurrent_ltp': 0, 'validity': '-', 'variety': 'REGULAR'}, {'cancelledQuantity': 0, 'disclosedQuantity': 0, 'exchange': 'NSE', 'exchangeOrderId': '1100000075667042', 'expiryDate': '04MAY23', 'filledQuantity': 50, 'instrumentName': 'NIFTY', 'instrumentToken': 103804, 'instrumentType': 'OI', 'isFNO': 'Y', 'leg': 1, 'marketExchange': 'NN', 'marketLot': 50, 'multiplier': 1, 'optionType': 'PE', 'orderId': 13230503231565, 'orderQuantity': 50, 'orderTimestamp': 'May 03 2023 02:59:09:000PM', 'pendingQuantity': 0, 'current_ltp': 1.85, 'product': 'NORMAL', 'status': 'TRAD', 'statusInfo': 'Traded', 'statusMessage': 'Completely Traded Order', 'strikecurrent_ltp': 17700, 'tag': 'string', 'transactionType': 'BUY', 'triggercurrent_ltp': 0, 'validity': '-', 'variety': 'REGULAR'}, {'cancelledQuantity': 0, 'disclosedQuantity': 0, 'exchange': 'NSE', 'exchangeOrderId': '1100000075854609', 'expiryDate': '04MAY23', 'filledQuantity': 50, 'instrumentName': 'NIFTY', 'instrumentToken': 103804, 'instrumentType': 'OI', 'isFNO': 'Y', 'leg': 1, 'marketExchange': 'NN', 'marketLot': 50, 'multiplier': 1, 'optionType': 'PE', 'orderId': 13230503231979, 'orderQuantity': 50, 'orderTimestamp': 'May 03 2023 02:59:47:000PM', 'pendingQuantity': 0, 'current_ltp': 1.85, 'product': 'NORMAL', 'status': 'TRAD', 'statusInfo': 'Traded', 'statusMessage': 'Completely Traded Order', 'strikecurrent_ltp': 17700, 'tag': 'Android_KST3 ORDERS ONLY', 'transactionType': 'SELL', 'triggercurrent_ltp': 0, 'validity': '-', 'variety': 'REGULAR'}]} # sl_order_id = xyz['Success']['NSE']['orderId'] # traded_current_ltp = 0.0 # for i in report['success']: # print(i['current_ltp']) # if (sl_order_id == i['orderId']): # print(i['current_ltp']) # traded_current_ltp = i['current_ltp'] # print(f"Order order_id: {order_id}, Traded current_ltp: {traded_current_ltp}") # print(f"Status Info: {order_id}, Message: {i['statusMessage']}") # # 'statusMessage': 'Completely Traded Order' # # x = 3.65 # # xy = float(round(x)) # # print(type(xy)) # # # net_pl = -22.499999999999986 # print('%.2f' % net_pl) pnl_hit = 30.0 pnl_trail = 10.0 current_ltp = 0.0 locked_profit = 0.0 trail_price = 0.0 for i in range(1, 100): current_ltp += i current_ltp = float(i) if (current_ltp >= trail_price + pnl_hit): locked_profit += pnl_trail trail_price += pnl_hit print(locked_profit) print(trail_price) print("*******************") elif (current_ltp <= locked_profit): print(f"Locked P&L booked at current_ltp of {locked_profit}") print(locked_profit) # Buying Price: 100 # Sl price: 100-15 = 85 # if price 110 then my sl move to 90