量化交易——布林带策略
生活随笔
收集整理的這篇文章主要介紹了
量化交易——布林带策略
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、布林帶策略介紹
布林帶/布林線/保利加通道(Bollinger Band):由三條軌道線組成,其中上下兩條線分別可以看成是價格的壓力線和支撐線,在兩條線之間是一條價格平均線。
一般來說,股價會運行在壓力線和支撐線所形成的通道中。
與MACD、RSI、KDJ等指標一樣,布林線(BOLL)指標也是股票市場最實用的技術分析參考指標。
1、計算公式
中間線:20日均線
up線(壓力線):20日均線+N*SD(20日收盤價標準差)
down線(支撐線):20日均線-N*SD(20日收盤價標準差)
SD是標準差,N是倍數。
2、布林帶策略
當股價突破阻力線時——清倉
當股價跌破支撐線時——全倉買入
布林帶策略研究——N的取值問題、布林帶寬度等
? 上圖中修改計算周期,即修改均線。修改股票特性參數,即修改N的取值。
二、布林帶策略實現
# 初始化函數,設定基準等等 def initialize(context):# 設定滬深300作為基準set_benchmark('000300.XSHG')# 開啟動態復權模式(真實價格)set_option('use_real_price', True)# 股票類每筆交易時的手續費是:買入時傭金萬分之三,賣出時傭金萬分之三加千分之一印花稅, 每筆交易傭金最低扣5塊錢set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')g.security = '002389.XSHE' # 航天彩虹g.M = 20 # 計算周期g.k = 2 # 股票特性參數,即N的取值# 初始化此策略 def handle_data(context, data):# 獲取該股票20日收盤價sr = attribute_history(g.security, g.M)['close']# 取得過去20日的平均價格ma = sr.mean()# numpy和pandas的std()均可計算標準差# up線(壓力線):20日均線+N*SD(20日收盤價標準差)up = ma + g.k * sr.std()# down線(支撐線):20日均線-N*SD(20日收盤價標準差)down = ma - g.k * sr.std()# 股票開盤價格p = get_current_data()[g.security].day_open# 取得當前的現金cash = context.portfolio.available_cash# portfolio.positions持倉標的信息if p < down and g.security not in context.portfolio.positions:# 跌破下限買入信號且沒有持倉order_value(g.security, cash)elif p > up and g.security in context.portfolio.positions:# 漲破上限賣出信號且有持倉order_target(g.security, 0) # 賣出所有股票,使這只股票的最終持有量為0執行顯示效果:
?
總結
以上是生活随笔為你收集整理的量化交易——布林带策略的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python爬虫的实际运用之:破解滑动验
- 下一篇: 揭秘SEO快排原理