美文网首页
python积累1

python积累1

作者: 黄yy家的jby | 来源:发表于2018-12-08 22:33 被阅读0次

    摘要

    • 读特定sheet特定行的excel,设定时间轴
    • 时间轴索引
    • 更改非交易日的调仓时间
    • 找离得最近的rollingtime
    • 更高位加仓,更低位减仓

    1.读文件,设定轴

    df_pb = pd.read_excel('指数行业估值跟踪.xlsx',sheetname='pb',skiprows= 3)
    #从第三行开始读
    df_pb.set_index(['Date'],inplace=True)
    

    2. 时间索引

    time_list = df_pb.index
    df_pb.loc[time_list[0],'position']
    df_pb.loc[pd.to_datetime('20100101'),'position']
    

    3.更改调仓时间

    由于设定的调仓有可能不是交易日,需要进行实际调整

    reallocation_time = []
    a = [b for b in time_list if b.month in [5,9,11]]
    for i in range(1,len(a)):
        if a[i].month != a[i-1].month:
            reallocation_time.append(a[I])
    
    • 先找到一个完整交易的时间序列time_list
    • 找到设定调仓日期的月份的交易序列a
    • 由于设定的是5月9月11月期初,所以只需要将不同月份的提出来即可

    4. 寻找离得最近的rollingtime

    temp = [a for a in reallocation_time if a<= time_list[i]][-1]
    
    • 时间是可以进行比较的
    • 用[-1]表示最后一个,即最后一个小于当前时间的rollingtime

    5. 高于更高的加仓,低于更低的减仓

    max_n = min_n = 0
    for i in range(len(timelist)):
        n = int((np.average(df_index.loc[time_list[i]])/np.average(df_index.loc[temp])-1)/0.1) 
        #n表示变化是10%的多少倍
        if n > max_n:
            max_n = n
            result.loc[time_list[i],'signal'] = 1
        if n < min_n:
            min_n = n
            result.loc[time_list[i],'signal'] = -1
    

    6.写入

    with open('guoguo.jpg',encoding='utf-8') as f:
            f.write(content)
            f.close()
    

    7.dataframe 是否存在多值索引

    df2[df2['E'].isin(['two', 'four'])]
    
    多值索引

    相关文章

      网友评论

          本文标题:python积累1

          本文链接:https://www.haomeiwen.com/subject/vdechqtx.html