淺談python量化 雙均線策略(金叉死叉)
#小策略,策略邏輯是在金叉時(shí)候買進(jìn),死叉時(shí)候賣出,所謂金叉死叉是兩條均線的交叉,當(dāng)短期均線上穿長(zhǎng)期均線為金叉,反之為死叉
#下面是策略代碼及結(jié)構(gòu)
# 導(dǎo)入函數(shù)庫(kù) from jqdata import * # 初始化函數(shù) def initialize(context): # 設(shè)定滬深300作為基準(zhǔn) set_benchmark('000300.XSHG') # True為開啟動(dòng)態(tài)復(fù)權(quán)模式,使用真實(shí)價(jià)格交易 set_option('use_real_price', True) # 股票類交易手續(xù)費(fèi)是:買入時(shí)傭金萬分之三,賣出時(shí)傭金萬分之三加千分之一印花稅, 每筆交易傭金最低扣5塊錢 set_order_cost(OrderCost(open_tax=0, close_tax=0.001, \ open_commission=0.0003, close_commission=0.0003,\ close_today_commission=0, min_commission=5), type='stock') #華誼股票 g.security='300027.XSHE' #設(shè)置每天運(yùn)行 run_daily(handle) def handle(context): security=g.security n5=5 n20=20 # 獲取股票的收盤價(jià) close_data = attribute_history(security, n20, '1d',"close",df=False) print(close_data) # 取得過去 ma_n1 天的平均價(jià)格 ma_n5 = close_data['close'][-n5:].mean() # 取得過去 ma_n2 天的平均價(jià)格 ma_n20 = close_data['close'][-n20:].mean() print(ma_n5,ma_n20) # 取得當(dāng)前的現(xiàn)金 cash = context.portfolio.available_cash # 如果當(dāng)前有余額 if ma_n5 > ma_n20: # 用所有 cash 買入股票,order_value是買賣價(jià)值 order_value(security, cash) # 記錄這次買入 log.info("Buying %s" % security) # 如果n5日均線小于n20日均線,并且目前有頭寸 elif ma_n5 < ma_n20 and context.portfolio.positions[security].closeable_amount > 0: # 全部賣出,order_target是買賣數(shù)量 order_target(security, 0) # 記錄這次賣出 log.info("Selling %s" % (security)) # 繪制n5日均線價(jià)格 record(ma_n5=ma_n5) # 繪制n20日均線價(jià)格 record(ma_n20=ma_n20)
#整體結(jié)果在12-16年回測(cè)測(cè)試結(jié)果效益不錯(cuò),阿爾法貝塔最大回撤也還行,難點(diǎn)是在策略和框架的使用和調(diào)用,這就是這次的雙均線策略記錄
補(bǔ)充知識(shí):(多頭、空頭、金叉、死叉、賣出信號(hào)、買出信號(hào))的python處理
1.指標(biāo)概念
均值性指標(biāo):以平均數(shù)據(jù)作為參考的指標(biāo)
隨機(jī)性指標(biāo):以最高價(jià)最低價(jià)等為參考的指標(biāo)
2.多頭、空頭、金叉、死叉、賣出信號(hào)、買出信號(hào)
多頭:短期均線在長(zhǎng)期均線上方
空頭:短期均線在長(zhǎng)期均線下方
金叉:短期均線向上穿越長(zhǎng)期均線
死叉:短期均線向下穿越長(zhǎng)期均線
買出信號(hào):金叉 + 一定的條件
賣出出信號(hào):死叉 + 一定的條件
3.Python實(shí)現(xiàn):以KDJ為例
4.測(cè)試:篩選滬深股票中賣出信號(hào)的股票
以上這篇淺談python量化 雙均線策略(金叉死叉)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
使用Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲功能
這篇文章主要介紹了使用Python Tkinter實(shí)現(xiàn)剪刀石頭布小游戲功能,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-10-10pandas如何統(tǒng)計(jì)某一列或某一行的缺失值數(shù)目
這篇文章主要介紹了pandas如何統(tǒng)計(jì)某一列或某一行的缺失值數(shù)目,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-05-05Pytorch 擴(kuò)展Tensor維度、壓縮Tensor維度的方法
這篇文章主要介紹了Pytorch 擴(kuò)展Tensor維度、壓縮Tensor維度的方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09python3 對(duì)list中每個(gè)元素進(jìn)行處理的方法
今天小編就為大家分享一篇python3 對(duì)list中每個(gè)元素進(jìn)行處理的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-06-06自學(xué)python求已知DNA模板的互補(bǔ)DNA序列
這篇文章主要為大家介紹了自學(xué)python求已知DNA模板的互補(bǔ)DNA序列的示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06