1. 策略原理:
股票:SHSE.600009;
时间:2016/1/1--2017/1/1分频数据;
10周期均线与20日均线的双均线策略;
无持仓时直接按照股票池等权买入;
有持仓时,不在股票池中的股票卖出。
2. 代码解读:
3. Python相关函数
3.1 Python标准函数:
| 功能 | 函数原型 | 参数 | 返回值 |
| 参数名 | 含义 |
| reverse | 用于反向列表中元素 | list.reverse() | | | 该方法没有返回值,但是会对列表的元素进行反向排序。 |
| extend | 该方法没有返回值,但是会对列表的元素进行反向排序。 | list.extend(seq) | seq | 元素列表。 | 该方法没有返回值,但会在已存在的列表中添加新的列表内容。 |
| len | 返回对象(字符、列表、元组等)长度或项目个数。 | len(s) | s | 对象 | 返回对象长度。 |
| append | 用于在列表末尾添加新的对象。 | list.append(obj) | obj | 添加到列表末尾的对象。 | 该方法无返回值,但是会修改原来的列表。 |
3.2 掘金接口函数:
| 功能 | 函数原型 | 参数 | 返回值 |
| 参数名 | 类型 | 说明 |
| get_last_n_bars | 提取单个代码的最新n条Bar数据,策略类和行情服务类都提供该接口。 | get_last_n_bars(symbol, bar_type, n, end_time='') | symbol | string | 证券代码, 带交易所代码以确保唯一,如SHSE.600000 | Bar列表 |
| bar_type | int | bar周期,以秒为单位,比如60即1分钟bar |
| n | int | 提取的数据条数 |
| end_time | string | 指定截止时间, 如2015-10-30 15:00:00 |
| get_positions | 查询当前策略指定symbol(由交易所代码和证券ID组成)和买卖方向的持仓信息。策略类和交易服务类都提供该接口。 | get_position(exchange, sec_id, side); | exchange | string | 交易所代码 | Position对象,持仓信息 |
| sec_id | string | 证券代码 |
| side | int | 买卖方向 |
| open_long | 异步开多仓,以参数指定的symbol、价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口 | open_long(exchange, sec_id, price, volume) | exchange | string | 交易所代码, 如上交所SHSE | 委托下单生成的Order对象 |
| sec_id | string | 证券代码,如浦发银行600000 |
| price | float | 委托价,如果price=0,为市价单,否则为限价单 |
| volume | float | 委托量 |
| close_long | 异步平多仓接口,以参数指定的exchange, 证券代码sec_id, 价和量下单。如果价格为0,为市价单,否则为限价单。策略类和交易服务类都提供该接口。 | close_long(exchange, sec_id, price, volume) | exchange | string | 交易所代码, 如上交所SHSE | 委托下单生成的Order对象 |
| sec_id | string | 证券代码,如浦发银行600000 |
| price | float | 委托价,如果price=0,为市价单,否则为限价单 |
| volume | float | 平仓量 |
4. 金融术语:
双均线策略:指的是运用两条不同周期的移动平均线,即短周期移动平均线和长周期移动平均线的相对大小,研判买进与卖出时机的策略。当短周期的均线从长期均线的下方,向上穿越至长周期的均线,所形成的交点,称为金叉。当短周期的均线从长期均线的上方,向下穿越至长周期的均线,所形成的交点,称为死叉。当出现金叉点时,市场属于多头市场;当出现死叉点时,市场属于空头市场。