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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → 在写Python 策略时候回测结果没有出来,可能是什么情况

   

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


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

主题:在写Python 策略时候回测结果没有出来,可能是什么情况

帅哥哟,离线,有人找我吗?
qq代人发帖
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:18691 积分:0 威望:0 精华:0 注册:2013/7/15 9:22:16
在写Python 策略时候回测结果没有出来,可能是什么情况  发帖心情 Post By:2019/3/29 9:51:21 [只看该作者]

在写Python 策略时候回测结果没有出来,可能是什么情况

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2019/3/29 9:58:27 [只看该作者]

 测试用的品种数据有补充过吗?


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
lymql
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:73 积分:0 威望:0 精华:0 注册:2019/3/28 11:42:31
  发帖心情 Post By:2019/3/29 10:13:15 [只看该作者]

FireScript你好,可以给下联系方式吗,问题比较多

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


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

就在这边咨询就可以了,如果是python的基础问题这个需要您自己学习了

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


加好友 发短信
等级:新手上路 帖子:73 积分:0 威望:0 精华:0 注册:2019/3/28 11:42:31
  发帖心情 Post By:2019/3/29 14:56:08 [只看该作者]

首先我代码是这样的:
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
import talib as tb
import datetime
from dateutil.relativedelta import relativedelta

#  参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)
#def parameter():
#    input_par("myvalues1",5,1,20,1)
#    input_par("myvalues2",10,1,20,1)


#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    context.s1 = "SQAG00"   # 平安银行股票
    # 定义开盘时间(9:00)
    context.start_time = '900'
    # 定义开盘30分钟后的时间(9:30)
    context.out_time = '930'
    # 30条数据最高价和最低价
    context.stage_high = 0
    context.stage_low = 0
    # print("策略启动") #调试打印输出
    print('策略启动')
    

# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):
    # TOOD:获取30天内历史开盘数据
    # 获取前期最高价和最低价SQAG00
    bar_len = 30
    hb_high = history_bars(context.s1, bar_len, '1d','high')
    # 获取30条数据最高价
    data_list = list(hb_high)
    context.stage_high = max(data_list)
    context.stage_low = min(data_list)
    

# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
    # 开始编写你的主要的算法逻辑。
    
    #使用buy_open、sell_close等方法下单
    #下单示例:
    #buy_open(context.s1, "Market", volume = 100)    #  市价开多
    #buy_open(context.s1, "Limit", 25.45, 100)       #  限价开多
    
    # 获取当前价格
    nowPrice = get_dynainf(context.s1,7)
    print(nowPrice)
    # 如果大于前期最高价
    if nowPrice > context.stage_high:
        # 买入
        buy_open(context.s1, "Market",0 ,1000)
    elif nowPrice < context.stage_low:
        # 卖出
        sell_close(context.s1, "Market",nowPrice ,1000)
    
    
    
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现)
def after_trading(context):
    print('交易已经结束')

    
    
# order_status当委托下单,成交,撤单等与下单有关的动作时,该方法就会被调用。---(选择实现)
#def order_status(context,order):
#    pass

# order_action当查询交易接口信息时返回的通知---(选择实现)
#def order_action(context,type, account, datas)
#       pass

# exit函数会在测评结束或者停止策略运行时会被调用。---(选择实现)
#def exit(context):
#    pass
运行的时候我是这样运行的:
测试时段:3-20-->3-29 1分钟
基准合约:SQG00
品种:白银连续
补充过数据
有调试结果,没有回测数据

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


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

自己输出下你的条件,最高价等都是多少
python的策略需要客户有一定的调试能力,恕这边没绑法帮您一一输出调试
[此贴子已经被作者于2019/4/1 9:28:06编辑过]

 回到顶部