todo:1,卖点:对私募和公墓进行择时,而非长期持有,销售希望卖长期持有多赚钱和单一资产/策略有下跌期,存在利益冲突,不是为了客户利益最大化。
Log: 1,20240523,从“-量化策略”中将动量策略回测迁移过来。
20240523,quote目录从C:\rc_2023\rc_202X\data_pms\wind_terminal\bond_convertible\ 转到 C:\rc_2023\rc_202X\data_pms\wind_terminal\
代码文件地址:C:\rc_2023\rc_202X\data_pms\wind_terminal\quote\0list_code.xlsx
功能:输入代码和频率等相关参数,测试该择时策略的有效性。 INPUT:1,单一证券的行情时间序列文件|默认文件是日频率:file=511380.SH,511380.SH_15min.xlsx ;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote INPUT:2,证券代码列表文件;file=0list_code.xlsx;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote 分析指标-策略算法文件py:1,file= OUTPUT:file_template= ;path=D:\CISS_db\strategy\stra_momentum
Notes:1,若选择2+指标数量前,需要先完成单指标信号和绩效的计算,因为需要先从单指标绩效文件中提取有相对收益或风险的指标。
主流择时策略均显示了显著的超额收益和更低回撤,如510300,513010,159967,588080,510500,512100 OUTPUT:PATH= C:\rc_2023\rc_202X\data_ciss_exhi\stra_momentum
若要画净值图,按如下方式运行服务器 python manage.py runserver --nothreading --noreload 净值图保存位置:C:\rc_2023\rc_202X\ciss_web\static\pictures\strategy\temp.PNG
功能:在择时策略结果的基础上进行改进,按ma-x的信号,每次买入后x/2 ~ x 天内不能卖,避免来回买卖 持有期,如最少持有3~100个交易日后才能卖出,卖出后x/2个交易日才能买入 INPUT:数据文件|默认文件是日频率:file=511380.SH,511380.SH_15min.xlsx ;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote 分析指标-策略算法文件py:1,file= OUTPUT:file_template=C:\rc_2023\rc_202X\data_ciss_exhi\stra_momentum
市场背景:A股牛短熊长,大部分时间都是在下跌震荡,需要在下跌震荡中抢反弹;国内债券市场长牛低波,需要寻找在上涨震荡中的盈利模式。 功能:对品种在无趋势期间,采取区间内低买高卖的策略 小结: 小结: INPUT:数据文件|默认文件是日频率:file=511380.SH,511380.SH_15min.xlsx ;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote 分析指标-策略算法文件py:1,file= OUTPUT:file_template=C:\rc_2023\rc_202X\data_ciss_exhi\stra_momentum
功能:1,对所有样本池证券,用同一种固定的策略指标及参数测算;2,对不同证券,用给定的不同策略指标及参数测算 INPUT:0,list_code 证券代码列表文件;file=0list_code.xlsx;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote 回撤步骤:1,每40天调整样本池;2,每个交易日计算样本池内品种的交易信号;3,根据权重分配,计算组合收益率 INPUT:1,数据文件|默认文件是日频率:file=511380.SH,511380.SH_15min.xlsx ;path=C:\rc_2023\rc_202X\data_pms\wind_terminal\quote 2,导入证券对应策略及参数的excel表格 OUTPUT:file_template=C:\rc_2023\rc_202X\data_ciss_exhi\stra_momentum notes:小结:日线频率,即便用3周更短线的策略,依然会面临基础资产波动小+在1.0 +/-8%左右波动,导致的缺乏赚钱机会。可能更适合的方式是在30分钟频率下,通过8~16个周期内做短波段来赚钱。 notes:由于不同资产交易日不同,可能会出现证券x在某个日期前无收盘价,此时日收益率用 交易费率0.1%或 0 替代。 notes:240419,平滑了交易信号,如【0,1,1】才能买入,和【1,0,0】才能卖出,def tool_signal_lazy,file=indicator_momentum.py
证券池:导入file=0list_code里 if_port=是否属于组合=1的代码。 选股因子权重及打分:引入季度总分数据;无【后期可考虑加入 】 调仓频率:3日、8日、15日、30日 Notes:不同起始时间不同,都有净值的区间一般从 20211122;20211122开始有7个有历史数据
notes:
OUTPUT: port_str_mid= ||
notes:todo,调仓频率,单券权重上限,组合权重上限,目前还没用
OUPUT:
OUPUT:df_stra_ma= ;
评估指标和参数需要关注:1,指标在某一参数下的绩效较好,需要观察相近参数策略是否具有类似表现,避免单一参数对应的特定时点交易没有可复制性。 2,关注持仓时间占比,若超过80%,收益可能更多来自于持有而非策略择时。 3,同样表现下,优先选择最大回撤更小的、再选择参数最接近0.0的。例如,最大回测每减小1%,累计收益可以减少2% notes:
TODO:
log,20240606,Idea,均线策略本质上都是追涨,但是长牛低波品种会不如简单持有,只有长牛高波动品种用趋势才有意义。80%的没有趋势的时间内,区间内低买高卖才是高确定性。比如对于转债ETF这类低波动区间品种,反而应该在区间的显著低点买才合适,比如近60/120天价格百分比最低10%+ 最近8/16天波动放大+成交额变大 Qs:以沪深300为例,p_ma40_0.0单指标在长期的下跌中确实可以减少部分回撤,2014-2015大涨中可以跟上涨幅。但是2019~2020的牛市中却无法跟上,反映出策略开始失效。ma_up_16_0.0在2016年后表现甚至比p_ma_40还要差很多。 Ana:需要在不同的市场环境下用不同的策略:idea1:顺趋势,每隔40个交易日,选择过去 市场和资产情景分类:up,down,flat。短期8d,中期40d,长期100d。除了最理想的短中长期均匀发散,大部分时候其实是在震荡。 来看,如果最近120天市场震荡幅度小于过去500天,
功能:对品种在无趋势期间,采取区间内低买高卖的策略 小结:日线频率,即便用3周更短线的策略,依然会面临基础资产波动小+在1.0 +/-8%左右波动,导致的缺乏赚钱机会。可能更适合的方式是在30分钟频率下,通过8~16个周期内做短波段来赚钱。 小结:截至231123,2周以内的小区间震荡策略,对于个券和指数上,并没有明显优于标的本身的收益和回撤; 中证1000ETF,优。512100.SH,osci2_p_ma_40__-0.045策略净值1.1558,mdd=0,持有时间1.05%;同期512100基金净值0.9047,mdd=-22.81%,超额收益比较显著。 等权889033.WI,良。没有明显优于标的本身的收益和回撤,但也没有很差
确定股票目前处于震荡状态:ma8和ma40的近10日平均or最大偏离幅度不超过一定比例。 震荡或无趋势的定义:(ma_short - ma_long)/ma_long 偏离幅度 小于 5% ; osci1,区间的上下沿-买入:连续10个交易日收盘价低于ma8后第一天突破,买入;卖出:连续10个交易日收盘价高于ma8后第一天突破,买入; ======== osci2,区间的上下沿-买入:close/ma8连续扩大3天; 卖出:close/ma8连续收窄3天; ======== osci3,区间的上下沿-买入:ma8或16_up,负值(ma下跌)连续超过8天后第一天转负; 卖出:ma8或16_up,正值(ma上升)后第一天转负; 主要上下区间(算法:q25-std+1%,q75+std-1%):p_ma8,-5%,+5%;p_ma16,-7%~7%;p_ma40,-10%,10%;p_ma60-12%,12%.ma_up_8,-0.3,0.3%,ma_up_16,-0.2,+0.2%;ma_up_40,-0.15%,0.15%;ma_up_60, -0.13%,0.13%.