icney 2022-02-15 10:28 采纳率: 100%
浏览 38
已结题

【Python】关于想在表格里提取同种代码的股票,然后各自去运行命令,结果没有很好的思路

问题遇到的现象和发生背景

本来计算了MACD指标,但是忽然意识到取了500个不同的股票,这样的话i是累次增长的?所以我想是不是应该分别提取出来不同代码的股票,再去计算想算的指标,但是没有什么实现的办法。

问题相关代码(这个就是算MACD的代码)
import pandas as pd
import numpy as np
import datetime
import time
new_total=new_total.rename(columns={'月收盘价':'close'})  #改变列名,方便后续操作
def get_EMA(close,N):
    ema = []                  
    for i in range(len(close)):   
        if i==0:
            ema.append(0) 
        if i>0:
            ema.append(round((2*close[i]+(N-1)*ema[i-1])/(N+1),3))   
    return ema
def get_MACD(new_total, short=12, long=26, M=9):    
    a=get_EMA(new_total.close,short)
    b=get_EMA(new_total.close,long)
    new_total['dif']=pd.Series(a)-pd.Series(b)    
    dea = []
    for i in range(len(new_total)):     #lenclose或者new_total都可以
        if i==0:
            dea.append(0)
        if i>0:
            dea.append(round((2*new_total['dif'][i]+(M-1)*dea[i-1])/(M+1),3))  
    new_total['dea'] = dea
    new_total['macd']=2*(new_total['dif']-new_total['dea'])
    return new_total
get_MACD(new_total,12,26,9)
new_total
运行结果及报错内容

其实就是发现了之前说的问题,但是没有解决的办法,于是想问一下大家,谢谢大家♥♥

img

  • 写回答

3条回答 默认 最新

  • CSDN专家-HGJ 2022-02-15 13:15
    关注

    思路是:先对原数据按证券代码和时间排序切片分组,遍历分组,在get_MACD函数里,第一个参数用每个子数据框,函数里用列表添加方法或数据框添加方法来解决。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 2月23日
  • 已采纳回答 2月15日
  • 创建了问题 2月15日

悬赏问题

  • ¥15 数学的三元一次方程求解
  • ¥20 iqoo11 如何下载安装工程模式
  • ¥15 本题的答案是不是有问题
  • ¥15 关于#r语言#的问题:(svydesign)为什么在一个大的数据集中抽取了一个小数据集
  • ¥15 C++使用Gunplot
  • ¥15 这个电路是如何实现路灯控制器的,原理是什么,怎么求解灯亮起后熄灭的时间如图?
  • ¥15 matlab数字图像处理频率域滤波
  • ¥15 在abaqus做了二维正交切削模型,给刀具添加了超声振动条件后输出切削力为什么比普通切削增大这么多
  • ¥15 ELGamal和paillier计算效率谁快?
  • ¥15 蓝桥杯单片机第十三届第一场,整点继电器吸合,5s后断开出现了问题