金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 3036|回复: 4

程序崩溃了,麻烦查一下什么原因 谢谢

[复制链接]

30

主题

100

帖子

110

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
发表于 2024-1-5 14:05 | 显示全部楼层 |阅读模式
WinStock.dmp (145.69 KB, 下载次数: 11043)
回复

使用道具 举报

0

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
gxx978
发表于 2024-1-5 14:15 | 显示全部楼层
你本地的崩溃现象是稳定重现的吗?你的软件版本是多少,大致是在什么操作下出现的,还是在程序化交易过程中出现的?单看这个日志文件不一定能跟踪到原因。一般软件崩溃是和计算负荷过大有关,可以参数最简化测试的方法,比如只运行单个品种,看减少运算量的情况是否会有崩溃,然后逐步增加运算量。如果简化后崩溃的现象还是频繁或者是有规律的出现,可以把软件环境给我们,这样跟踪崩溃的问题会更快速一些。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

100

帖子

110

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-1-5 14:23 | 显示全部楼层
技术010 发表于 2024-1-5 14:15
你本地的崩溃现象是稳定重现的吗?你的软件版本是多少,大致是在什么操作下出现的,还是在程序化交易过程中 ...

#context.universe是全部深圳可转债,运行的2023/12/29的数据

# 本Python代码主要用于策略交易
# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。
from PythonApi import *
import pandas as pd;
import numpy as np;
#  参数定义区,这里定义的参数可以直接在context对象中获取。--(选择实现)
#def parameter():
#    input_par("myvalues1",5,1,20,1)
#    input_par("myvalues2",10,1,20,1)


#  在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。--(必须实现)
def init(context):
    # 在context中保存全局变量
    #context.s1 = "SZ000001"   #平安银行股票
    #print(context.run_info.base_book_id)
    context.vols1 = pd.Series(index=context.universe)
    context.vols2 = pd.Series(index=context.universe)
    context.cand1 = pd.Series()
    context.cand2 = pd.Series()
   

# before_trading此函数会在每天基准合约的策略交易开始前被调用,当天只会被调用一次。--(选择实现)
def before_trading(context):  
    pass


# 你选择的品种的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新。--(必须实现)
def handle_bar(context):
    for bond in context.universe:
        tmp = history_bars(bond,context.now.minute-30,'1m','volume', True, include_now=False, adjusted_price=False)
        if len(tmp)==0:
            context.vols1[bond]=0
        else:
            context.vols1[bond]=np.sum(tmp)
    context.cand1 = context.vols1.sort_values(ascending=False).iloc[:20]
    print(context.cand1)  
#    if context.now.hour==9 and context.now.minute==36:
#        for bond in context.universe:
#            tmp = history_bars(bond,5,'1m','volume', True, include_now=False, adjusted_price=False)
#            if len(tmp)==0:
#                context.vols1[bond]=0
#            else:
#                context.vols1[bond]=np.sum(tmp)
#        context.cand1 = context.vols1.sort_values(ascending=False).iloc[:20]
#        print(context.cand1)
#        
#    if context.now.hour==14 and context.now.minute==58:
#        for bond in context.universe:
#            tmp = history_bars(bond,1,'237m','volume', True, include_now=True, adjusted_price=False)
#            if len(tmp)==0:
#                context.vols2[bond]=0
#            else:
#                context.vols2[bond]=tmp[0]
#        context.cand2 = context.vols2.sort_values(ascending=False).iloc[:20]
#        print(context.cand2)
#        print(context.cand2.index.intersection(context.cand1.index))
        
        
        
               
    # 开始编写你的主要的算法逻辑。
   
    #使用buy_open、sell_close等方法下单
    #下单示例:
    #buy_open(context.s1, "Market", volume = 100)    #  市价开多
    #buy_open(context.s1, "Limit", 25.45, 100)       #  限价开多
    pass
   
   
# after_trading函数会在每天交易结束后被调用,当天只会被调用一次。 --(选择实现)
def after_trading(context):
    pass
   
   
# order_status当委托下单,成交,撤单等与下单有关的动作时,该方法就会被调用。---(选择实现)
#def order_status(context,order):
#    pass

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

# exit函数会在测评结束或者停止策略运行时会被调用。---(选择实现)
#def exit(context):
#    pass
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2024-1-5 15:16 | 显示全部楼层
本帖最后由 技术006 于 2024-1-5 15:20 编辑

tmp = history_bars(bond,context.now.minute-30,'1m','volume', True, include_now=False, adjusted_price=False)

context.now.minute-30这个做法存在负数,,函数history_bars取负n根数据造成的程序崩溃。
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

30

主题

100

帖子

110

积分

Rank: 2

等级: 标准版

注册:
2023-2-16
曾用名:
 楼主| 发表于 2024-1-5 15:24 | 显示全部楼层
技术006 发表于 2024-1-5 15:16
tmp = history_bars(bond,context.now.minute-30,'1m','volume', True, include_now=False, adjusted_price ...

谢谢!恍然大悟
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-8-21 17:51 , Processed in 0.104584 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表