#python #api #algorithmic-trading #trading
#python #API #алгоритмическая торговля #торговля
Вопрос:
Привет, сообщество stack overflow.
В настоящее время я учусь программировать, решая проблемы, которые действительно помогут мне в моей работе в качестве трейдера. Все шло хорошо, хотя сейчас я застрял с тем, что кажется простым решением .. простая ошибка новичка.
Итак, у меня есть переменная for spread
в верхней части кода. Я меняю это на меньшее значение 5
, начальное значение было 25
.
Проблема в том, что когда я запускаю код, ордера на покупку по-прежнему размещаются на 25 от текущей цены.
buyprice = price - spread
Ниже приведен код и заранее спасибо за любую помощь.
# Simplified Deribit Market Maker. Please adjust for your own use.
import asyncio
import websockets
import json
#dollar spread
spread = 5
refresh_token = ""
expires_in = 0
access_token = ""
msg =
{
"jsonrpc" : "2.0",
"id" : 42,
"method" : "public/auth",
"params" : {
"grant_type" : "client_credentials",
"client_id" : "###",
"client_secret" : "###"
}
}
async def call_api(msg):
async with websockets.connect('wss://test.deribit.com/ws/api/v2') as websocket:
await websocket.send(msg)
while websocket.open:
response = json.loads(await websocket.recv())
#print(response)
if "result" in response:
result = response["result"]
#print(result)
if "access_token" in result:
access_token = result["access_token"]
#print(access_token)
msg1 = {"jsonrpc": "2.0","method": "private/subscribe", "id": 42, "params": {"access_token":access_token, "channels": ["user.orders.BTC-PERPETUAL.raw"]} }
await websocket.send(json.dumps(msg1))
if "params" in response:
params = response["params"]
if "data" in params:
data = params["data"]
#print(data)
order_state = data["order_state"]
order_type = data["order_type"]
if order_state == "filled" and order_type != "stop_limit":
price = data["price"]
direction = data["direction"]
qty = data["amount"]
msg2=msg1
if direction == "buy":
sellprice = price spread
msg2 = {"jsonrpc": "2.0","method": "private/sell", "id": 42, "params": {"access_token":access_token, "instrument_name" : "BTC-PERPETUAL", "amount" : qty, "type" : "limit","price":sellprice,"post_only":True} }
if direction == "sell":
buyprice = price - spread
msg2 = {"jsonrpc": "2.0","method": "private/buy", "id": 42, "params": {"access_token":access_token, "instrument_name" : "BTC-PERPETUAL", "amount" : qty, "type" : "limit","price":buyprice,"post_only":True} }
await websocket.send(json.dumps(msg2))
loop = asyncio.get_event_loop()
loop.run_until_complete(call_api(json.dumps(msg)))
loop.run_forever()
Комментарии:
1. Вы сохранили файл и перезапустили программу?
2. Привет, Карл, спасибо за ответ. Да, я действительно это сделал, есть еще какие-нибудь идеи? Спасибо