您现在的位置:程序化交易>> 期货公式>> 金字塔等>> 金字塔知识>>正文内容

请问一下是否会出现在一台电脑上能够回测运行的python程序在另外一台电脑上会出现不报错但没有交易的情况 [金字塔]

  • 咨询内容: 我帮我的一位朋友写的一个程序,我自己电脑上在金字塔里写的程序在我自己电脑上用沪深300股票池回测今年1月到现在为止,是有具体数据的,但是把这个程序放到我的朋友那边去跑,没报错,但是就是没有具体的回测情况,就是没交易过,显示为都为0,但我这边是有的从2019.1.2到2019.6.1,300W资金,收益23.8W我把程序贴出来,请帮我看一下你们那边能不能跑出来,看一下又没有问题如果能跑出来,请问有什么原因可能导致了我写的程序在朋友那边跑起来没效果(数据什么的补充过了,用均线交易系统试过了,是能跑起来的有交易数据的)比如有版本问题什么的

    import timeimport os import csvimport numpy as npimport mathimport talib as tafrom datetime import date
    def init(context):    # 在context中设置一些参数    context.s1 = context.universe    #价格时间周期长度,其中包括了当日价格,所以要选取N天前的数据,则需要N+1    context.period =1000    context.code=[]    #print(context.universe)  查看是否能读取合约池里的股票,成功    # before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次def before_trading(context):    pass

    # 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新def handle_bar(context):    # 开始编写你的主要的算法逻辑
        # bar_dict[order_book_id] 可以拿到某个证券的bar信息    # context.portfolio 可以拿到现在的投资组合信息
        # 使用order_shares(id_or_ins, amount)方法进行落单
        # TODO: 开始编写你的算法吧!    #价格时间周期长度,其中包括了当日价格,所以要选取N天前的数据,则需要N+1    #金字塔的时间序列是正向序列,是按远到近排序的,为了方便可以反向取值    for id in context.s1:        try:            close = history_bars(id,200, '1d', 'close')   #股票收盘价时间序列            open = history_bars(id,50, '1d', 'open')   #股票开盘价时间序列            low = history_bars(id,50, '1d', 'low')            count=0                                    #用来统计前三天low小于MAX的天数            buy_quantity=get_portfolio(id,2).buy_quantity     #持仓数量            pnl=get_portfolio(id,2).pnl                       #收益盈亏            holding_price=get_portfolio(id,2).buy_avg_holding_price  #持仓成本                                close_today=close[-1]                               #当前的收盘价,如果还在交易时间内,则显示的是当前价格            close_yesterday=close[-2]                            #昨天的收盘价            ma10=ta.SMA(close,10)                               #10日简单移动平均线            ma60=ta.SMA(close,60)                               #200日简单移动平均线            EMA13=ta.EMA(close,13)                              #13日指数移动平均线            EMA25=ta.EMA(close,25)                              #25日指数移动平均线            MAX=max(EMA13[-1],ma10[-1])            #print(context.now)            #print(close_yesterday)            #print(EMA13[-1])            #print(EMA25[-1])            #print(ma200[-1])            #print(ma10[-1])            #print(open[-1])            #print(max(EMA13[-1],ma10[-1]))            #print(low[-1]);             for i in range(3):                if low[-1-i]<max(EMA13[-1-i],ma10[-1-i]):                    count=count+1                else:                    pass            #print(count)                               if buy_quantity==0:                if close_yesterday>EMA13[-1] and EMA13[-1]>=EMA25[-1]  and close_today>ma60[-1] and close_yesterday>ma10[-1] and open[-1]>=MAX and low[-1]<=MAX and count==1:                        buy_open(id,"Market",0 ,0,100000,serial_id = 1)                        #print("EMA策略购买")            #print(1)                if buy_quantity!=0:                if (pnl/(holding_price*buy_quantity))>0.2 or (pnl/(holding_price*buy_quantity))<-0.08:                        #print(id)                         #和下面式子一起使用可以看哪只股票盈亏多少                        #print(pnl/(holding_price*buy_quantity))                        sell_close (id,"Market",0,buy_quantity,0)        except:                pass    #print(portfolio.buy_quantity)    #print(portfolio.buy_avg_holding_price)           #print(portfolio.buy_avg_holding_price)
        # after_trading函数会在每天交易结束后被调用,当天只会被调用一次def after_trading(context):    pass


     

     来源: CXH99.COM

  • 金字塔客服:

    回测有结果的。你可以在对应的品种上右键“数据”看下对应的周期数据是否真下载下来。

     

  • 用户回复: 当时发现跑不起来之后,我们就重新下载了数据,然后先用系统自带的均线交易系统跑了一下沪深300池,发现是有交易的,然后再去跑我写的,结果却没有,所以感觉很奇怪,而且不是一台电脑这样,朋友两台电脑都试了一下,由于我是远程连接帮忙弄的,所以没现场看过,但一般来说也不会出现这种问题吧,所以来问问,之后大概是要去现场弄一下的,想提前来问一下是不是有什么可能性导致这样的情况

     

  • 网友回复: 1,检查数据是否齐全,要鼠标右键->数据-》打开相应的数据查看一下本地到底补齐了没有2,测试报告上点击委托明细,看一下是否有具体的委托记录3,自行使用print进行打印调试,看具体第一笔交易为什么没有出现委托下单条件

     

  • 网友回复: 你好,请问跑完程序以后能不能说一下它的收益大致是多少,沪深300池,300W本金,时间2017.1.1到现在,我需要对照一下我这边看看有没有什么的大区别

 

有思路,想编写各种指标公式,交易模型,选股公式,还原公式的朋友

可联系技术人员 QQ: 262069696  点击在线交流或微信号:cxh99cxh99  进行 有偿收费 编写!

怎么收费,代编流程等详情请点击阅读!

(注:由于人数限制,QQ或微信请选择方便的一个联系我们就行,加好友时请简单备注下您的需求,否则无法通过。谢谢您!)


【字体: 】【打印文章】【查看评论

相关文章

    没有相关内容