makarworld / pymexc Goto Github PK
View Code? Open in Web Editor NEWUnofficial python library for interacting with the MEXC crypto exchange
Home Page: https://pypi.org/project/pymexc/
License: MIT License
Unofficial python library for interacting with the MEXC crypto exchange
Home Page: https://pypi.org/project/pymexc/
License: MIT License
HI.
I want to create new order:
from pymexc import spot
api_key = "apikey"
api_secret = "secretkey"
spot_client = spot.HTTP(api_key = api_key, api_secret = api_secret)
response = spot_client.new_order(symbol='BTCUSDT', side='BUY', order_type='MARKET', quote_order_qty=6)
print(response)
But I get an error:
pymexc.base.MexcAPIError: (code=700003): Timestamp for this request is outside of the recvWindow.
I try to increase the value of recvWindow:
spot_client.recvWindow = 30000
but nothing change :(
The same error is occured when I try initialize WebSocket client (example.py in examples)
Where did I wrong?
Hi,
I'm simply trying the following to get used to this library :
from pymexc import spot
api_key = 'abc'
api_secret = 'def'
spot_client = spot.HTTP(api_key = api_key, api_secret = api_secret)
print(spot_client.account_information())
print(spot_client.ticker_price())
Everything works fine until the last line. I have 2 problems here :
I didn't fully understand how to pass the arguments for a specific ticker, for example BTCUSDT
biggest problem : even if I try it with no argument, the doc says ":param symbol: (optional) If the symbol is not sent, all symbols will be returned in an array." So I should at least get an array as return, but instead I get the following error which I don't understand :
Traceback (most recent call last):
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/init.py", line 346, in loads
return _default_decoder.decode(s)
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "", line 1, in
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pymexc/spot.py", line 290, in ticker_price
return self.call("GET", "/api/v3/ticker/price",
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/pymexc/base.py", line 100, in call
return response.json()
^^^^^^^^^^^^^^^
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
What's wrong ?
Tell me how to get balance and pos, order data through a private channel using websocket. I place orders manually in the app, deals appear, but the callbacks are empty.
What am I doing wrong?
from pymexc import futures
def onOrder(message):
# handle websocket message
print('onOrder')
print(message)
def onPosition(message):
# handle websocket message
print('onPosition')
print(message)
def onAsset(message):
# handle websocket message
print('onAsset')
print(message)
SYM = "ETH_USDT"
futures_client = futures.HTTP(api_key = my_secret_var.mexc_api_key, api_secret = my_secret_var.mexc_api_secret)
ws_futures_client = futures.WebSocket(api_key = my_secret_var.mexc_api_key, api_secret = my_secret_var.mexc_api_secret, restart_on_error=True, trace_logging=True)
ws_futures_client.order_stream(onOrder)
ws_futures_client.asset_stream(onAsset)
ws_futures_client.position_stream(onPosition)
while True:
# lastPrice = getLastPrice(SYM)
# secho(f"{Now()} {SYM} price:{lastPrice['indexPrice']} time:{lastPrice['timestamp']} check sqltask", fg='magenta')
sleep(1000)
Exception in thread Thread-2 ():
Traceback (most recent call last):
File "C:\ProgramData\anaconda3\Lib\threading.py", line 1038, in _bootstrap_inner
self.run()
File "C:\ProgramData\anaconda3\Lib\threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "C:\ProgramData\anaconda3\Lib\site-packages\pymexc\base_websocket.py", line 151, in
self.wsl = threading.Thread(target=lambda: self._ping_loop(
^^^^^^^^^^^^^^^^
File "C:\ProgramData\anaconda3\Lib\site-packages\pymexc\base_websocket.py", line 101, in _ping_loop
self.ws.send(ping_payload)
File "C:\ProgramData\anaconda3\Lib\site-packages\websocket_app.py", line 253, in send
raise WebSocketConnectionClosedException(
websocket._exceptions.WebSocketConnectionClosedException: Connection is already closed.
On all the Get requests, signature verification succeeds, but when any post request is sent, signature verification fails. Any solution?
I am trying to use any of the futures ws that require a parameter to be set (kline_stream) and every time I am getting a Connection is already closed error.
ws_futures_client.kline_stream(handle_message, "BTC_USDT", "Min15")
Hi, dear, problem with signature for futures
query_string = "&".join([f"{k}={v}" for k, v in sorted(kwargs.items())])
query_string = self.api_key + timestamp + query_string
signature = hmac.new(self.api_secret.encode('utf-8'), query_string.encode('utf-8'), hashlib.sha256).hexdigest()
i tried change:
signature = hmac.new(query_string.encode('utf-8'), self.api_secret.encode('utf-8'), hashlib.sha256).hexdigest()
but same, checked everything is ok i dont know what can be wrong?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.