掘金量化3参数优化(使用掘金3的策略师必读)

本文介绍了掘金量化3平台的参数优化思想和实现步骤。通过循环遍历心目中的参数进行回测,记录并分析回测结果,以找到最佳策略参数。文章以双均线策略为例,详细阐述如何配置基础策略、记录回测指标和进行结果排序,提醒注意避免过拟合问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原 掘金量化3参数优化(使用掘金3的策略师必读)

参数优化目的

​ 我们在进行策略编写时,很容易受到参数调整的困扰,比如说双均线策略,到底长短均线的周期怎么来定义?“5日线”和“10日线”组合一定是最好的吗?如果多次回测,怎么记录回测结果?

​ 带着这些疑问,我们来共同探讨掘金量化3的参数优化示例程序。

参数优化思想

​ 我们将心目中的参数进行循环遍历回测,记录每次回测结果和参数,然后就可以根据某种规则将回测结果排序,这样就可以找到最好的参数了,当然,建议不要用“最好”的参数,因为可能会出现“过拟合”问题。

参数优化实现步骤

基础配置

  • 首先,需要有个策略(init函数和on_bar(tick)函数或algo函数),策略里面有参数可以调整(废话)。

  • 将两个策略函数复制进示例程序中替代示例策略。

  • 调整run里面回测的各个参数。

记录每次回测结果

def on_backtest_finished(context, indicator):
    report=[indicator['pnl_ratio'],indicator['pnl_ratio_annual'],indicator['sharp_ratio'],indicator['max_drawdown'],context.short,context.long]
 
掘金量化平台是一个专注于量化交易的平台,它提供了多种工具和功能来支持用户进行策略回测和仿真交易。该平台不仅支持多种金融产品的交易策略开发,还提供了一个丰富的策略库和详细的教程,帮助用户构建自己的交易系统[^2]。以下是基于掘金量化平台特性和文档资料整理出的三种常用交易策略示例: ### 多因子选股策略 多因子选股策略是一种基于多个财务或市场指标筛选股票的方法。这些因子可以包括市盈率(PE)、市净率(PB)、盈利增长率、动量效应等。通过综合评估这些因子,投资者可以选择那些在多个维度上表现良好的股票。例如,在掘金量化平台中,可以通过编Python脚本来实现这一策略,利用平台提供的API获取所需的数据,并根据预设的因子权重计算得分,最终选出得分最高的股票组合。这种方法的优势在于可以同时考虑多个影响股价的因素,从而提高投资决策的质量。 ### 技术指标结合的交易策略 技术分析是量化交易中的一个重要组成部分,而技术指标则是技术分析的核心工具。掘金量化平台支持使用Talib这样的金融库来计算各种技术指标,如移动平均线(MA)、相对强弱指数(RSI)、布林带(Bollinger Bands)等。一个简单的交易策略可能是当短期移动平均线上穿长期移动平均线时买入,反之则卖出。此外,还可以结合RSI指标来判断市场的超买或超卖状态,进一步优化交易信号。这种策略的优点在于能够快速响应市场变化,并且适用于多种时间框架。 ### 配对交易策略 配对交易是一种统计套利策略,其基本思路是在两个相关性较高的资产之间寻找价格差异进行交易。当两个资产的价格差异扩大到一定程度时,预期这种差异会缩小,于是采取相应的买卖操作以获利。在掘金量化平台上,可以使用历史数据来确定资产间的相关性,并通过回归分析来估计它们之间的关系。一旦发现价格偏离了正常范围,就可以执行交易。这种方法特别适合那些希望利用市场短期非效率来获取收益的投资者。 以上三种策略只是掘金量化平台上可以实现的众多策略中的一部分。实际上,用户可以根据自己的投资理念和市场理解,结合平台提供的强大工具和API接口,创造出更加复杂和个性化的交易策略。 ```python # 示例代码:简单移动平均线交叉策略 from gm.api import * def init(context): # 订阅标的 context.symbol = &#39;SHSE.600000&#39; # 设置滑点 set_slippage(symbol=context.symbol, type=&#39;fixed&#39;, value=0.01) # 设置手续费 set_commission(symbol=context.symbol, type=&#39;ratio&#39;, value=0.001) def on_bar(context, bars): # 获取历史数据 history_data = get_history(symbol=context.symbol, frequency=&#39;1d&#39;, count=20, fields=&#39;close&#39;) close_prices = history_data[&#39;close&#39;].values # 计算短期和长期移动平均线 short_ma = close_prices[-5:].mean() long_ma = close_prices.mean() # 获取当前仓位 position = get_position(symbol=context.symbol) # 如果短期均线上穿长期均线,则买入 if short_ma > long_ma and not position: order_value(symbol=context.symbol, value=10000) # 如果短期均线下穿长期均线,则卖出 elif short_ma < long_ma and position: order_close_all(symbol=context.symbol) if __name__ == &#39;__main__&#39;: run(strategy_id=&#39;your_strategy_id&#39;, filename=&#39;file_path&#39;, mode=MODE_BACKTEST, token=&#39;your_token&#39;) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值