生活随笔
收集整理的這篇文章主要介紹了
python量化羊驼法则
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、概念
這個(gè)有點(diǎn)玄學(xué),遺傳方法論和動量論,原理大概是,首先選擇n只收益率高的股票,然后每月在n只里去掉m只最差的,然后再在大盤中選擇m只收益率最差的進(jìn)來
二、實(shí)現(xiàn)
選取滬深300,選擇10只股票持有,2只作為調(diào)倉,最后回測效果一般(咩,cnm,笑臉),但在股災(zāi)區(qū)間表現(xiàn)卻很亮眼
# 導(dǎo)入函數(shù)庫
from jqdata import *# 初始化函數(shù),設(shè)定基準(zhǔn)等等
def initialize(context):# 設(shè)定滬深300作為基準(zhǔn)set_benchmark('000300.XSHG')# 開啟動態(tài)復(fù)權(quán)模式(真實(shí)價(jià)格)set_option('use_real_price', True)# 股票類每筆交易時(shí)的手續(xù)費(fèi)是:買入時(shí)傭金萬分之三,賣出時(shí)傭金萬分之三加千分之一印花稅, 每筆交易傭金最低扣5塊錢set_order_cost(OrderCost(close_tax=0.001, open_commission=0.0003, close_commission=0.0003, min_commission=5), type='stock')g.security=get_index_stocks("000300.XSHG")g.period=3 g.N=10g.M=2run_monthly(handle,10)stocks=get_sorted(context,g.security)[-g.N:]cash=context.portfolio.available_cash/len(stocks)for stock in stocks:order_value(stock,cash)def get_sorted(context,stocks):df=history(g.period, field="close", security_list=stocks).Tdf["ret"]=(df.iloc[:,-1]-df.iloc[:,0])/df.iloc[:,0]df=df.sort(columns="ret")return df.index.valuesdef handle(context):stocks=get_sorted(context,context.portfolio.positions.keys())for stock in stocks[:g.M]:order_target(stock,0)stocks=get_sorted(context,g.security)cash=context.portfolio.available_cash/g.Mfor stock in stocks:if len(context.portfolio.positions)>=10:breakif stock not in context.portfolio.positions:order_target(stock,cash)
總結(jié)
以上是生活随笔為你收集整理的python量化羊驼法则的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。