问答交流

关于交易模块的代码问题

由yewfei创建,最终由small_q 被浏览 16 用户

有4个疑问求各位大佬帮忙解答一下:

  1. Q1:关于持仓股的首次买入时间和最后一次买入的时间问题,不清楚这个日期如何获取,看到了Positions里面有个last_*sale_*date,不是很清楚这个日期是什么,看说明是最新的一个交易日对应last_*sale_*price?

    \

  2. Q2:context.options['hold_days']这个设置的是持仓周期是吗?那通过问题1,我如何求我某只股票拿了多少个交易日呢?需要剔除节假日和休息日,没有找到对应的方法去求这个数据。

    \

  3. Q3:如果希望涨停不卖出,那么应该是在盘前处理函数里面设置呢?还是需要在主函数里面设置,这两个会不会起冲突?以哪个为准?

    \

  4. Q4: 持有天数,按平台逻辑买入日第二天盘中的值是1还是2?


实在是没有找到对应的资料,求解答,谢谢!

标签

交易
评论
  • 1\.last*_sale_date 是最近交易的时间,第一次交易时间可能需要自己去记录* 2\.context.options是去获取传入到trade模块的数据,一般设置持仓周期和其他全局变量一样设置 (context.hold_*days = 5)用context.* trading_day*index是按交易日计数 除以 context.hold*_days余数为0可以进行交易日5天调仓. 3\.在盘前处理函数判断涨停后取消下单可以实现 ```python # 获取涨跌停状态数据 df_price_limit_status = context.ranker_prediction.set_index('date') today=data.current_dt.strftime('%Y-%m-%d') # 得到当前未完成订单 for orders in get_open_orders().values(): # 循环,撤销订单 for _order in orders: ins=str(_order.sid.symbol) try: #判断一下如果当日涨停,则取消卖单 if df_price_limit_status[df_price_limit_status.instrument==ins].price_limit_status_0.ix[today]>2 and _order.amount<0: cancel_order(_order) print(today,'尾盘涨停取消卖单',ins) except: continue ``` 4\.当天买入 第二天持有1天。
  • 感谢解答,但是对于问题2还是有一些小疑问,不懂如何应用,能否举例看看,我不明白如何计算个股的持仓周期,不清楚哪里入参日期去计算,是否有详细点的文档或者demo,还有问题3,盘前处理的话,那实盘是不是无法使用,实盘如何解决这个问题呢?
{link}