本文介绍一下用python代码结合okx如何获取行情,并且操作现货交易,代码开源,点个赞哦~
上篇文章写了怎么操作合约,okx量化 - python操作合约交易示例2-开源代码-CSDN博客,今天来说怎么操作现货。
源代码:https://github.com/JizhiXiang/Quant-Strategy/blob/main/okx_spot_inst_demo.py
1.获取现货行情
import time
import okx.Trade as Trade
import okx.Account as Account
import okx.MarketData as MarketData
# okx现货买卖操作
# OKX spot trading operation
# 注意主账号和子账号是分开的,模拟交易也是分开的
#Note that the main account and sub account are separate, and the simulated trading is also separate
# API 初始化 #API initialization
apikey = "YOUR_API_KEY"
secretkey = "YOUR_SECRET_KEY"
passphrase = "YOUR_PASSPHRASE"
# from my_key import * # 可忽略此行 #This line can be ignored
# 获取现货行情
# Obtain contract market information
# 实盘:0 , 模拟盘:1
#Real: 0, simulation: 1
flag = '1'
marketDataAPI = MarketData.MarketAPI(flag=flag)
result = marketDataAPI.get_ticker(instId='BTC-USDT')
print('获取现货行情(BTC-USDT):')
print(result)
print()
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USD-SWAP |
返回参数
参数名 | 类型 | 描述 |
---|---|---|
instType | String | 产品类型 |
instId | String | 产品ID |
last | String | 最新成交价 |
lastSz | String | 最新成交的数量,0 代表没有成交量 |
askPx | String | 卖一价 |
askSz | String | 卖一价对应的数量 |
bidPx | String | 买一价 |
bidSz | String | 买一价对应的数量 |
open24h | String | 24小时开盘价 |
high24h | String | 24小时最高价 |
low24h | String | 24小时最低价 |
volCcy24h | String | 24小时成交量,以币 为单位如果是 衍生品 合约,数值为交易货币的数量。如果是 币币/币币杠杆 ,数值为计价货币的数量。 |
vol24h | String | 24小时成交量,以张 为单位如果是 衍生品 合约,数值为合约的张数。如果是 币币/币币杠杆 ,数值为交易货币的数量。 |
sodUtc0 | String | UTC+0 时开盘价 |
sodUtc8 | String | UTC+8 时开盘价 |
ts | String | ticker数据产生时间,Unix时间戳的毫秒数格式,如 1597026383085 |
2.获取指数K线数据
# 获取指数K线数据
# Obtain index K-line data
# 注意:不要使用"获取指数历史K线数据"接口,否则获取不到当前数据
#Attention: Do not use the "Get Index Historical K-Line Data" interface, otherwise the current data cannot be obtained
result = marketDataAPI.get_index_candlesticks(
instId="BTC-USDT",
limit=10
)
# ['ts', 'o', 'h', 'l', 'c', 'confirm']
print('获取指数K线数据(BTC-USDT):')
print(result)
print()
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 现货指数,如 BTC-USD |
after | String | 否 | 请求此时间戳之前(更旧的数据)的分页内容,传的值为对应接口的ts |
before | String | 否 | 请求此时间戳之后(更新的数据)的分页内容,传的值为对应接口的ts , 单独使用时,会返回最新的数据。 |
bar | String | 否 | 时间粒度,默认值1m 如 [ 1m /3m /5m /15m /30m /1H /2H /4H ]香港时间开盘价k线:[ 6H /12H /1D /1W /1M /3M ]UTC时间开盘价k线:[ 6Hutc /12Hutc /1Dutc /1Wutc /1Mutc /3Mutc ] |
limit | String | 否 | 分页返回的结果集数量,最大为100 ,不填默认返回100 条 |
返回参数
参数名 | 类型 | 描述 |
---|---|---|
ts | String | 开始时间,Unix时间戳的毫秒数格式,如 1597026383085 |
o | String | 开盘价格 |
h | String | 最高价格 |
l | String | 最低价格 |
c | String | 收盘价格 |
confirm | String | K线状态0 代表 K 线未完结,1 代表 K 线已完结。 |
返回的第一条K线数据可能不是完整周期k线,返回值数组顺序分别为是:[ts,o,h,l,c,confirm]
3.查看账户余额
# 查看账户余额
# View account balance
accountAPI = Account.AccountAPI(apikey, secretkey, passphrase, False, flag)
result = accountAPI.get_account_balance()
print('查看账户余额:')
print(result)
print()
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
ccy | String | 否 | 币种,如 BTC 支持多币种查询(不超过20个),币种之间半角逗号分隔 |
返回参数
参数名 | 类型 | 描述 |
---|---|---|
uTime | String | 账户信息的更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
totalEq | String | 美金层面权益 |
isoEq | String | 美金层面逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
adjEq | String | 美金层面有效保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
ordFroz | String | 美金层面全仓挂单占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
imr | String | 美金层面占用保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
mmr | String | 美金层面维持保证金 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
borrowFroz | String | 账户美金层面潜在借币占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
mgnRatio | String | 美金层面保证金率 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
notionalUsd | String | 以美金价值为单位的持仓数量,即仓位美金价值 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
notionalUsdForBorrow | String | 借币金额(美元价值) 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
notionalUsdForSwap | String | 永续合约持仓美元价值 适用于 跨币种保证金模式 /组合保证金模式 |
notionalUsdForFutures | String | 交割合约持仓美元价值 适用于 跨币种保证金模式 /组合保证金模式 |
notionalUsdForOption | String | 期权持仓美元价值 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
upl | String | 账户层面全仓未实现盈亏(美元单位) 适用于 跨币种保证金模式 /组合保证金模式 |
details | Array of objects | 各币种资产详细信息 |
> ccy | String | 币种 |
> eq | String | 币种总权益 |
> cashBal | String | 币种余额 |
> uTime | String | 币种余额信息的更新时间,Unix时间戳的毫秒数格式,如 1597026383085 |
> isoEq | String | 币种逐仓仓位权益 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> availEq | String | 可用保证金 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> disEq | String | 美金层面币种折算权益 适用于 现货模式 (开通了借币功能)/跨币种保证金模式 /组合保证金模式 |
> fixedBal | String | 抄底宝、逃顶宝功能的币种冻结金额 |
> availBal | String | 可用余额 |
> frozenBal | String | 币种占用金额 |
> ordFrozen | String | 挂单冻结数量 适用于 现货模式 /现货和合约模式 /跨币种保证金模式 |
> liab | String | 币种负债额 值为正数,如 "21625.64" 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> upl | String | 未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> uplLiab | String | 由于仓位未实现亏损导致的负债 适用于 跨币种保证金模式 /组合保证金模式 |
> crossLiab | String | 币种全仓负债额 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> isoLiab | String | 币种逐仓负债额 适用于 跨币种保证金模式 /组合保证金模式 |
> rewardBal | String | 体验金余额 |
> mgnRatio | String | 币种全仓保证金率,衡量账户内某项资产风险的指标 适用于 现货和合约模式 且有全仓仓位时 |
> imr | String | 币种维度全仓占用保证金 适用于 现货和合约模式 且有全仓仓位时 |
> mmr | String | 币种维度全仓维持保证金 适用于 现货和合约模式 且有全仓仓位时 |
> interest | String | 计息,应扣未扣利息 值为正数,如 9.01 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> twap | String | 当前负债币种触发系统自动换币的风险 0、1、2、3、4、5其中之一,数字越大代表您的负债币种触发自动换币概率越高 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 |
> maxLoan | String | 币种最大可借 适用于 现货模式 /跨币种保证金模式 /组合保证金模式 的全仓 |
> eqUsd | String | 币种权益美金价值 |
> borrowFroz | String | 币种美金层面潜在借币占用保证金 仅适用于 现货模式 /跨币种保证金模式 /组合保证金模式 。在其他账户模式下为""。 |
> notionalLever | String | 币种杠杆倍数 适用于 现货和合约模式 |
> stgyEq | String | 策略权益 |
> isoUpl | String | 逐仓未实现盈亏 适用于 现货和合约模式 /跨币种保证金模式 /组合保证金模式 |
> spotInUseAmt | String | 现货对冲占用数量 适用于 组合保证金模式 |
> clSpotInUseAmt | String | 用户自定义现货占用数量 适用于 组合保证金模式 |
> maxSpotInUse | String | 系统计算得到的最大可能现货占用数量 适用于 组合保证金模式 |
> spotIsoBal | String | 现货逐仓余额 仅适用于现货带单/跟单 适用于 现货模式 /现货和合约模式 |
> smtSyncEq | String | 合约智能跟单权益 默认为0,仅适用于跟单人。 |
> spotCopyTradingEq | String | 现货智能跟单权益 默认为0,仅适用于跟单人。 |
> spotBal | String | 现货余额 ,单位为 币种,比如 BTC。详情 |
> openAvgPx | String | 现货开仓成本价 单位 USD。 详情 |
> accAvgPx | String | 现货累计成本价 单位 USD。 详情 |
> spotUpl | String | 现货未实现收益,单位 USD。 详情 |
> spotUplRatio | String | 现货未实现收益率。详情 |
> totalPnl | String | 现货累计收益,单位 USD。 详情 |
> totalPnlRatio | String | 现货累计收益率。详情 |
> totalPnlRatio | String | 现货累计收益率。详情 |
> collateralEnabled | Boolean | true :质押币false :非质押币适用于 跨币种保证金模式 详情 |
4.买入现货
注意:买卖现货时单位一定要看清楚了
# 买入现货 buy spot
tradeAPI = Trade.TradeAPI(apikey, secretkey, passphrase, False, flag)
result = tradeAPI.place_order(
instId='BTC-USDT',
tdMode='cash',
side='buy',
ordType='market',
sz="9000" # 单位是USDT #The unit is USDT
)
print('买入BTC:')
print(result)
print()
请求参数
参数名 | 类型 | 是否必须 | 描述 |
---|---|---|---|
instId | String | 是 | 产品ID,如 BTC-USDT |
tdMode | String | 是 | 交易模式 保证金模式: isolated :逐仓 ;cross :全仓非保证金模式: cash :非保证金spot_isolated :现货逐仓(仅适用于现货带单) ,现货带单时,tdMode 的值需要指定为spot_isolated |
ccy | String | 否 | 保证金币种,适用于逐仓杠杆 及现货和合约模式 下的全仓杠杆 订单 |
clOrdId | String | 否 | 客户自定义订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 |
tag | String | 否 | 订单标签 字母(区分大小写)与数字的组合,可以是纯字母、纯数字,且长度在1-16位之间。 |
side | String | 是 | 订单方向buy :买, sell :卖 |
posSide | String | 可选 | 持仓方向 在开平仓模式下必填,且仅可选择 long 或 short 。 仅适用交割、永续。 |
ordType | String | 是 | 订单类型market :市价单limit :限价单post_only :只做maker单fok :全部成交或立即取消ioc :立即成交并取消剩余optimal_limit_ioc :市价委托立即成交并取消剩余(仅适用交割、永续)mmp :做市商保护(仅适用于组合保证金账户模式下的期权订单)mmp_and_post_only :做市商保护且只做maker单(仅适用于组合保证金账户模式下的期权订单) |
sz | String | 是 | 委托数量 |
px | String | 可选 | 委托价格,仅适用于limit 、post_only 、fok 、ioc 、mmp 、mmp_and_post_only 类型的订单期权下单时,px/pxUsd/pxVol 只能填一个 |
pxUsd | String | 可选 | 以USD价格进行期权下单 仅适用于期权 期权下单时 px/pxUsd/pxVol 必填一个,且只能填一个 |
pxVol | String | 可选 | 以隐含波动率进行期权下单,例如 1 代表 100% 仅适用于期权 期权下单时 px/pxUsd/pxVol 必填一个,且只能填一个 |
reduceOnly | Boolean | 否 | 是否只减仓,true 或 false ,默认false 仅适用于 币币杠杆 ,以及买卖模式下的交割/永续 仅适用于 现货和合约模式 和跨币种保证金模式 |
tgtCcy | String | 否 | 市价单委托数量sz 的单位,仅适用于币币 市价订单base_ccy : 交易货币 ;quote_ccy :计价货币买单默认 quote_ccy , 卖单默认base_ccy |
banAmend | Boolean | 否 | 是否禁止币币市价改单,true 或 false,默认false 为true时,余额不足时,系统不会改单,下单会失败,仅适用于币币市价单 |
quickMgnType | String | 否 | 一键借币类型,仅适用于杠杆逐仓的一键借币模式:manual :手动,auto_borrow :自动借币,auto_repay :自动还币默认是 manual :手动(已弃用) |
stpId | String | 否 | 自成交保护ID。来自同一个母账户配着同一个ID的订单不能自成交 用户自定义1<=x<=999999999的整数(已弃用) |
stpMode | String | 否 | 自成交保护模式 默认为 cancel maker cancel_maker ,cancel_taker , cancel_both Cancel both不支持FOK |
attachAlgoOrds | Array of object | 否 | 下单附带止盈止损信息 |
> attachAlgoClOrdId | String | 否 | 下单附带止盈止损时,客户自定义的策略订单ID 字母(区分大小写)与数字的组合,可以是纯字母、纯数字且长度要在1-32位之间。 订单完全成交,下止盈止损委托单时,该值会传给 algoClOrdId |
> tpTriggerPx | String | 可选 | 止盈触发价 对于条件止盈单,如果填写此参数,必须填写 止盈委托价 |
> tpOrdPx | String | 可选 | 止盈委托价 对于条件止盈单,如果填写此参数,必须填写 止盈触发价 对于限价止盈单,需填写此参数,不需要填写止盈触发价 委托价格为-1时,执行市价止盈 |
> tpOrdKind | String | 否 | 止盈订单类型condition : 条件单limit : 限价单默认为 condition |
> slTriggerPx | String | 可选 | 止损触发价,如果填写此参数,必须填写 止损委托价 |
> slOrdPx | String | 可选 | 止损委托价,如果填写此参数,必须填写 止损触发价 委托价格为-1时,执行市价止损 |
> tpTriggerPxType | String | 否 | 止盈触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
> slTriggerPxType | String | 否 | 止损触发价类型last :最新价格index :指数价格mark :标记价格默认为 last |
> sz | String | 可选 | 数量。仅适用于“多笔止盈”的止盈订单,且对于“多笔止盈”的止盈订单必填 |
> amendPxOnTriggerType | String | 否 | 是否启用开仓价止损,仅适用于分批止盈的止损订单,第一笔止盈触发时,止损触发价格是否移动到开仓均价止损0 :不开启,默认值1 :开启,且止损触发价不能为空 |
返回参数
参数名 | 类型 | 描述 |
---|---|---|
code | String | 结果代码,0 表示成功 |
msg | String | 错误信息,代码为0时,该字段为空 |
data | Array of objects | 包含结果的对象数组 |
> ordId | String | 订单ID |
> clOrdId | String | 客户自定义订单ID |
> tag | String | 订单标签 |
> ts | String | 系统完成订单请求处理的时间戳,Unix时间戳的毫秒数格式,如 1597026383085 |
> sCode | String | 事件执行结果的code,0代表成功 |
> sMsg | String | 事件执行失败或成功时的msg |
inTime | String | REST网关接收请求时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 返回的时间是请求验证后的时间。 |
outTime | String | REST网关发送响应时的时间戳,Unix时间戳的微秒数格式,如 1597026383085123 |
tdMode
交易模式,下单时需要指定
现货模式:
- 币币和期权买方:cash
现货和合约模式:
- 逐仓杠杆:isolated
- 全仓杠杆:cross
- 币币:cash
- 全仓交割/永续/期权:cross
- 逐仓交割/永续/期权:isolated
跨币种保证金模式:
- 逐仓杠杆:isolated
- 全仓币币:cross
- 全仓交割/永续/期权:cross
- 逐仓交割/永续/期权:isolated
组合保证金模式:
- 逐仓杠杆:isolated
- 全仓币币:cross
- 全仓交割/永续/期权:cross
- 逐仓交割/永续/期权:isolated
clOrdId
clOrdId是用户自定义的唯一ID用来识别订单。如果在请求参数中传入了,那它一定会在返回参数内,并且可以用于查询订单,撤销订单,修改订单等接口。 clOrdId不能与当前所有的挂单的clOrdId重复
posSide
持仓方向,买卖模式下此参数非必填,如果填写仅可以选择net;在开平仓模式下必填,且仅可选择 long 或 short。
开平仓模式下,side和posSide需要进行组合
开多:买入开多(side 填写 buy; posSide 填写 long )
开空:卖出开空(side 填写 sell; posSide 填写 short )
平多:卖出平多(side 填写 sell;posSide 填写 long )
平空:买入平空(side 填写 buy; posSide 填写 short )
组合保证金模式:交割和永续仅支持买卖模式
ordType
订单类型,创建新订单时必须指定,您指定的订单类型将影响需要哪些订单参数和撮合系统如何执行您的订单,以下是有效的ordType:
普通委托:
limit:限价单,要求指定sz 和 px
market:市价单,币币和币币杠杆,是市价委托吃单;交割合约和永续合约,是自动以最高买/最低卖价格委托,遵循限价机制;期权合约不支持市价委托;由于市价委托无法确定成交价格,为确保有足够的资产买入设定数量的交易币种,会多冻结5%的计价币资产
高级委托:
post_only:限价委托,在下单那一刻只做maker,如果该笔订单的任何部分会吃掉当前挂单深度,则该订单将被全部撤销。
fok:限价委托,全部成交或立即取消,如果无法全部成交该笔订单,则该订单将被全部撤销。
ioc:限价委托,立即成交并取消剩余,立即按照委托价格撮合成交,并取消该订单剩余未完成数量,不会在深度列表上展示委托数量。
optimal_limit_ioc:市价委托,立即成交并取消剩余,仅适用于交割合约和永续合约。
sz
交易数量,表示要购买或者出售的数量。
当币币/币币杠杆以限价买入和卖出时,指交易货币数量。
当币币杠杆以市价买入时,指计价货币的数量。
当币币杠杆以市价卖出时,指交易货币的数量。
对于币币市价单,单位由 tgtCcy 决定
当交割、永续、期权买入和卖出时,指合约张数。
reduceOnly
只减仓,下单时,此参数设置为 true 时,表示此笔订单具有减仓属性,只会减少持仓数量,不会增加新的持仓仓位
对于同一杠杆产品,所有反方向挂单的币数加上当前只减仓下单数量,不能超过仓位资产;负债还完后,如果还有剩余的委托数量,不会反向开仓,而是会进行币币交易。
对于同一交割/永续产品,当前只减仓下单张数,加上价格时间优先于当前只减仓下单的只减仓挂单张数总和,不能超过持仓数量
仅适用于`现货和合约模式`和`跨币种保证金模式`
仅适用于`币币杠杆`,以及买卖模式下的`交割/永续`
注意:交割和永续合约在开平仓模式下,所有的平仓单都有只减仓逻辑,不受该字段传值的影响。
tgtCcy
市价单委托数量`sz`的单位:仅适用于币币市价下单交易。
交易货币:base_ccy
计价货币:quote_ccy
您在使用交易货币买入或者计价货币卖出时,请知晓:
1.如果您输入的数量大于当前可买或者可卖的数量,系统将按照您的最大可买或者可卖数量帮您完成交易,如果您希望按照指定数量成交,那您可以尝试使用限价单,等待市场价格波动到锁定的余额可以买入或卖出您指定的数量。
2.如果您输入的数量不大于当前可买或者可卖的数量,那当市场价格波动过大时,锁定的余额可能没办法买入您输入的交易货币数量或卖出您输入的计价货币数量,为保证您的交易体验,我们基于【能买多少买多少】或者【能卖多少卖多少】的原则,更改下单的数量帮您完成交易。此外,我们将尽量多锁定一点余额来规避更改下单数量的情况。
2.1 交易币买入例子:
以市价下单 买入 10个LTC为例,用户可买为11个,此时 10 < 11,挂单成功。当LTC-USDT的市价为200,用户被锁定余额为3,000 USDT,200*10 < 3,000,最终成交10个LTC; 若市场波动过大,LTC-USDT的市价为400,此时400*10 > 3,000,当用户被锁定的余额不够买入下单指定的交易货币数量时,系統使用用户被锁定的最大余额3,000 USDT下单买入,最终成交 3,000/400 = 7.5个 LTC。
2.2 计价币卖出例子:
以市价下单 卖出 1,000USDT为例,用户可卖为1,200USDT,1,000 < 1,200,挂单成功。LTC-USDT的市价为200,用户被锁定的余额为6个LTC,最终成交5个LTC; 若市场波动过大,LTC-USDT的市价为100,100*6 < 1,000,当用户被锁定的余额不够卖出下单指定的计价货币数量时,系統使用用户被锁定的最大余额6个LTC下单,最终成交 6 * 100 = 600 USDT。
px
期权下单时,委托价格需为 tickSz 的整数倍。
当不为整数倍时,取值规则以tickSz取 0.0005 为例:
当委托价格对0.0005的余数大于0.00025或者委托价格小于0.0005时,向上取;
当委托价格对0.0005的余数小于等于0.00025,且委托价格大于0.0005时,向下取。
对于下单附带止盈止损:
1. 只有当该订单完全成交时,才会生成止盈止损策略订单,否则不会生成止盈止损策略订单。
2. tgtCcy 为 base_ccy 时的市价买单和 tgtCcy 为 quote_ccy 时的市价卖单,均不支持附带止盈止损
3. tpOrdKind 为 limit,且只有一笔单边止盈时,attachAlgoClOrdId 可以作为 clOrdId 在获取订单信息接口查询。
4. 对于“分批止盈”,包含限价止盈和触发止盈:
* 分批止盈的每笔止盈止损订单仅支持单向止盈止损,slTriggerPx&slOrdPx 与 tpTriggerPx&tpOrdPx 只能填写一组,否则 报错 51076
* 同一笔订单上附带分批止盈的止盈触发价类型 (tpTriggerPxType) 必须保持一致,否则报错 51080
* 同一笔订单上附带分批止盈的止盈触发价 (tpTriggerPx) 不能相等,否则报错 51081
* 在附带分批止盈时,止盈订单的数量不能为空,否则报错 51089
* 同一笔订单上分批止盈的止盈数量之和,需要等于订单的委托数量,否则报错 51083
* 同一笔订单上分批止盈的止盈委托不能超过 10 笔,否则报错 51079
* 币币/杠杆不支持开启'开仓价止损',否则报错 51077
* 同一笔订单上附带分批止盈的止损委托单不能超过 1 笔,否则报错 51084
* 附带止盈止损开启'开仓价止损'时 (amendPxOnTriggerType 设置为 1),该笔订单上的止盈委托单必须大于等于 2 笔,否则报错 51085
* 同一笔订单上附带分批止盈的止盈类型必须保持一致,否则报错 51091
* 同一笔订单上附带分批止盈的止盈委托价不能相等,否则报错 51092
* 同一笔订单上附带分批止盈,其中限价止盈的止盈委托价 (tpOrdPx) 不能为 -1 (市价),否则报错 51093
* 币币、杠杆和期权交易不支持限价止盈,否则报错 51094
强制自成交保护
交易系统会以母账户维度实施强制自成交保护,同一母账户下所有账户,包括母账户本身和所有子账户,都无法进行自成交。订单的默认STP模式为`Cancel Maker`,用户亦可以通过下单接口的stpMode参数指定订单的STP模式。
强制自成交保护不会导致延迟。
有三种STP模式。STP模式始终基于taker订单中的配置。
1.Cancel Maker:这是默认的STP模式,系统撤Maker订单以防止自成交。然后,taker订单会基于深度继续和下一个订单成交。
2.Cancel Taker:撤Taker订单以防止自成交。如果用户的Maker订单不是深度里第一个订单,Taker订单会被部分成交,然后撤单。FOK订单会确保完全成交和自成交保护。
3.Cancel Both:撤Taker和Maker订单以防止自成交。如果用户的Maker订单不是深度里第一个订单,Taker订单会被部分成交,然后Taker订单的剩余数量和第一个自我Maker订单被取消。此模式不支持FOK订单。
5.卖出现货
# 卖出现货 sell spot
time.sleep(60)
result = tradeAPI.place_order(
instId='BTC-USDT',
tdMode='cash',
side='sell',
ordType='market',
sz="0.1" # 单位是BTC #The unit is BTC
)
print('卖出BTC:')
print(result)
print()
接口同上4,只是使用方法不同