Python实现BIAS工具判断信号:股票技术分析的工具系列(4)

Python实现BIAS工具判断信号:股票技术分析的工具系列(4)


介绍

在股票技术分析中,BIAS(乖离率)是一种常用的技术指标,用于判断股票价格与其移动平均线之间的偏离程度,进而指导投资者进行交易决策。本文将介绍如何使用Python编程语言实现BIAS工具,以及如何利用该工具来分析股票价格走势。

先看看官方介绍:

BIAS(乖离率)
用法
1.本指标的乖离极限值随个股不同而不同,使用者可利用参考线设定,固定其乖离范围;
2.当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力;
3.当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力;
4.本指标可设参考线。

算法解释

BIAS1 :(CLOSE-MA(CLOSE,N1))/MA(CLOSE,N1)*100;
BIAS2 :(CLOSE-MA(CLOSE,N2))/MA(CLOSE,N2)*100;
BIAS3 :(CLOSE-MA(CLOSE,N3))/MA(CLOSE,N3)*100;

优势:

优势描述
个性化设置乖离范围BIAS指标的乖离极限值随个股不同而不同,使用者可以根据具体情况进行参考线的设定,固定其乖离范围,使得指标更适合不同个股的特性。
预测股价走势当股价的正乖离扩大到一定极限时,股价会产生向下拉回的作用力,而当股价的负乖离扩大到一定极限时,股价会产生向上拉升的作用力,有助于预测股价的走势。
可设参考线BIAS指标可设参考线,投资者可以根据自己的需求和策略,设定适当的参考线,以便更好地辅助决策。

劣势:

劣势描述
单一性BIAS指标相对较为单一,仅从价格的角度进行分析,可能无法全面反映市场的复杂情况,投资者需要结合其他指标和分析方法进行综合判断。
适用性限制BIAS指标的应用受限于个股的特性和行情状况,不同个股的乖离率极限值不同,可能需要投资者具备一定的经验和技术分析能力,才能准确把握指标的含义和使用方法。
缺乏明确的买卖信号BIAS指标并没有提供明确的买卖信号,而是提供了一种价差的概念,因此在实际操作中,投资者需要结合其他指标或技术分析方法来确认具体的买卖时机。

代码

rolling函数介绍

rolling 函数通常与其他函数(如 meansumstd 等)一起使用,以计算滚动统计量,例如滚动均值、滚动总和等。

以下是 rolling 函数的基本语法:

DataFrame.rolling(window, min_periods=None, center=False, win_type=None, on=None, axis=0, closed=None)
  • window: 用于计算统计量的窗口大小。
  • min_periods: 每个窗口最少需要的非空观测值数量。
  • center: 确定窗口是否居中,默认为 False
  • win_type: 窗口类型,例如 Noneboxcartriang 等,默认为 None
  • on: 在数据帧中执行滚动操作的列,默认为 None,表示对整个数据帧执行操作。
  • axis: 执行滚动操作的轴,默认为 0,表示按列执行操作。
  • closed: 确定窗口的哪一端是闭合的,默认为 None

完整代码

data代码

这里完整代码中的data部分,阔以通过下面资源文件下载,或者留下邮箱等发送。:

https://download.csdn.net/download/qq_36051316/88896567
BIAS.py

import pandas as pd
import stock_data

data = {
    'DATE': stock_data.DATE,
    'CLOSE': stock_data.CLOSE,
    'HIGH': stock_data.HIGH,
    'LOW': stock_data.LOW,
    'OPEN': stock_data.OPEN,
    'CHANGE': stock_data.CHANGE,
    'VOL': stock_data.VOL,
    'CAPITAL': stock_data.CAPITAL
}

df = pd.DataFrame(data)


def bias(close, n):
    """
    计算乖离率

    参数:
    close: pandas.Series,收盘价数据
    n: int,窗口大小

    返回:
    pandas.Series,乖离率数据
    """
    ma = close.rolling(window=n).mean()
    return (close - ma) / ma * 100


def calculate_bias(data, n1, n2, n3, positive_limit, negative_limit):
    """
    计算乖离率指标

    参数:
    data: pandas.DataFrame,包含股票数据的DataFrame
    n1: int,第一个窗口大小
    n2: int,第二个窗口大小
    n3: int,第三个窗口大小
    positive_limit: float,正乖离的极限值
    negative_limit: float,负乖离的极限值

    返回:
    pandas.DataFrame,添加了乖离率指标的DataFrame
    """
    data['BIAS1'] = bias(data['CLOSE'], n1)
    data['BIAS2'] = bias(data['CLOSE'], n2)
    data['BIAS3'] = bias(data['CLOSE'], n3)

    # 添加参考线
    data['POSITIVE_LIMIT'] = positive_limit
    data['NEGATIVE_LIMIT'] = negative_limit

    return data


def generate_signals(data, positive_limit, negative_limit, day_index=-1):
    """
    生成信号

    参数:
    data: pandas.DataFrame,包含乖离率指标的DataFrame
    positive_limit: float,正乖离的极限值
    negative_limit: float,负乖离的极限值
    day_index: int,要检查的日期索引,默认为最后一天

    返回:
    str,表示信号的字符串,可能为"股价可能会向下拉回"、"股价可能会向上拉升"或"无信号"
    """
    signals = ""
    row = data.iloc[day_index]
    if row['BIAS1'] > positive_limit and row['BIAS2'] > positive_limit and row['BIAS3'] > positive_limit:
        signals = '股价可能会向下拉回'
    elif row['BIAS1'] < negative_limit and row['BIAS2'] < negative_limit and row['BIAS3'] < negative_limit:
        signals = '股价可能会向上拉升'
    else:
        signals = '无信号'
    return signals


n1, n2, n3 = 6, 12, 24
positive_limit = 5  # 正乖离的极限值
negative_limit = -5  # 负乖离的极限值

calculate_bias(df, n1, n2, n3, positive_limit, negative_limit)
result = generate_signals(df, positive_limit, negative_limit)
print(result)


positive_limit = 5 # 正乖离的极限值
negative_limit = -5 # 负乖离的极限值

这个需要自己设置:-5 只是一个示例。在实际使用中,可以根据股票的历史数据和市场行情来设定适合的负乖离极限值。负乖离表示股价低于移动平均线的情况,当负乖离扩大到一定程度时,可能会有向上拉升的作用力

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盗理者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值