今天中秋节,月亮嘛...每个月都会圆一次。美股这麽活跳,别烤肉了,认真准备明天开盘才是股海好青年,放下奈个酒杯,打开电脑吧。
今天聊聊关於下单order的相关参数。开始前,请先确认您已经备妥凭证(CA),放置在正确位置。不知道、不明了但很想要弄好我的CA,请参考这里。
把凭证CA档案存好之後,按照下列指令,确认CA设定正确:
result = api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx", #这一段改成自己的路径,最简单可以放在目前python专案的同一个资料夹,只要输入档名即可
ca_passwd="YOUR_CA_PASSWORD", #输入密码
person_id="Person of this Ca", #一样,输入身分证ID
)
print(result)
如果执行後看到回应True,就代表CA搞定罗!
首先是设定一个买入的order范例,这一步只是把order准备好,还没下单出去。
order = api.Order(
price=12, #价格
quantity=1, #数量
action=sj.constant.Action.Buy, #设定买进
price_type=sj.constant.StockPriceType.LMT, #设定限价单
order_type=sj.constant.TFTOrderType.ROD, #ROD/FOK/IOC设定
order_lot=sj.constant.TFTStockOrderLot.Common, #设定整股
account=api.stock_account #预设下单帐号
)
卖出的order范例
order = api.Order(
price=12,
quantity=1,
action=sj.constant.Action.Sell,
price_type=sj.constant.StockPriceType.LMT,
order_type=sj.constant.TFTOrderType.ROD,
order_lot=sj.constant.TFTStockOrderLot.Common,
account=api.stock_account
)
以下是order每一项参数的简述
项目(小括号是参数允许的资料形态) | 说明 (大括号是该项参数能选择的不同设定) | |
---|---|---|
price (float or int) | 设定价格 | |
quantity (int) | 数量 | |
action (str) | {Buy, Sell} 可选"买、卖" | |
price_type (str) | {LMT, MKT, MKP} 可选"限价、市价、范围市价" | |
order_type (str) | {ROD, IOC, FOK} 下单的挂单类别,不了解这三个是啥请看这里。 | |
order_cond (str) | {Cash, MarginTrading, ShortSelling} 可选"现股、融资、融券" | |
order_lot (str) | {Common, Fixing, Odd, IntradayOdd} 可选"整股、定盘、盘後零股、盘中零股" | |
first_sell {str} | {true, false} 如果要先卖後买(例如券空)就选True,要留意不是所有股票都能执行,并且融资券下单前要确认自己的帐户有申请信用交易 | |
account (:obj:Account) | 帐户设定,只能传回Account的格式,不清楚请参考第4天的文章,很简单的。 | |
ca (binary) | 如本篇第一段 |
最後,来一个先卖後买的完整下单范例:
import shioaji as sj
api = sj.Shioaji() #登入、设定凭证
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD", contracts_timeout=10000)
api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx",
ca_passwd="YOUR_CA_PASSWORD",
person_id="Person of this Ca",
)
contract = api.Contracts.Stocks.TSE.TSE2890 #抓取商品报价资料
#设定order内容与相关参数
order = api.Order(
price=14,
quantity=1,
action=sj.constant.Action.Sell,
price_type=sj.constant.StockPriceType.LMT,
order_type=sj.constant.TFTOrderType.ROD,
first_sell=sj.constant.StockFirstSell.Yes,
account=api.stock_account
)
trade = api.place_order(contract, order) #下单指令
trade
另一个盘中零股的完整删单范例,先执行这一段:
import shioaji as sj
api = sj.Shioaji()
accounts = api.login("YOUR_PERSON_ID", "YOUR_PASSWORD", contracts_timeout=10000)
api.activate_ca(
ca_path="/c/your/ca/path/Sinopac.pfx",
ca_passwd="YOUR_CA_PASSWORD",
person_id="Person of this Ca",
)
contract = api.Contracts.Stocks.TSE.TSE0050
order = api.Order(
price=90,
quantity=10,
action=sj.constant.Action.Buy,
price_type=sj.constant.StockPriceType.LMT,
order_type=sj.constant.TFTOrderType.ROD,
order_lot=sj.constant.TFTStockOrderLot.IntradayOdd,
account=api.stock_account,
)
trade = api.place_order(contract, order)
trade
接着是删单指令
api.update_status(api.stock_account)
api.cancel_order(trade)
api.update_status(api.stock_account)
trade
以下是改单的指令,要注意,这个范例是盘中零股,因此不能改价,只能改量。如果不了解盘中零股规则,详情请洽你的营业员。
api.update_status(api.stock_account)
api.update_order(trade=trade, qty=2)
api.update_status(api.stock_account)
trade
以上就是今天的分享,谢谢观看。
好了,好青年们,准备洗洗睡吧! 记得先入金,咱们明早08:45台股战场见。
<<: 从零开始学3D游戏开发:零件介面 Part.1 开始
关於: 本系列文将借用 Google 提供的 Colab 平台,在上面执行 30 个影像分类训练任务...
我们接续上一篇完成一些未完成的功能。 完成按钮 & 返回按钮 这两个按钮在整个篇章中,属於比...
太空狗闪躲陨石 教学原文参考:太空狗闪躲陨石 这篇文章会介绍,如何在 Scratch 3 里使用键盘...
使用WhatsApp Business API ,不但可以让企业能够以简单且安全可靠的方式,透过 ...
现在使用者对网页应用程序的要求越来越高,又要好看又要反应快。常见的做法是使用 AJAX 提升页面反应...