01 量化新手第一步
除了数据之外,量化新手第一步应该做什么呢?——时间序列的风险、收益分析。
无论是什么投资标的,无外乎就是时间序列,你按日频也好,分钟也罢都是如此。在时间序列之上,传统的技术分析就是用这些价量数据的统计关键,形态分析构建无数的规则和因子。
无论是股票,指数,ETF,可转债还是期货,都可以搁到这里进行分析,上图,我对沪深300,中证500以及创业板指数,做了历史风险收益分析,以及互相的相关系数计算。
可以看到,小市值风险高、长期预期收益也高,与我们的认知一致。
import pandas as pd import streamlit as st from config import DATA_DIR from datafeed.data_builder import get_basic_list from engine.performance import PerformanceUtils @st.cache_data def load_basic_list(): return get_basic_list() def func_basic(x): item = load_basic_list()[x] return '{}|{}'.format(item['name'], item['symbol']) def build_page(): st.write('时间序列风险,收益分析') symbols = st.multiselect(label='请选择投资标的', default=['000300.SH'], options=list(load_basic_list().keys()), format_func=lambda x: func_basic(x)) cols = [] for s in symbols: df = pd.read_csv(DATA_DIR.joinpath('quotes').joinpath('{}.csv'.format(s))) df['date'] = df['date'].apply(lambda x:str(x)) df.index = df['date'] se = df['close'] se.name = s cols.append(se) print(cols) all = pd.concat(cols, axis=1) all.sort_values(by='date', ascending=True,inplace=True) all.dropna(inplace=True) equity = (all.pct_change()+1).cumprod() print(equity) st.line_chart(equity) df_ratio,df_corr = PerformanceUtils().calc_equity(df_equity=equity) col1, col2 = st.columns(2) with col1: st.write(df_ratio) with col2: st.write(df_corr)
在做更一步的的策略开发前,对所以交易对象的风险收益特性做到了然于胸非常关键。
数据在工程如下位置:
代码在工程如下位置:
请大家前往星球更新最新代码和数据:
直接运行main.py即可启动软件。
在量化领域,界面仅是辅助,最重要的是因子,规则与策略。
果仁网还是传统量化规则,只有选股与排序规则。
果仁内置的因子比较多,可以配置比较丰富的规则,玩法也自然比较多。
背后需要时序数据(后复权日线)以及财务数据库,还有一些高管增、减持 ,分析师观点等周边数据,这些数据相对A股而言并不难准备。而且我们仅需要2010年以后的数据,之前的市场规则变化太多,也没有什么特别的意义了。
Quantlab3.9代码:内置大模型LLM因子挖掘,全A股数据源以及自带GUI界面
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103434
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!