我尝试使用python和Bybit API创建一个示例交易机器人。当我创建位置时,它是工作的,但是当我试图关闭这个位置时,它会给我带来错误,因为当我关闭位置时,我不能使用"Market“命令。我正在搜索Bybit文档,但我看不到这一点。
让我解释一下:
它是我的起始位置代码
open_position = client.place_active_order(symbol="BTCUSDT",
side="Buy",
order_type="Market",
qty= 0.001,
time_in_force="GoodTillCancel",
reduce_only=False,
close_on_trigger=False,)
和我尝试用以下代码结束位置:
last_price = client.latest_information_for_symbol(symbol="BTCUSDT")["result"][0]["last_price"]
# close position
close_position = client.set_trading_stop(
symbol="BTCUSDT",
side="Buy",
take_profit=last_price)
--这段代码在某些情况下是可以工作的,但通常情况下,我会得到以下错误:
InvalidRequestError(
pybit.exceptions.InvalidRequestError: Takeprofit:445890000 set for buy position should be higher
than base_price:445895000??lastprice (ErrCode: 130027)
我认为,当我向last_price
订货时,take_profit = last_price
并不等于BTCUSDT的平价价格。
例如,我的last_price
代码得到了BTCUSDT= 40000,但是当我的代码下订单之前,BTCUSDT上升了40100。
那么,我怎样才能用“市场”指令来结束头寸呢?
字节文档在这里 Bybit Api记述
谢谢,
发布于 2022-06-27 11:20:28
我一直在努力解决同样的问题,直到我意识到在ByBit上完成交易的实际方法是在打开交易的对立面使用reduce_only选项:
client.place_active_order(symbol="BTCUSDT",
side="Sell",
order_type="Market",
qty= 0.001,
time_in_force="GoodTillCancel",
reduce_only=True
close_on_trigger=False,)
https://stackoverflow.com/questions/71056977
复制相似问题