欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → Python策略交易指令为什么没有执行

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3585人关注过本帖树形打印复制链接

主题:Python策略交易指令为什么没有执行

帅哥哟,离线,有人找我吗?
投资老友-WAN
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:217 积分:390 威望:0 精华:0 注册:2012/11/3 10:14:55
Python策略交易指令为什么没有执行  发帖心情 Post By:2019/1/11 12:08:49 [只看该作者]

我编的Python模块的策略在免费版和标准版的金字塔上运行时,交易语句没有执行,是在实盘上运行模拟账户,Handle Bar段的代码是:

    Trade=[] 
    for i in context.Label:
        Trade1 = getextdata(i)
        if Trade1 is not(None):
            Trade.append( Trade1 )
            write_logging (i)
            print (Trade1)
        portfolio=get_portfolio (i,0)
        buy_position = portfolio.buy_quantity
        sell_position = portfolio.sell_quantity
        write_logging("Buy position")
        print (buy_position)
        print (context.PO)
        if Trade1==1:
            if sell_position>0:
                buy_close(i, "Market",0,volume=sell_position)
            if buy_position>0 and buy_position<context.PO:
                buy_open(i, "Market", 0, volume=context.PO-buy_position)
            if buy_position>context.PO:
                sell_close(i, "Market",0,volume=buy_position-context.PO)
            if buy_position==0:
                buy_open(i, "Market",0,volume=context.PO)
        if Trade1==0:
            if buy_position>0:
                sell_close(i, "Market",0,volume=buy_position)
            if sell_position>0:
                buy_close(i, "Market",0,volume=sell_position)
        if Trade1==-1:
            if buy_position>0:
                sell_close(i, "Market",0,volume=buy_position)
            if sell_position>0 and sell_position<context.PO:
                sell_open(i, "Market", 0, volume=context.PO-sell_position)
            if sell_position>context.PO:
                buy_close(i, "Market",0,volume=sell_position-context.PO)
            if sell_position==0:
                sell_open(i, "Market", 0, volume=context.PO)

 

说明一下,context.Label是我的合约池,从全局变量得到原来金字塔策略指标的开平仓信号Trade1,然后根据Trade1信号与账户实际仓位发出开平仓指令,合约池的合约代码,全局变量得到的Trade1,都Print出来看了没有问题,有几个品种的Trade<>0且账户无仓位,但是运行中无任何交易发生,请帮分析一下是什么问题???

 


 回到顶部
帅哥哟,离线,有人找我吗?
FexTel
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:5960 积分:0 威望:0 精华:2 注册:2014/6/12 11:29:04
  发帖心情 Post By:2019/1/11 14:39:40 [只看该作者]

Handle _BAR 里面prinr是已经触发了? 交易日志有没有记录,看是不是下单触发了但是其它原因导致没下单


金字塔—专业程序化交易量化投资平台

产品部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
投资老友-WAN
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:217 积分:390 威望:0 精华:0 注册:2012/11/3 10:14:55
  发帖心情 Post By:2019/1/11 14:50:39 [只看该作者]

Handle Bar触发了,这段代码的Print都显示了,交易日志上显示有信号,但没有交易。我用Get_Account也得到了打开的模拟账户账号,证明账户打开的。
图片点击可在新窗口打开查看此主题相关图片如下:捕获2.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
投资老友-WAN
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:217 积分:390 威望:0 精华:0 注册:2012/11/3 10:14:55
  发帖心情 Post By:2019/1/11 15:00:59 [只看该作者]

仔细看一下这个交易日志,市价指令,price=0应该没有问题,但是Accout账号好像没有传递过去。但我在代码里用Get_Account读取过账户,有可以读出账号
图片点击可在新窗口打开查看此主题相关图片如下:捕获3.jpg
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2019/1/11 20:26:24 [只看该作者]

print (context.PO)
print(i)

buy_open(i, "Market",0,volume=context.PO)

 

把下面逻辑注释掉,用这个测试下呢,看下输出数量和品种代码都是怎么样


 回到顶部
帅哥哟,离线,有人找我吗?
投资老友-WAN
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:217 积分:390 威望:0 精华:0 注册:2012/11/3 10:14:55
  发帖心情 Post By:2019/1/15 8:47:14 [只看该作者]

我找到了原因,在我程序中,品种代码(如SQRB05)是从我一个选股程序的结果txt文件读出的,后面带了(/N)换行符号,看不出来,但交易指令识别不了,去掉换行符以后就没问题了

 回到顶部