楼主: datayes2015
1770 2

[交易策略] 打开量化投资的黑箱-技术分析篇 [推广有奖]

  • 1关注
  • 40粉丝

硕士生

70%

还不是VIP/贵宾

-

威望
0
论坛币
1955 个
通用积分
5.0336
学术水平
20 点
热心指数
21 点
信用等级
18 点
经验
4383 点
帖子
104
精华
0
在线时间
77 小时
注册时间
2015-6-10
最后登录
2017-7-3

楼主
datayes2015 发表于 2016-11-15 17:45:43 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
本文演示如何通过程序去实现常见的技术指标。
技术分析是指以市场行为为研究对象,以判断市场趋势并跟随趋势的周期性变化来进行股票及其他金融衍生物交易决策的方法的总和。技术分析认为市场行为包容消化一切信息、价格以趋势方式波动、历史会重演,常用的有MACD、BOLL、RSI等。
下面举个简单的栗子,双均线。技术分析中通常会用一条近期的移动平均线和远期移动平均线的相对价格趋势来体现股票近期的价格趋势。

例如当近期均线由下向上突破远期均线时(金叉),通常代表股票近期较为强势可以作为买入信号。
相反当近期均线由上向下击穿远期均线时(死叉),通常代表股票近期较为疲软作为卖出信号。
接下来在看如何通过程序去实现这个简单的逻辑(选用5个交易日的平均价作为近日均线、选用60个交易日的平均价作为远期均线)
首先确定一下策略的回测时间(想看策略在哪一阶段的表现)
  1. start = '2012-05-28'  #回测开始时间
  2. end = '2016-08-08'   # 回测结束时间
复制代码

然后确定策略选股的股票池及标的(策略适用于哪些股票,想看策略相对谁的表现情况)
  1. secID = '601318.XSHG'             #中国平安
复制代码

其他需要的信息(策略的起始资金、按天进行判断还在用分钟线进行判断、策略调仓频率)
  1. capital_base = 100000                      # 起始资金
  2. freq = 'd'      # 策略类型,'d'表示日间策略使用日线回测,'m'表示日内策略使用分钟线回测
  3. refresh_rate = 1      # 调仓频率,表示执行handle_data的时间间隔,若freq = 'd'时间间隔的单位为交易日,若freq = 'm'时间间隔为分钟
  4. max_history_window = 100                 #设定调取历史价格区间最大为100个交易日
  5. def initialize(account):                   # 初始化虚拟账户状态,类似于去券商开户
  6.      pass
复制代码

策略逻辑部分
局部变量定义:
  1. def handle_data(account):                  # 每个交易日的买入卖出指令
  2.     hist1 = account.get_attribute_history('closePrice', 5)      #获取过去5个交易日的收盘价
  3.     hist2 = account.get_attribute_history('closePrice', 60)      #获取过去60个交易日的收盘价
  4.     for s in account.universe:           #所有股票池中的股票
  5.         MA5 = hist1[s].mean()     
  6.         MA60 = hist2[s].mean()     #计算过去5个交易日及过去60个交易日的均价,mean()是python自带的计算平均值的函数
复制代码


买入判断:

  1. if MA5 > MA60 and s not in account.security_position:   #“金叉”而且当前持仓中没有持有要买入的股票时买入
  2.             amount = int(account.cash / account.referencePrice[s] / 100) * 100        #为了让买入的数量是整数(现金/要买入上一个交易日的价格)
  3.             order(s, amount)
复制代码

       卖出判断:

  1. elif MA5 < MA60 and s in account.security_position:    #“死叉”时而且所卖证券在持仓中时卖出
  2.             order_to(s, 0)
复制代码

接着就可以看到策略在历史区间的表现

蓝线表示策略的收益,黑线表示基准的收益。
点击回测详情可以查看具体的调仓记录、持仓记录等信息

点击回测图中的开始交易就可以每日数据实时模拟,看一下样本外的表现情况

我的交易界面就可以查看每日模拟的情况


如果觉得表现尚可可以通过微信订阅调仓信号,每日开盘前收到今日调仓信息。

常用的技术指标实现(MACD、BOLL、RSI、EMV等):技术指标合集
技术指标推荐书籍:专业投机原理、期货市场技术分析。



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:技术分析 量化投资 attribute Reference position 技术

已有 1 人评分经验 学术水平 热心指数 信用等级 收起 理由
accumulation + 100 + 1 + 1 + 1 精彩帖子

总评分: 经验 + 100  学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

本帖被以下文库推荐

沙发
lyqbnu 发表于 2016-11-18 07:14:20

藤椅
ydc129 发表于 2016-12-4 20:17:14
谢谢分享。。。。。。

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2026-1-1 03:13