import hmac, hashlib, time, json, urllib.request

api_key = "b8QjUZkZN85SlHGD4P"
api_secret = "kcLmFW8Z5pqlKP8xqeLwR6b7QbpOmVjFsLVD"

# 1. Cancel ordine LONG precedente
ts = str(int(time.time()*1000))
body = {"category":"linear","symbol":"WIFUSDT","orderId":"7482ca8d-334d-4833-884e-e8724ebede1a"}
param_str = json.dumps(body, separators=(", ", ": "))
sign = hmac.new(api_secret.encode(), (ts+api_key+"5000"+param_str).encode(), hashlib.sha256).hexdigest()
headers = {"X-BAPI-API-KEY":api_key,"X-BAPI-SIGN":sign,"X-BAPI-TIMESTAMP":ts,"X-BAPI-RECV-WINDOW":"5000","Content-Type":"application/json"}
req = urllib.request.Request("https://api-demo.bybit.com/v5/order/cancel", data=param_str.encode(), headers=headers, method="POST")
try:
    r = urllib.request.urlopen(req, timeout=15)
    print("CANCEL LONG:", r.read().decode())
except Exception as e:
    print("CANCEL err:", e)

# 2. Apri SHORT a 0.1520
ts = str(int(time.time()*1000))
body = {
    "category": "linear",
    "symbol": "WIFUSDT",
    "side": "Sell",
    "orderType": "Limit",
    "qty": "9868",
    "price": "0.1520",
    "timeInForce": "GTC",
    "positionIdx": 0
}
param_str = json.dumps(body, separators=(", ", ": "))
sign = hmac.new(api_secret.encode(), (ts+api_key+"5000"+param_str).encode(), hashlib.sha256).hexdigest()
headers = {"X-BAPI-API-KEY":api_key,"X-BAPI-SIGN":sign,"X-BAPI-TIMESTAMP":ts,"X-BAPI-RECV-WINDOW":"5000","Content-Type":"application/json"}
req = urllib.request.Request("https://api-demo.bybit.com/v5/order/create", data=param_str.encode(), headers=headers, method="POST")
try:
    r = urllib.request.urlopen(req, timeout=15)
    print("SHORT WIF:", r.read().decode())
except urllib.error.HTTPError as e:
    print("SHORT err:", e.read().decode())
