I have multiple threads in my code. One of the thread is monitoring my Stop Loss is hit to not and one thread is checking target.
this is the function which is checking for stop loss
def check_stop_loss_order(): global current_sl_order_id,looking_for_alert_candle,PREVIOUS_ATM_PUT,GLOBAL_ATM_INSTRUMENT_TOKEN
while True: if not current_sl_order_id: time.sleep(1) # If there's no sell order, wait for 1 seconds before checking again continue
current_time = datetime.datetime.now().time() close_time = datetime.time(15, 24) order_details = kite.order_history(current_sl_order_id)[-1] if current_time >= close_time: if order_details['status'] != "COMPLETE": print(f"Stop Loss Order of order_id {current_sl_order_id} still not complete") modify_to_market_order(current_sl_order_id) current_sl_order_id = None PREVIOUS_ATM_PUT = None remove_subscription(GLOBAL_ATM_INSTRUMENT_TOKEN) GLOBAL_ATM_INSTRUMENT_TOKEN = None continue
if order_details['status'] == "COMPLETE": looking_for_alert_candle = True print(f"Stop Loss Order of order_id {current_sl_order_id} is COMPLETE") current_sl_order_id = None # reset the order ID after SL is placed PREVIOUS_ATM_PUT = None remove_subscription(GLOBAL_ATM_INSTRUMENT_TOKEN) GLOBAL_ATM_INSTRUMENT_TOKEN = None
time.sleep(1)
This is the exception that occurred. This exception occurs randomly in the code. Any ideas on how to solve it
Exception in thread Thread-7 (check_stop_loss_order): Traceback (most recent call last): File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connectionpool.py", line 790, in urlopen response = self._make_request( ^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connectionpool.py", line 536, in _make_request response = conn.getresponse() ^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connection.py", line 461, in getresponse httplib_response = super().getresponse() ^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1378, in getresponse response.begin() File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 318, in begin version, status, reason = self._read_status() ^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 287, in _read_status raise RemoteDisconnected("Remote end closed connection without" http.client.RemoteDisconnected: Remote end closed connection without response
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/homebrew/lib/python3.11/site-packages/requests/adapters.py", line 486, in send resp = conn.urlopen( ^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connectionpool.py", line 844, in urlopen retries = retries.increment( ^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/util/retry.py", line 470, in increment raise reraise(type(error), error, _stacktrace) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/util/util.py", line 38, in reraise raise value.with_traceback(tb) File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connectionpool.py", line 790, in urlopen response = self._make_request( ^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connectionpool.py", line 536, in _make_request response = conn.getresponse() ^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/urllib3/connection.py", line 461, in getresponse httplib_response = super().getresponse() ^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 1378, in getresponse response.begin() File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 318, in begin version, status, reason = self._read_status() ^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/http/client.py", line 287, in _read_status raise RemoteDisconnected("Remote end closed connection without" urllib3.exceptions.ProtocolError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
During handling of the above exception, another exception occurred:
Traceback (most recent call last): File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 1038, in _bootstrap_inner self.run() File "/opt/homebrew/Cellar/[email protected]/3.11.4_1/Frameworks/Python.framework/Versions/3.11/lib/python3.11/threading.py", line 975, in run self._target(*self._args, **self._kwargs) File "/Users/nitishg/Desktop/5ema_automate/refinement1.py", line 157, in check_stop_loss_order order_details = kite.order_history(current_sl_order_id)[-1] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/kiteconnect/connect.py", line 423, in order_history return self._format_response(self._get("order.info", url_args={"order_id": order_id})) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/kiteconnect/connect.py", line 851, in _get return self._request(route, "GET", url_args=url_args, params=params, is_json=is_json) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/kiteconnect/connect.py", line 906, in _request raise e File "/opt/homebrew/lib/python3.11/site-packages/kiteconnect/connect.py", line 894, in _request r = self.reqsession.request(method, ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/requests/sessions.py", line 589, in request resp = self.send(prep, **send_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/requests/sessions.py", line 703, in send r = adapter.send(request, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/opt/homebrew/lib/python3.11/site-packages/requests/adapters.py", line 501, in send raise ConnectionError(err, request=request) requests.exceptions.ConnectionError: ('Connection aborted.', RemoteDisconnected('Remote end closed connection without response'))
Go through the Python websocket FAQs.