金融量化 - 技术分析策略和交易系统_SMA+CCI交易系统

双技术指标:SMA+CCI交易系统

以SMA作为开平仓信号,同时增加CCI作为过滤器;
当股价上穿SMA,同时CCI要小于-100,说明是在超卖的情况下,上穿SMA,做多;交易信号更可信;
当股价下穿SMA,同时CCI要大于+100,说明是在超买的情况下,下穿SMA,做空;交易信号更可信;

import numpy as np
import pandas as pd
import talib as ta
import tushare as ts
import matplotlib as mpl
import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline
# 确保‘-’号显示正常
mpl.rcParams['axes.unicode_minus']=False
# 确保中文显示正常
mpl.rcParams['font.sans-serif'] = ['SimHei']  

1. 数据准备

# 获取数据
stock_index = ts.get_k_data('hs300', '2016-01-01', '2017-06-30')
stock_index.set_index('date', inplace=True)
stock_index.sort_index(inplace = True)
stock_index.head()
open close high low volume code
date
2016-01-04 3725.86 3470.41 3726.25 3469.01 115370674.0 hs300
2016-01-05 3382.18 3478.78 3518.22 3377.28 162116984.0 hs300
2016-01-06 3482.41 3539.81 3543.74 3468.47 145966144.0 hs300
2016-01-07 3481.15 3294.38 3481.15 3284.74 44102641.0 hs300
2016-01-08 3371.87 3361.56 3418.85 3237.93 185959451.0 hs300
# 计算指标sma,cci
stock_index['sma'] = ta.SMA(np.asarray(stock_index['close']), 5)
stock_index['cci'] = ta.CCI(np.asarray(stock_index['high']), np.asarray(stock_index['low']), np.asarray(stock_index['close']), timeperiod=20)
plt.subplot(2,1,1)
plt.title('沪深300 sma cci指标图')
plt.gca().axes.get_xaxis().set_visible(False)
stock_index['close'].plot(figsize = (10,8))
stock_index['sma'].plot(figsize=
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这段代码是在MSP430微控制器上配置定时器(Timer)和捕获(Capture)模块的相关设置。下面是对每一行代码的解释: 1. `TA2CTL |= TASSEL_2+MC_2+TAIE+TACLR+ID_3;`:配置定时器TA2的控制寄存器。选择SMCLK作为时钟源(TASSEL_2),设置为连续计数模式(MC_2),允许中断(TAIE),将计数器清零(TACLR),设置时钟分频系数为8(ID_3)。 2. `TA1CTL |= TASSEL_2+MC_2+TAIE+TACLR+ID_3;`:配置定时器TA1的控制寄存器。与上一行代码类似,配置定时器TA1的相关设置。 3. `TA2CCTL1 |= CAP+CM_1+CCIS_0+CCIE;`:配置定时器TA2的捕获比较控制寄存器1。设置为捕获模式(CAP),上升沿捕获(CM_1),选择CCI1A作为输入信号源(CCIS_0),同步捕获模式,允许中断(CCIE)。 4. `TA1CCTL1 |= CAP+CM_1+CCIS_0+CCIE;`:配置定时器TA1的捕获比较控制寄存器1。与上一行代码类似,配置定时器TA1的相关设置。 5. `P2DIR &=~ BIT4;`:将P2.4引脚设为输入模式,即将P2.4引脚的方向寄存器P2DIR的对应位清零。 6. `P2SEL |= BIT4;`:将P2.4引脚的功能选择寄存器P2SEL的对应位设置为1,选择该引脚作为捕获输入信号的源。 7. `P2DIR &=~ BIT0;`:将P2.0引脚设为输入模式,即将P2.0引脚的方向寄存器P2DIR的对应位清零。 8. `P2SEL |= BIT0;`:将P2.0引脚的功能选择寄存器P2SEL的对应位设置为1,选择该引脚作为捕获输入信号的源。 总体上,这段代码配置了两个定时器(TA2和TA1)以及两个捕获比较模块(TA2CCTL1和TA1CCTL1)。还配置了P2.4和P2.0作为捕获输入信号的引脚。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值