为什么不需要时发送参数“timeInForce”

问题描述

buyOrder = client.create_order(
    symbol = symbolTicker,side = 'BUY',type = 'STOP_LOSS',quantity = quantity,price = round(prev_symbolPrice*1.01,7),stopPrice = round(prev_symbolPrice*1.02,timeInForce = 'GTC'
)

APIError(code=-1106): 不需要时发送参数“timeInForce”。

使用此代码我收到时间错误?有变化吗?我哪里做错了。我打电话但找不到答案

解决方法

执行 create_order 时,timeInForce 参数文档显示:

timeInForce (str) – required if limit order

下单有两种,市价单和限价单。您的类型参数是 STOP_LOSS,止损单是市价单,而不是限价单。市价订单会立即下达,因此 timeInForce 不适用。

Documentation on order types

API doc for create order

不过,止损单很有趣,甚至令人困惑。文档说:

止损是一种市价单,涉及您设置以特定价格卖出的账外指令。顾名思义,它旨在保护您免受任何重大损失。从表面上看,这似乎是限价单,因为您设定了卖出价格,而不是按市场价格执行。但是,订单不会添加到订单簿中。交易平台只有在达到触发价格时才会将其转换为市价单。

,

我同意你说的。实际上,代码的真实版本设置为 STOP_LOSS_LIMIT。我有一个错误。我无法解决它,我读到它以这种方式改变了,我在几个地方翻译了 STOP_LOSS。作为 STOP_LOSS_LIMIT,我收到了价格错误。

list_of_tickers = client.get_all_tickers()
for tick_2 in list_of_tickers:
    if tick_2["symbol"] == symbolTicker:
        prev_symbolPrice = float(tick_2["price"])

buyOrder = client.create_order(
    symbol = symbolTicker,side = 'BUY',type = 'STOP_LOSS_LIMIT',quantity = quantity,price = round(prev_symbolPrice*1.01,7),stopPrice = round(prev_symbolPrice*1.02,timeInForce = 'GTC'
)

这里的代码也有错误?

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...