繁簡切換您正在訪問的是FX168財經網,本網站所提供的內容及信息均遵守中華人民共和國香港特別行政區當地法律法規。

FX168财经网>人物频道>帖子

关于( ***在position中不存在,为了保持兼容

作者/爱汇小王子 2019-05-10 07:34 0 来源: FX168财经网人物频道

有不少同学对的出现类似上述的warning表示疑惑,在这里统一回复一下:

Ⅰ.???在position中不存在,为了保持兼容我们返回空的position对象

1,为什么出现上述warning呢?
    这是因为当我们使用context.portfolio.positions(字典类型) 时查询了一个并不存在于于这个字典的标的持仓信息,为了兼容不报错才出现的警告。比如,我们的仓位中没有000001这只股票,当我们调用  context.portfolio.positions['000001.XSHE']  时,就会提示 :
Security(code=000001.XSHE) 在 positions 中不存在, 为了保持兼容, 我们返回空的 Position 对象, amount/price/*g_cost 都是 0
(当然其他查询仓位信息的方法也会导致上边的问题,这里只举了一个最简单的例子)
   这些警告对策略本身运行并没有影响,但如果策略中有用到上述数据的有可能会引发逻辑上的问题(很小的可能性哦,和策略有关,一般可选择忽略)。

2, 如何避免看到此类警告呢?(非处女座请忽略)
   在调用上述方法前 ,先判断标的是否存在于上述对象中

 if  stock in context.portfolio.positions.keys():       print  context.portfolio.positions[stock]

3,卖出仓位中的所有标的:

for stock in context.portfolio.positions.keys():       order_target(stock,0)

11*d94ee7321393493f4fc138de2cf.png

506ab32825549f98d6749*eee9729d.png

Ⅱ.下单数量为0,订单取消/目标数量已经满足, 没有提交委托

一般有以下几种原因,并会在日志中提醒:
1, 使用了order_target或者order_target_value进行下单,仓位中标的的数量已经等于预期的数量,所以订单取消。
2, 下单的手数或下单所用的资金不足一手,调整为0,订单取消
3,  累计成交量为0,停牌,退市,未上市等原因

分享到:
举报财经168客户端下载

全部回复

0/140

投稿 您想发表你的观点和看法?

更多人气分析师

  • 张亦巧

    人气2208文章4145粉丝45

    暂无个人简介信息

  • 张迎妤

    人气1904文章3305粉丝34

    个人专注于行情技术分析,消息面解读剖析,给予您第一时间方向...

  • 指导老师

    人气1864文章4423粉丝52

    暂无个人简介信息

  • 李冉晴

    人气2320文章3821粉丝34

    李冉晴,专业现贷实盘分析师。

  • 梁孟梵

    人气2184文章3177粉丝39

    qq:2294906466 了解群指导添加微信mfmacd

  • 王启蒙现货黄金

    人气320文章3496粉丝8

    本人做分析师以来,并专注于贵金属投资市场,尤其是在现货黄金...

  • 金泰铬J

    人气2328文章3925粉丝51

    投资问答解咨询金泰铬V/信tgtg67即可获取每日的实时资讯、行情...

  • 金算盘

    人气2696文章7761粉丝125

    高级分析师,混过名校,厮杀于股市和期货、证券市场多年,专注...

  • 金帝财神

    人气4760文章8329粉丝119

    本文由资深分析师金帝财神微信:934295330,指导黄金,白银,...

FX168财经

FX168财经学院

FX168财经

FX168北美