之前我们说过,策略开发(回测)与实盘,我们建议是分开考虑的。
因此,策略开发依赖的回测框架,不强求实盘功能。
而市场上开源的回测框很多,很多新手不知道用哪个?
我的建议是多试试,每个框架有其设计理念和出发点,然后再决定选择合适自己的。
bt(不是backtrader)的优点是做资产配置,内置了风险平价,波动率控制等算子,可以复用。但bt的仓位管理是等权或者风险平价,而“不支持”买入多少股之类的——当然按仓位比例其实是够用的。
昨天发布的策略,年化21%:年化达21%(K=1),最大回撤35%,K=3时,卡玛比最优,最大回撤20%(年化15.2%)| Quantlab5.0代码发布
在Quantlab5.x开始,我们会引入多个底层框架,当某个策略最适合某个框架时,就选用它。
今天回到pybroker—一个兼容机器学习和传统规则量化的回测框架。
它还支持numba加速,数据缓存等。
首先当然还是数据,尽管pybroker支持yfinance, akshare等datasource,我们还是直接使用dataframe。
@staticmethod def get_df(symbols: list[str], set_index=False, start_date='20100101'): dfs = [] for s in symbols: df = CSVDataloader.read_csv(s) if df is not None: dfs.append(df) df = pd.concat(dfs, axis=0) if set_index: df.set_index('date', inplace=True) df.index = pd.to_datetime(df.index) df.sort_index(inplace=True, ascending=True) df = df[start_date:] else: df.sort_values(by='date', ascending=True, inplace=True) df = df[df['date']>=start_date] return df
它的数据格式与bt不同,bt是把所有close抽出来,而pybroker把所有dataframe叠加在一起。
写一个策略特别简单——pybroker支持多个子策略复合,
就是add_execution,加一个函数以及对应的symbols列表:
def buy_and_hold(ctx): if ctx.long_pos(): return ctx.buy_shares = ctx.calc_target_shares(0.3) from pybroker import Strategy strategy = Strategy(data, '20100101','20240601') strategy.add_execution(buy_and_hold, ['000300.SH', '000905.SH','159915.SZ']) #strategy.add_execution(short_high, ['159915.SZ']) result = strategy.backtest() result.orders
交易之道
期货交易者追求平稳收益曲线,即通过多次交易逐步积累利润。这种策略对大资金投资者适用,因为他们能承受更大回撤,适合轻仓长线。
然而,对于资金量较小的投资者,这种策略可能并不理想。小资金投资者应采取更激进的策略,如重仓甚至梭哈,同时严格控制止损,以实现快速翻倍。
大资金和小资金在相同收益率下,收益金额差异巨大。
小资金若过于保守,难以在期货市场取得显著成就。
期货市场高杠杆特性意味着高风险高回报,小资金投资者应敢于抓住大行情。
如果追求稳定收益,期货可能不是最佳选择,其他更稳健的投资方式可能更合适。
投资者应根据自己的资金量和风险承受能力,选择合适的交易策略。
吾日三省吾身
《出奇制胜:在快速变化的世界如何加速成功》,这本书里讲了很多“出奇制胜”的招数,其中有一个就是我们在:以交易为生,定一个小目标|10倍法则:思考与行动,提及的——10倍法则,有些事情,做得10倍好,比提升10%会更加容易。
把目标提升10倍很容易,但你与之匹配的努力也需要提升10倍。
比如你做自媒体,原先一天写1000字左右,现在要在质量不明显下降的条件下,每天写出10000字的原创稿件。——这个付出的心力可想而知!
10个的思考+10倍的努力才是关键中的关键——知行合一,知易而行难。
聚焦而专注,当下你最关心财富自由,那么一切非此无关之事,都应该少投入或不投入精力,懂重取舍。
——成功的关键是找到你生命中最重要的事情,集中你的时间和精力,然后在这些事情上取得进展。
之前我们说过,策略开发(回测)与实盘,我们建议是分开考虑的。
因此,策略开发依赖的回测框架,不强求实盘功能。
而市场上开源的回测框很多,很多新手不知道用哪个?
我的建议是多试试,每个框架有其设计理念和出发点,然后再决定选择合适自己的。
bt(不是backtrader)的优点是做资产配置,内置了风险平价,波动率控制等算子,可以复用。但bt的仓位管理是等权或者风险平价,而“不支持”买入多少股之类的——当然按仓位比例其实是够用的。
昨天发布的策略,年化21%:年化达21%(K=1),最大回撤35%,K=3时,卡玛比最优,最大回撤20%(年化15.2%)| Quantlab5.0代码发布
在Quantlab5.x开始,我们会引入多个底层框架,当某个策略最适合某个框架时,就选用它。
今天回到pybroker—一个兼容机器学习和传统规则量化的回测框架。
它还支持numba加速,数据缓存等。
首先当然还是数据,尽管pybroker支持yfinance, akshare等datasource,我们还是直接使用dataframe。
@staticmethod def get_df(symbols: list[str], set_index=False, start_date='20100101'): dfs = [] for s in symbols: df = CSVDataloader.read_csv(s) if df is not None: dfs.append(df) df = pd.concat(dfs, axis=0) if set_index: df.set_index('date', inplace=True) df.index = pd.to_datetime(df.index) df.sort_index(inplace=True, ascending=True) df = df[start_date:] else: df.sort_values(by='date', ascending=True, inplace=True) df = df[df['date']>=start_date] return df
它的数据格式与bt不同,bt是把所有close抽出来,而pybroker把所有dataframe叠加在一起。
写一个策略特别简单——pybroker支持多个子策略复合,
就是add_execution,加一个函数以及对应的symbols列表:
def buy_and_hold(ctx): if ctx.long_pos(): return ctx.buy_shares = ctx.calc_target_shares(0.3) from pybroker import Strategy strategy = Strategy(data, '20100101','20240601') strategy.add_execution(buy_and_hold, ['000300.SH', '000905.SH','159915.SZ']) #strategy.add_execution(short_high, ['159915.SZ']) result = strategy.backtest() result.orders
交易之道
期货交易者追求平稳收益曲线,即通过多次交易逐步积累利润。这种策略对大资金投资者适用,因为他们能承受更大回撤,适合轻仓长线。
然而,对于资金量较小的投资者,这种策略可能并不理想。小资金投资者应采取更激进的策略,如重仓甚至梭哈,同时严格控制止损,以实现快速翻倍。
大资金和小资金在相同收益率下,收益金额差异巨大。
小资金若过于保守,难以在期货市场取得显著成就。
期货市场高杠杆特性意味着高风险高回报,小资金投资者应敢于抓住大行情。
如果追求稳定收益,期货可能不是最佳选择,其他更稳健的投资方式可能更合适。
投资者应根据自己的资金量和风险承受能力,选择合适的交易策略。
吾日三省吾身
《出奇制胜:在快速变化的世界如何加速成功》,这本书里讲了很多“出奇制胜”的招数,其中有一个就是我们在:以交易为生,定一个小目标|10倍法则:思考与行动,提及的——10倍法则,有些事情,做得10倍好,比提升10%会更加容易。
把目标提升10倍很容易,但你与之匹配的努力也需要提升10倍。
比如你做自媒体,原先一天写1000字左右,现在要在质量不明显下降的条件下,每天写出10000字的原创稿件。——这个付出的心力可想而知!
10个的思考+10倍的努力才是关键中的关键——知行合一,知易而行难。
聚焦而专注,当下你最关心财富自由,那么一切非此无关之事,都应该少投入或不投入精力,懂重取舍。
——成功的关键是找到你生命中最重要的事情,集中你的时间和精力,然后在这些事情上取得进展。
发布者:股市刺客,转载请注明出处:https://www.95sca.cn/archives/103219
站内所有文章皆来自网络转载或读者投稿,请勿用于商业用途。如有侵权、不妥之处,请联系站长并出示版权证明以便删除。敬请谅解!