基于Python实现期权定价和股票技术指标

本文介绍了如何使用Python编程实现Black-Scholes模型进行期权定价,并探讨了股票交易中的技术指标应用。
摘要由CSDN通过智能技术生成

技术指标

def MA(series,days):
    '''
    n日简单移动平均
    '''
    
    dict={
   }
    dict[0] = series
    for day in range(1,days):
        dict[day] = series.shift(day)
    temp = pd.DataFrame(dict)
    temp = pd.DataFrame(temp.mean(skipna=False, axis=1),columns=['MA'])
    
    return temp['MA']

def EMA(series,n):
    '''
    n日指数移动平均,由于需要用到历史移动平均值,故该值将逐步回归真实值
    '''
    
    ema = series[0]
    EMA = []
    for i in series:
        ema = (2*i + (n-1)*ema)/(n+1)
        EMA.append(ema)
        
    return pd.Series(EMA)


def MACD(series):
    '''
    MACD值
    '''
    
    quick_line = EMA(series, 12)
    slow_line = EMA(series, 26)
    DIF = quick_line - slow_line
    
    DEA = EMA(DIF, 9)
    macd = 2 * (DIF - DEA)

    return macd

def macd_trigger(series):
    '''
    基于MACD值构建的买卖信号
    '''
    
    def gen_flag(dataframe):
        muti = dataframe['pre_macd'] * dataframe['macd']
        if muti <0:
            if dataframe['pre_macd']<0:
                return 'buy' #买点信号
            else:
                return 'sale' #卖点信号
        else:
            return 'waitting'

    pre_macd = series.shift(1)
    data = pd.DataFrame({
   'pre_macd':pre_macd,'macd':series})
    data['macd_trigger'] = data.apply(gen_flag,axis=1)
    
    return data['macd_trigger']


def SAR(price_high, price_low, price_close, n=4, af=
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值