一、布林带策略简介

1、简介

金融量化分析【day113】:布林带策略

2、计算公式

金融量化分析【day113】:布林带策略

 3、图形

金融量化分析【day113】:布林带策略    金融量化分析【day113】:布林带策略

二、布林带策略代码

import jqdata
 
def initialize(context):
    set_benchmark('000002.XSHG')
    set_option('use_real_price', True)
    set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')
    
    g.security = '600036.XSHG'
    g.M = 0
    g.k = 2  
    
def handle_data(context, data):
    sr = attribute_history(g.security, g.M)['close']
    ma = sr.mean()
    up = ma + g.k * sr.std()
    down = ma - g.k * sr.std()
    p = get_current_data()[g.security].day_open
    cash = context.portfolio.available_cash
    if p < down and g.security not in context.portfolio.positions:
        order_target(g.security, cash)
    elif p > down and g.security in context.portfolio.positions:
        order_target(g.security, 0)

三、股灾时期测试

1、编译运行

金融量化分析【day113】:布林带策略

2、输出日志

 1 2016-06-15 09:30:00 - INFO  - 订单已提交: StockOrder(entrust_id=1540888844 security=600036.XSHG mode=OrderTargetAmount: _amount=100000 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-15 09:30:00 error=)
 2 
 3 2016-06-15 09:30:00 - WARNING - 下单检查标的数量: StockOrder(entrust_id=1540888844 security=600036.XSHG mode=OrderTargetAmount: _amount=100000 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-15 09:30:00 error=因为资金有限,下单数量调整为 5797
 4 开仓数量必须是100的整数倍,调整为 5700)
 5 
 6 2016-06-15 09:30:00 - INFO  - order StockOrder(entrust_id=1540888844 security=600036.XSHG mode=OrderTargetAmount: _amount=100000 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-15 09:30:00 error=因为资金有限,下单数量调整为 5797
 7 开仓数量必须是100的整数倍,调整为 5700) trade price: 17.27, amount:5700, commission: 29.53
 8 
 9 2016-06-15 09:30:00 - INFO  - 订单已委托: StockOrder(entrust_id=1540888844 security=600036.XSHG mode=OrderTargetAmount: _amount=100000 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-15 09:30:00 error=因为资金有限,下单数量调整为 5797
10 开仓数量必须是100的整数倍,调整为 5700)
11 
12 2016-06-16 09:30:00 - INFO  - 订单已提交: StockOrder(entrust_id=1540888845 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-16 09:30:00 error=)
13 
14 2016-06-16 09:30:00 - INFO  - order StockOrder(entrust_id=1540888845 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-16 09:30:00 error=) trade price: 17.24, amount:5700, commission: 127.75
15 
16 2016-06-16 09:30:00 - INFO  - 订单已委托: StockOrder(entrust_id=1540888845 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-06-16 09:30:00 error=)
17 
18 2016-09-12 09:30:00 - WARNING - 开仓数量必须是100的整数倍,调整为 99600: Order(security=600036.XSHG mode=OrderTargetAmount: _amount=99671 style=MarketOrderStyle side=long margin=False entrust_time=None)
19 
20 2016-09-12 09:30:00 - INFO  - 订单已提交: StockOrder(entrust_id=1540888846 security=600036.XSHG mode=OrderTargetAmount: _amount=99671 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-12 09:30:00 error=)
21 
22 2016-09-12 09:30:00 - WARNING - 下单检查标的数量: StockOrder(entrust_id=1540888846 security=600036.XSHG mode=OrderTargetAmount: _amount=99671 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-12 09:30:00 error=因为资金有限,下单数量调整为 5488
23 开仓数量必须是100的整数倍,调整为 5400)
24 
25 2016-09-12 09:30:00 - INFO  - order StockOrder(entrust_id=1540888846 security=600036.XSHG mode=OrderTargetAmount: _amount=99671 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-12 09:30:00 error=因为资金有限,下单数量调整为 5488
26 开仓数量必须是100的整数倍,调整为 5400) trade price: 18.18, amount:5400, commission: 29.45
27 
28 2016-09-12 09:30:00 - INFO  - 订单已委托: StockOrder(entrust_id=1540888846 security=600036.XSHG mode=OrderTargetAmount: _amount=99671 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-12 09:30:00 error=因为资金有限,下单数量调整为 5488
29 开仓数量必须是100的整数倍,调整为 5400)
30 
31 2016-09-20 09:30:00 - INFO  - 订单已提交: StockOrder(entrust_id=1540888847 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-20 09:30:00 error=)
32 
33 2016-09-20 09:30:00 - INFO  - order StockOrder(entrust_id=1540888847 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-20 09:30:00 error=) trade price: 17.78, amount:5400, commission: 124.82
34 
35 2016-09-20 09:30:00 - INFO  - 订单已委托: StockOrder(entrust_id=1540888847 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-09-20 09:30:00 error=)
36 
37 2016-12-20 09:30:00 - WARNING - 开仓数量必须是100的整数倍,调整为 97300: Order(security=600036.XSHG mode=OrderTargetAmount: _amount=97357 style=MarketOrderStyle side=long margin=False entrust_time=None)
38 
39 2016-12-20 09:30:00 - INFO  - 订单已提交: StockOrder(entrust_id=1540888848 security=600036.XSHG mode=OrderTargetAmount: _amount=97357 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-20 09:30:00 error=)
40 
41 2016-12-20 09:30:00 - WARNING - 下单检查标的数量: StockOrder(entrust_id=1540888848 security=600036.XSHG mode=OrderTargetAmount: _amount=97357 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-20 09:30:00 error=因为资金有限,下单数量调整为 5411
42 开仓数量必须是100的整数倍,调整为 5400)
43 
44 2016-12-20 09:30:00 - INFO  - order StockOrder(entrust_id=1540888848 security=600036.XSHG mode=OrderTargetAmount: _amount=97357 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-20 09:30:00 error=因为资金有限,下单数量调整为 5411
45 开仓数量必须是100的整数倍,调整为 5400) trade price: 18.01, amount:5400, commission: 29.18
46 
47 2016-12-20 09:30:00 - INFO  - 订单已委托: StockOrder(entrust_id=1540888848 security=600036.XSHG mode=OrderTargetAmount: _amount=97357 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-20 09:30:00 error=因为资金有限,下单数量调整为 5411
48 开仓数量必须是100的整数倍,调整为 5400)
49 
50 2016-12-22 09:30:00 - INFO  - 订单已提交: StockOrder(entrust_id=1540888849 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-22 09:30:00 error=)
51 
52 2016-12-22 09:30:00 - INFO  - order StockOrder(entrust_id=1540888849 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-22 09:30:00 error=) trade price: 17.83, amount:5400, commission: 125.17
53 
54 2016-12-22 09:30:00 - INFO  - 订单已委托: StockOrder(entrust_id=1540888849 security=600036.XSHG mode=OrderTargetAmount: _amount=0 style=MarketOrderStyle side=long margin=False entrust_time=2016-12-22 09:30:00 error=)
完整输出日志

相关文章: