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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → py回测的疑虑

   

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


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

主题:py回测的疑虑

帅哥哟,离线,有人找我吗?
wzywzy292
  11楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:318 积分:1688 威望:0 精华:0 注册:2009/11/25 0:53:49
  发帖心情 Post By:2019/5/6 11:29:05 [只看该作者]

 我可能没有说清楚

我的意思是:

在用同一个指标的情况下(例如“均线交叉”),

用pel作的交易系统其开平仓的位置和用py作的交易系统(例如py调用“均线交叉”)其开平仓的位置不同。

用pel交易系统经测试没有问题。谢谢。

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


加好友 发短信
等级:论坛游侠 帖子:318 积分:1688 威望:0 精华:0 注册:2009/11/25 0:53:49
  发帖心情 Post By:2019/5/6 13:05:29 [只看该作者]

3楼反映的问题希望能查一下,谢谢。

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


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

请调试下条件数值,本地这边测试下来都没有问题

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


加好友 发短信
等级:论坛游侠 帖子:318 积分:1688 威望:0 精华:0 注册:2009/11/25 0:53:49
  发帖心情 Post By:2019/5/6 15:47:07 [只看该作者]

  调用指标中不存在的指标线名也没有问题?谢谢。

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


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

没有问题,但是取不到值

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


加好友 发短信
等级:论坛游侠 帖子:318 积分:1688 威望:0 精华:0 注册:2009/11/25 0:53:49
  发帖心情 Post By:2019/5/7 18:14:10 [只看该作者]

# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *

#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    context.s1 = "IF00"  
   
# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
    pass

# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context):
    # 开始编写你的主要的算法逻辑

    mr=get_indicator(context.s1,'均线交叉','MYKD', '5,15,20','1d',30)   
    pd=get_indicator(context.s1,'均线交叉','MYPD', '5,15,20','1d',30)      
    portfolio=get_portfolio(context.s1,0)   #获取持仓量
                                           
    if mr[-1]==1 and portfolio.sell_quantity==0 and portfolio.buy_quantity==0:                               # 开多成立并持仓为0
        buy_open(context.s1, "Market",0,1)                                                                                             # 开多1手
    if pd[-1]==1 and portfolio.buy_quantity==1:
        sell_close(context.s1,"Market",0,1)
             
pass
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
    pass
 
您好:能否百忙中帮忙回测上面的模型,回测时段是2015.1.1 ~2015.5.30 ,品种是IF00,
,请看一下是2015.5.8有平多信号还是2015.1.30有平多信号,谢谢。


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


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

如图,请自行代码里去输出调试下条件,我相信对于有一定编码能力的用户,用print输出下引用的条件值不是一个难点


图片点击可在新窗口打开查看此主题相关图片如下:1557276893(1).jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:论坛游侠 帖子:318 积分:1688 威望:0 精华:0 注册:2009/11/25 0:53:49
  发帖心情 Post By:2019/5/8 9:17:32 [只看该作者]

 先谢谢,您的这个回测结果和我的一致,但问题是如果用pel的交易系统回测,则结果是不同的,请您有空作个回测,再谢谢。

input:a(5),b(15),n(20);

KD:=CROSS(MA(C,a),MA(C,b));          //开多条件
PD:=CROSS(MA(C,n),MA(C,a));          //平多条件
KK:=CROSS(MA(C,b),MA(C,a));          //开空条件
PK:=CROSS(MA(C,a),MA(C,n));          //平空条件

开多:BUY(KD AND HOLDING=0,1,LIMITR,C);               //开多信号
平多:SELL(PD,1,LIMITR,C);                                             //平多信号
开空:BUYSHORT(KK AND HOLDING=0,1,LIMITR,C);     //开空信号
平空:SELLSHORT(PK,1,LIMITR,C);                                  //平空信号

回测时段还是2015.1.1 ~2015.5.30 ,品种是IF00。

我的回测是2015.1.30有平多信号,而不是2015.5.8有平多信号。

二个系统用的是相同的指标,也都在2015.1.27发出了开多的信号,但平多信号却不同。困惑中,非常感谢。

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


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

电话我021-20339087
你在图表上限制从2015-01-01开始就行了,理解下测试时间起点不同结果不同的道理啊, 还有问题电话我把

 回到顶部
总数 19 上一页 1 2