日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【量化投资】策略三(聚宽)

發布時間:2025/4/16 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【量化投资】策略三(聚宽) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡述

這是關于聚寬上的一個策略的改版。本來這個教程是講小市值策略的。但是我覺得這個數值太難看了。就換成了大市值的來做。其他基本不變。

這次在之前的策略二的基礎上,做出了下面的兩個改變

  • 通過滬深300跟其ma20數值來做判斷得到一個比值,來決定買入時使用的錢的比例
  • 限制了選股區間(選什么題材的股)

相比于沒有加這兩個的策略來說,提高了年化10%的收益率吧

代碼

from jqlib.technical_analysis import *def initialize(context):g.stocksnum = 5 # 持有最小市值股票數g.period = 10 # 輪動頻率log.set_level('order', 'error')run_daily(daily, time='before_open') # 周期循環dailyrun_daily(mktopen, time='every_bar')g.days = 1 # 記錄策略進行到第幾天,初始為1g.holdpct = 1def trade(context, buylist):# 對于每個當下持有的股票進行判斷:現在是否已經不在buylist里,如果是則賣出for stock in context.portfolio.positions:if stock not in buylist: # 如果stock不在buylistorder_target(stock, 0) # 調整stock的持倉為0,即賣出# 將總資產(現金+股票)除以持股數g.stocksnumposition_per_stk = g.holdpct * context.portfolio.total_value / g.stocksnum# 調整buylist中的每個股票持倉價值為position_per_stkfor stock in buylist:order_target_value(stock, position_per_stk)# 止損 def stop(context):# 循環查看持倉的每個股票for stock in context.portfolio.positions:# 如果股票最新價格除以平均成本小于0.8,即虧損超過20%if context.portfolio.positions[stock].price / context.portfolio.positions[stock].avg_cost < 0.8:# 調整stock的持倉為0,即賣出order_target(stock, 0)# 輸出日志:股票名 止損print "\n%s 止損" % stockdef pick(context):date = context.current_dt.strftime("%Y-%m-%d")# # 獲取上證指數和深證綜指的成分股代碼并連接,即為全A股市場所有股票# scu = get_index_stocks('000001.XSHG') + get_index_stocks('399106.XSHE')scu = get_industry_stocks('HY007') + get_industry_stocks('801180') + get_concept_stocks('GN069')# 選出在scu內的股票的股票代碼,并按照當前時間市值從小到大排序df = get_fundamentals(query(valuation.code, valuation.market_cap).filter(valuation.code.in_(scu)).order_by(valuation.market_cap.desc()), date=date)# 取出前g.stocksnum名的股票代碼,并轉成list類型,buylist為選中的股票buylist = list(df['code'][:g.stocksnum])return buylistdef mktopen(context):# 每分鐘止損stop(context)def mkt_index(context):mktindex = history(count=1, field='close', security_list=['000300.XSHG'])mktindex = mktindex.ix[-1, '000300.XSHG']date =context.current_dt.strftime("%Y-%m-%d")ma20 = MA(['000300.XSHG'], check_date=date, timeperiod=20)ma20 = ma20['000300.XSHG']if mktindex > ma20:return 1return 0.5def daily(context):# 判斷策略進行天數是否能被輪動頻率整除余1if g.days % g.period == 1:buylist = pick(context)g.holdpct = mkt_index(context)trade(context, buylist)else:pass # 什么也不做g.days = g.days + 1 # 策略經過天數增加1

效果圖

總結

以上是生活随笔為你收集整理的【量化投资】策略三(聚宽)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。