首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何通过Bybit API使用Market来结束我的职位?

如何通过Bybit API使用Market来结束我的职位?
EN

Stack Overflow用户
提问于 2022-02-09 21:29:53
回答 1查看 1.5K关注 0票数 3

我尝试使用python和Bybit API创建一个示例交易机器人。当我创建位置时,它是工作的,但是当我试图关闭这个位置时,它会给我带来错误,因为当我关闭位置时,我不能使用"Market“命令。我正在搜索Bybit文档,但我看不到这一点。

让我解释一下:

它是我的起始位置代码

代码语言:javascript
运行
复制
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,)

和我尝试用以下代码结束位置:

代码语言:javascript
运行
复制
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)

--这段代码在某些情况下是可以工作的,但通常情况下,我会得到以下错误:

代码语言:javascript
运行
复制
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记述

谢谢,

EN

回答 1

Stack Overflow用户

发布于 2022-06-27 11:20:28

我一直在努力解决同样的问题,直到我意识到在ByBit上完成交易的实际方法是在打开交易的对立面使用reduce_only选项:

代码语言:javascript
运行
复制
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,)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71056977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档