量化交易入门笔记-策略下单函数

按股数下单函数

语法:

order(security, amount, style=None, side='long', pindex=0)

各项参数的意义:

  • security-标的代码
  • amount-交易数量,正数表示买入,负数表示卖出
  • style-下单类型,有两种
    • 市价单 (MarketOrder)。市价单是指不论价格,接下单,直到交易全部完成。
    • 限价单 (LimitOrder) 。限价单是指定一个价格,买入时不能高于它,卖出时不能低于它,如果不能满足,则等待满足后再交易。
    • 默认情况下为市价单,即None表示MarketOrder
  • side-用来指定开多单,还是空单。其中long表示开多单,short表示开空单。默认为 long,即开多单。需要注意的是,股票和基金暂不支持开空单
  • pindex-在使用set_subportfolios创建了多个仓位时,指定subportfolio的序号,从0开始。默认为0

按股数下单函数,如果创建订单成功,则返回Order对象,失败则返回None

实例代码:

买入平定银行股票100股

order('000001.XSHG', 100)

下一个市价单

order('000001.XSHG', 100, MarketOrderStyle())

以10元价下一个限价单

order('00001.XSHG', 100, LimitOrderStyle(10.0))

目标股数下单函数

语法:

order_target(security, amount, style=None, side='long', pindex=0)

目标股数下单函数与按股数下单函数的参数几乎一样,只有第二个参数amount表示的意义不一样。这里amount指期望的最终数量

该函数如果创建订单成功,则返回Order对象,失败则返回None

实例代码:

卖出平安银行所有股票,即最终持有平安银行的股数为0

order_target('000001.XSGH', 0)

买入平安银行所有的股票到100股,即最终持有平安银行的股票数为100股

order_target('000001.XSHG', 100)

按价值下单函数

语法:

order_value(security, value, style=None, side='long', pindex=0)

按价值下单函数与按股数下单函数的参数几乎一样,只有第二个参数不一样,这里的value表示价值(也就是多少钱),即卖出多少钱的股票或买入多少钱的股票

该函数如果创建订单成功,则返回Order对象,失败则返回None

实例代码:

卖出价值为10000元的平安银行的股票

order_value('000001.XSHG', -10000)

买入价值为10000元的平安银行股票

order_value('000001.XSHG', 10000)

目标价值下单函数

语法:

order_target_value(security, value, style=None, side='long', pindex=0)

目标价值下单函数与按股数下单函数的参数几乎一样,只有第二个参数value的意义不一样,这里的value指表示期望的股票的最终价值,也就说将股票买入或卖出直到持有价值(钱)为某个数量为止

该函数如果创建订单成功,则返回Order对象,失败则返回None

实例代码:

卖出平安银行所有股票

order_target_value('000001.XSHG', 0)

调整平安银行股票仓位到10000元价值

order_target_value('000001.XSHG', 10000)

撤单函数

语法:

cancel_order(order)

参数order是指Order对象或者order_id。

撤单指取消委托,如果取消委托成功,则返回 Order 对象,如果委托不存在,则返回None

实例代码:

假设将撤单功能放在一个自定义的函数里

# 该函数在每个交易日结束时运行
# 即将当天盘中下单未成功的订单撤单
def after_trading_end(context):
    # 获取当前未完成的订单
    orders = get_open_orders()
    # 通过循环,将所有未完成的订单撤单
    for _order in orders.values():
        cancel_order(_order)

获取未完成订单函数

语法:

get_open_orders()

该函数可获得当天所有未完成的订单。

实例代码:

# 该函数在每个交易日结束时运行
# 即将当天盘中下单未成功的订单撤单
def after_trading_end(context):
    # 获取当前未完成的订单
    orders = get_open_orders()
    # 通过循环,将所有未完成的订单撤单
    for _order in orders.values():
        cancel_order(_order)

获取订单信息函数

语法:

get_orders(order_id=None, security=None, status=None)

该函数可以获取当天所有的订单(get_open_orders只能获取当天所有未完成的订单)】

参数意义:

  • order_id - 订单 id
  • security - 标的代码,可以用来查询指定标的的所有订单
  • status - 表示订单状态,可以查询特定订单状态的所有订单

实例代码:

def after_trading_end(context):
    # 得到当天所有订单
    orders = get_orders()
    for _order in orders.values():
        log.info(_order.order_id)
    # 根据订单id查询订单
    get_orders(order_id='1517627499')
    # 查询所有标的为 000002.XSHG 的订单
    get_orders(security='000002.XSHG')
    # 查询订单状态为 OrderStatus.held 的所有订单
    get_orders(status=OrderStatus.held)
    # 查询标的为 000002.XSHG 且状态为 OrderStatus.held 的所有订单
    get_orders(security='000002.XSHG', status=OrderStatus.held)

获取成交信息函数

语法:

get_trades()

该函数获取当天所有的成交记录。需要注意的是,一个订单可能分多次成交

实例代码:

def after_trading_end(context):
    # 得到当天所有成交记录
    trades = get_trades()
    for _trade in trades.values():
        log.info(_trade.trade_id)

注:本文章为个人学习笔记,参考了一些书籍与官方教程,不作任何商业用途!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,922评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,591评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,546评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,467评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,553评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,580评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,588评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,334评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,780评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,092评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,270评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,925评论 5 338
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,573评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,194评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,437评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,154评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,127评论 2 352

推荐阅读更多精彩内容