美文网首页量化交易
利用MA计算股票波峰与波谷点

利用MA计算股票波峰与波谷点

作者: 川人1588 | 来源:发表于2023-08-22 18:55 被阅读0次

算法原理

趋势判断

1、利用股票日K数据的MA与收盘价的对比,确定股票的上升与下降趋势时间段;
2、在时间段内求极值点

代码实现

import talib
import pandas as pd
def get_peak_and_buttom(bar_df:pd.Series, ma_length:int)->(list, list):
    """获取序列的波峰与波谷

    Args:
        bar_df (Series): 股票收盘价序列
        ma_length(int):MA长度 

    Returns:
        _type_: _description_
    """    
    if len(bar_df) <=ma_length:
        return None, None
    ma = talib.MA(bar_df, ma_length)
    compare_flag = ma > bar_df
    df_list = []
    start_idx = 0
    prev_flag = compare_flag.iloc[0]
    def add_to_list(df, flag):
        if len(df_list) > 0 and flag == df_list[-1]['flag']:
            tmp_df = df_list.pop()
            new_df = pd.concat([tmp_df['df'], df], axis=0)
            df_list.append({'flag':flag, 'df':new_df})
        else:
            df_list.append({"flag":flag, "df":df})
    # 利用MA数据与收盘价的对比计算上升与下降区间
    for i,flag in enumerate(compare_flag):
        if flag != prev_flag:
            end_idx = i
            # 屏蔽个别异常数据
            if end_idx - start_idx <= 1:
                prev_flag = not prev_flag
                continue
            t_df = bar_df.iloc[start_idx:end_idx]
            add_to_list(t_df, prev_flag)
            start_idx = i
            prev_flag = flag
    end_idx = len(compare_flag)
    t_df = bar_df.iloc[start_idx:]
    add_to_list(t_df, prev_flag)
    # 计算各个区间内的极值点
    high_idx = [t_df["df"].idxmax() for t_df in df_list if not t_df["flag"]]
    low_idx = [t_df["df"].idxmin() for t_df in df_list if t_df["flag"]]
    return high_idx, low_idx

测试结果

MA 长度为5情况
MA长度为10情况
MA长度为15情况

由图可以看出,MA的长度越长,就会屏蔽中间的次级波动

相关文章

  • 波峰与波谷

    人的一生不可能永远处在波谷,当然,也不会一直出在波峰之中。人生就像是波浪线,时而攀上高峰,时而跌落低谷。 有一个故...

  • 波峰波谷

    人的一生,就如一条波一样,既会有波峰,也会有低谷。处在什么样的位置不可怕,怕的是永远活在自己的世界里,没有站在努力...

  • 大盘一直上涨的话,适合寻找主动基金进行趋势交易

    主动基金适合趋势交易,什么是趋势交易? 在股票价格运动当中,如果其包含的波峰和波谷都相应的高于前一个波峰和波谷,那...

  • 122. Best Time to Buy and Sell S

    只需要找连续的波谷和波峰, 在波谷买入,在波峰卖出。所以只需要判断连续的波峰和波谷就行。 可以得到证明,最低的波谷...

  • 随笔0325

    人生的精彩就如心电图,有波峰也有波谷,波谷是为波峰在积蓄力量,波峰是波谷积蓄力量的有效释放。这就是人生。老是处在波...

  • 随笔

    李笑来在专栏专门谈到投资有周期,有波谷和波峰,有波峰就会迎来波谷。 投资学习也有波谷和波峰。我清楚地知道目前正处于...

  • 波峰到波谷

    如果说昨晚因为接到了意外的面试电话,让我觉得人生处处有惊喜从而导致一夜失眠,那么今晚我可能要再次转辗反侧,原因却...

  • 波峰和波谷

    人生在世,不可能一帆风顺,就如同波峰波谷,要么准备往下走,要么努力爬坡! 在遭遇了昨天的事情后,我想想还是有些后怕...

  • 【2021年1-6月】第2周教学反思

    在一节课45分钟之内,学生的生理心理状态分为五个时区,呈波谷——波峰——波谷——波峰——波谷的起伏发展规律。我的课...

  • 005 丨你要的是什么

    生活总有波峰波谷的起伏。不是在努力中上坡,就在舒适中下坡。波峰、波谷的时候,往往最考验看一个人的眼界和胸怀。波谷往...

网友评论

    本文标题:利用MA计算股票波峰与波谷点

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