如何将 OCO 订单发送到币安

如何解决如何将 OCO 订单发送到币安

我想请你帮忙。我正在尝试将 python 代码从发送限价/市场订单更改为通过 api 到币安的 OCO 订单。我可以做限价单,市价单,止损限价单。我不知道如何下 OCO 订单...

当我使用限价单时,我发送的是 order_type=ORDER_TYPE_LIMIT 然后我使用了 order = client.create_order() 并且它正在工作。当我想发送市价单时,我使用了 order_type=ORDER_TYPE_MARKET 但是当我想让 OCO 订单时,我发现应该可行的唯一选项是: order = client.create_oco_order() 没有 order_type 但在这里我收到错误 1013 此交易品种不支持止损...

我检查了https://api.binance.com/api/v1/exchangeInfo

还有这个 "orderTypes":["LIMIT","LIMIT_MAKER","MARKET","STOP_LOSS_LIMIT","TAKE_PROFIT_LIMIT"],"icebergallowed":true,"ocoAllowed":true,

所以我不能使用 order_type。没有 ORDER_TYPE_OCO 并且 ocoAllowed 为真,所以我应该能够发送 oco 订单。但我收到“错误 1013:此交易品种不支持止损订单。订单失败”。

我想要的是将“价格”设置为限价卖单,以便在价格到达那里时获得更高的利润,并在价格下跌时将止损“stopPrice”设置得更低......立即。这就是 OCO 的工作方式。

有人可以给我一个建议吗?我不是 python 大师,我只是改变了我发现的一个代码,我的理解是如果 oco 被允许,也应该允许止损。谢谢

解决方法

为了让所有感兴趣的人都对这个问题的解决方案有一个准确的答案,我在注释中包含了代码。

我将以 BTCUSDT 中的 OCO 卖单为例。

想象一下我有 1 个比特币。当前价格为 30157.85,我想在 32000.07 卖出 1 BTC

但价格没有上涨并开始下跌,所以我将止损价格设置在 29283.03,此时限价卖单将以 29000.00 的价格开仓

这意味着我将以 32000.07 或 29000.00 USDT 卖出。顺序写成如下:

order= client.order_oco_sell(
    symbol= 'BTCUSDT',quantity= 1.00000,price= '32000.07',stopPrice= '29283.03',stopLimitPrice= '29000.00',stopLimitTimeInForce= 'FOK')

请注意,OCO 订单需要 stopLimitTimeInForce 参数。我使用了值“FOK”,但我在此处留下了您可以使用的不同值的描述:https://help.bybit.com/hc/en-us/articles/360039749233-What-are-time-in-force-TIF-GTC-IOC-FOK-

请注意,price、stopPrice、stopLimitPrice 和 stopLimitTimeInForce 参数是字符串,而不是浮点数或十进制数。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?