量化學(xué)習(xí)丨在本系列第一篇中,我們介紹了技術(shù)分析的基本指標(biāo)“雙均線”。但是僅僅靠兩根均線回測的結(jié)果似乎并不是特別理想,最直接的改進(jìn)思路就是給開倉和平倉條件加點過濾器,也就是加上一些限制條件。點擊閱讀:量化學(xué)習(xí) | GTquant量化回測框架之雙均線策略(上)
但是僅僅靠兩根均線回測的結(jié)果似乎并不是特別理想,最直接的改進(jìn)思路就是給開倉和平倉條件加點過濾器,也就是加上一些限制條件。

之前我們只要看到短線上穿長線,我們就開多倉,但是實際上漲趨勢也許并不穩(wěn)定,此時我們可以給開倉條件加個閾值機制,即僅僅短線上穿長線還不夠,要等短線超過長線一定程度,上漲趨勢比較穩(wěn)定的時候才開倉;平倉條件也可以加上閾值機制,如短線下穿長線不急著平倉,可能還有反彈的機會(其實是加入了均值回歸的思想),所以我們也加上一個緩沖段,僅當(dāng)短線下穿長線一定距離后才平倉。

除了增加閾值機制之外,你也可以增加止盈和止損機制,總之優(yōu)化的方法是很多啦~本文采取以下優(yōu)化,當(dāng)然你們也可以做出自己的嘗試哦,說不定能得到更好的結(jié)果~
雙均線策略優(yōu)化:在簡單移動平均基礎(chǔ)上加上開倉過濾條件和止損機制:
開倉條件(加上閾值機制):
短線上穿長線,且短線與長線的距離 > 開倉觸發(fā)倍數(shù) × 觀察期內(nèi)收盤價標(biāo)準(zhǔn)差
平倉條件(加上閾值機制和止損機制):
短線下穿長線,或前一日收盤價 < 開倉時價格 - 最大容忍損失
按上述優(yōu)化的策略回測如下:

1from GTquant import *
2import talib as ta
1class RefinedSMAStrategy(Strategy):
2
3 def __init__(self, short_term, long_term):
4
5 Strategy.__init__(self)
6
7 # 設(shè)置長短均線周期
8 self.short_term = short_term
9 self.long_term = long_term
10
11 # 創(chuàng)建空list,用于在運行on_bar時記錄計算均線的數(shù)據(jù)
12 self.bar_record = []
13
14 # long_price屬性用于存儲開倉時價格,用于計算止損價格
15 self.long_price = None
16
17 def on_bar(self, bar):
18
19 # 重寫父類on_bar方法實現(xiàn)策略邏輯,on_bar是從DataSource—>Backtester—>再交給Strategy的on_bar
20 # 更新用于計算均線的數(shù)據(jù)
21 self.bar_record.append(bar.close)
22
23 if len(self.bar_record) > self.long_term:
24
25 # 計算長短均線數(shù)據(jù)
26 short_term_ma = np.mean(self.bar_record[-self.short_term-1: -1])
27 long_term_ma = np.mean(self.bar_record[-self.long_term-1: -1])
28 distance = short_term_ma - long_term_ma
29
30 # 計算觀察期內(nèi)收盤價標(biāo)準(zhǔn)差
31 std = np.std(self.bar_record[-self.long_term-1: -1])
32
33 # 獲取資金和持倉賬戶
34 # 從父類Strategy類中繼承g(shù)et_position方法,從而連接到了AccountSystem中獲取相關(guān)數(shù)據(jù)
35 position_account = self.get_position()
36 cash_account = self.get_cash_account()
37
38 # 當(dāng)前沒有持倉時
39 # 當(dāng)短期均線大于長期均線一定距離,滿倉買入
40 if position_account.position.get(bar.symbol, 0)==0:
41 if distance > 0.2 * std:
42 self.long_price = bar.open
43 self.stop_lose_price = self.long_price*(1 - 2/100)
44 volume = cash_account.cash//(bar.open*100) * 100
45 self.send_order(bar.symbol, bar.datetime, bar.open, volume, is_buy=True)
46
47 # 當(dāng)前有持倉時
48 # 當(dāng)短線下穿長線,或達(dá)到止損價格,清倉
49 else:
50 if (distance < 0) or (self.bar_record[-1] < self.stop_lose_price):
51 volume = position_account.position.get(bar.symbol, 0)
52 self.send_order(bar.symbol, bar.datetime, bar.open, volume, is_buy=False)
1backtester = BackTester(
2 start_datetime='2010-01-01',
3 end_datetime='2018-01-01',
4 symbol='600837',
5 initial_cash=100000,
6 data_source=TushareDataSource,
7 strategy=RefinedSMAStrategy(short_term=5, long_term=20),
8)
9backtester.start_backtest()
從回測圖可以看到,對于同樣的一只股票、同樣的回測區(qū)間,稍微改進(jìn)一下原有的策略就成效顯著啦!精益求精的同學(xué)們也可以動手開發(fā)自己的策略哦~通過兩次實踐,想必大家對雙均線策略已經(jīng)比較熟悉啦。
量化金融分析師(簡稱AQF ,Analyst of Quantitative Finance)由量化金融標(biāo)準(zhǔn)委員會(Standard Committee of Quantitative Finance,SCQF)主考并頒證,是代表量化金融領(lǐng)域的專業(yè)水平證書。 >>>點擊咨詢AQF證書含金量
.png)
課程適合人群:
金融工程/數(shù)學(xué)專業(yè)背景的同學(xué)/工作人士,希望進(jìn)一步學(xué)習(xí)Python編程以及在量化投資的實戰(zhàn)應(yīng)用;
非金融工程專業(yè)背景的同學(xué)/工作人士,希望迅速成為寬客;
金融相關(guān)人員,希望學(xué)習(xí)如何系統(tǒng)的做量化策略;
個人投資者,希望系統(tǒng)學(xué)習(xí)掌握量化投資相關(guān)的實務(wù)技能,從模型開發(fā),回測,策略改進(jìn),搭建穩(wěn)定的量化交易系統(tǒng)。
(點擊上圖了解課程詳情)
量化金融分析師AQF核心課程體系:
1、《量化投資基礎(chǔ)》
主要涵蓋了量化投資領(lǐng)域的必備知識,包括:基本面分析、技術(shù)分析、數(shù)量分析、固定收益、資產(chǎn)組合管理、權(quán)益、另類投資等內(nèi)容。
2、《Python語言編程基礎(chǔ)》
包含了Python環(huán)境搭建、基礎(chǔ)語法、變量類型、基本函數(shù)、基本語句、第三方庫、金融財務(wù)實例等內(nèi)容。旨在為金融財經(jīng)人提供最需要的編程方法。
3、《基于Python的經(jīng)典量化投資策略》
包含了最富盛名,最基本的量化交易思想和交易策略。例如:海龜交易模型、Logistics模型、配對交易模型、波動擴張模型、Alpha模型、機器學(xué)習(xí)(隨機森林模型、主成分分析)、深度學(xué)習(xí)(人工神經(jīng)網(wǎng)絡(luò))等內(nèi)容。
4、《量化交易系統(tǒng)設(shè)計》
旨在學(xué)習(xí)量化交易系統(tǒng)的具體知識,包括過濾器,進(jìn)入信號,退出信號,倉位管理等詳細(xì)內(nèi)容,并指導(dǎo)學(xué)員設(shè)計涵蓋個人交易哲學(xué)的量化交易系統(tǒng)。
5、《量化實盤交易》
旨在為解決實際量化交易策略搭建過程中的一些問題提供較優(yōu)解決方案。 >>>點擊咨詢AQF相關(guān)問題
掌握Python及量化投資技能,我們能做什么?
1、熟悉中國主要金融市場及交易產(chǎn)品的交易機制;
2、熟知國內(nèi)外期貨交易、股市交易的異同點和內(nèi)在運行機制;
3、掌握經(jīng)典量化交易策略細(xì)節(jié)及其背后的交易哲學(xué);
4、掌握金融、編程和建模知識基礎(chǔ),擁有量化交易實盤操作能力;
5、具備獨立自主地研發(fā)新量化交易策略的能力;
6、掌握量化交易模型設(shè)計的基本框架,以及風(fēng)險管理和資產(chǎn)組合理論的實際運用;
7、掌握從策略思想——策略編寫——策略實現(xiàn)餓完整量化投資決策過程;具備量化投資實戰(zhàn)交易能力。
.png)
金程推薦: AQF培訓(xùn) AQF培訓(xùn)機構(gòu) AQF是什么意思
咨詢電話:400-700-9596
AQF考友群:760229148
金融寬客交流群:801860357
微信公眾號:量化金融分析師


.png)


