量化投资入门教程六——技术指标MA策略

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

量化投资入门教程六——技术指标MA策略

目录

1.策略原理及代码

1.1策略原理

1.2策略代码

1.2.1ATR.ini

1.2.2ATR.py

1.2.3stock_pool.csv

2.Python相关函数

2.1Python标准函数

2.2掘金接口函数

3.金融术语(移动平均线)

1.策略原理及代码

1.1策略原理

基于ta-lib的MA策略。如果当前价格高于MA,买入股票;如果当前价格低于MA,卖出股票。

实现量化投资策略的相关编程并非想象中这么困难,从Python的安装到量化编程的实现只需简单几步(具体见

/q/forum.php?mod=viewthread&tid=54&extra=page%3D1轻松安装Python、掘金量化平台及相关工具包)

1.2策略代码(可直接在python中实现)

1.2.1 ma.ini

[strategy]

username=

password=

;回测模式

mode=4

td_addr=localhost:8001

strategy_id=

;订阅代码注意及时更新

subscribe_symbols=SHFE.ag1705.tick,SHFE.ag1705.bar.60

[backtest]

start_time=2017-02-15 21:00:00

end_time=2017-03-07 16:00:00

;策略初始资金

initial_cash=10000000

;委托量成交比率,默认=1(每个委托100%成交)

transaction_ratio=1

;手续费率,默认=0(不计算手续费)

commission_ratio=0.0004

;滑点比率,默认=0(无滑点)

slippage_ratio=0

price_type=1

;基准

bench_symbol=SHSE.000300

[para]

trade_exchange=SHFE

trade_symbol=ag1705

window_size=200

bar_type=60

tick_size=1

significant_diff=21

timeperiod=20

############################################################## # logger settings

############################################################## [loggers]

keys=root

[logger_root]

level=DEBUG

handlers=console,file

[handlers]

keys=console,file

[handler_file]

class=handlers.RotatingFileHandler

args=('ma.log','a','maxBytes=10000','backupCount=5')

formatter=simple

[handler_console]

class=StreamHandler

args = (sys.stdout,)

formatter=simple

[formatters]

keys = simple

[formatter_simple]

format=%(asctime)s - %(name)s - %(levelname)s - %(message)s

datefmt=

1.2.2 ma.py

#!/usr/bin/env python

# encoding: utf-8

import numpy as np

from collections import deque

from gmsdk import *

from talib import SMA

# 算法用到的一些常量,阀值,主要用于信号过滤

eps = 1e-6

threshold = 0.235

tick_size = 0.2

half_tick_size = tick_size / 2

significant_diff = tick_size * 2.6

class MA(StrategyBase):

''' strategy example1: MA decision price cross long MA, then place a order, temporary reverse trends place more orders '''

def __init__(self, *args, **kwargs):

#import pdb; pdb.set_trace()

super(MA, self).__init__(*args, **kwargs)

# 策略初始化工作在这里写,从外部读取静态数据,读取策略配置参数等工作,只在策略启动初始化时执行一次。

# 从配置文件中读取配置参数

self.exchange = self.config.get('para', 'trade_exchange')

self.sec_id = self.config.get('para', 'trade_symbol')

相关文档
最新文档