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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件高级功能研发区 → For 循环中,出现不同的结果

   

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


  共有2247人关注过本帖平板打印复制链接

主题:For 循环中,出现不同的结果

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


加好友 发短信
等级:黑侠 帖子:611 积分:0 威望:0 精华:0 注册:2015/9/11 9:51:55
  发帖心情 Post By:2021/3/27 22:05:43 [只看该作者]

改了红色的部分,其他不动,发行SZ000002可以正常输出数据

# 可以自己import我们平台支持的第三方python模块,比如pandas、numpy等。

#比较简单的根据市值前五买入的策略,只选取排名前5的进行轮动调仓。
#使用前注意补充好300样本股历史数据及专业财务数据
#推荐使用000001上证指数做基准合约

import time
import os
import csv
import numpy as np
import talib as ta
import math


# 在这个方法中编写任何的初始化逻辑。context对象将会在你的算法策略的任何方法之间做传递。
def init(context):
    #买入的股票数
    context.num = 5
    context.code = []
   
# before_trading此函数会在每天策略交易开始前被调用,当天只会被调用一次
def before_trading(context):
    #选取300成份样本股作为股票池
    try:
        context.code = get_blocks("沪深300样本股",1)

    except:
        pass

# 你选择的证券的数据更新将会触发此段逻辑,例如日或分钟历史数据切片或者是实时数据切片更新
def handle_bar(context):
    # 开始编写你的主要的算法逻辑
    try:
   
        usercode = []
        dd = ['sz000002']
        for i in dd:
           
            zgb80 = get_finance(i,1,3,4,0)  #总股本
            #print([zgb8[-1].values,zgb8[-2].values,zgb8[-3].values])
            #print(i)
            if len(zgb80)>2:
                usercode.append(i)
                print(111)

                zgb8 = ZGB([i],context.now.year)              
                zgb1 = zgb8[-1] #a股总股本,万股
                zgb2 = zgb8[-2]
                zgb3 = zgb8[-3]
                print(zgb8)

    except:
        pass

def ZGB(x,ye):
    main_path = "d:/jztuser/"
    if not os.path.exists(main_path):
        os.mkdir(main_path)
    yFilename = 'd:\\jztuser\\' +'year' + x[0] +  '.txt'   
    yFile = open(yFilename,'a+')
    yFile.writelines(str(ye)+"\n")
    yearlist=[]
    f=open(yFilename,'r')

    yearlist = f.readlines()
    yearlist = [int(x)for x in yearlist]
   
    zgb8 = get_finance(x[0],1,3,4,0)  #a股总股本
    if len(yearlist)>1 and len(zgb8)>0:

        if ye > yearlist[-1]:

            zFilename ='d:\\jztuser\\'+ 'zgb' + x[0]  + '.txt'
            zFile0 = open(zFilename,'a+')
            zFile0.writelines(str(zgb8[-1].values)+"\n")
            zFile = open(zFilename,'r')

            zgblist=[]
            zgblist = zFile.readlines()
            #print(zgblist0)
            zgblist = [float(y)for y in zgblist]
            #for y in zgblist0:
                #   zgblist.append(float(y))
            zgblist.append(zgb8[-1].values)   
       
    return zgblist  #返回总股本数据列表

# after_trading函数会在每天交易结束后被调用,当天只会被调用一次
def after_trading(context):
   
    pass


 回到顶部
总数 11 1 2 下一页