optimize

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese
Create a parameter optimization script for a VectorBT strategy.
为VectorBT策略创建参数优化脚本。

Arguments

参数

Parse
$ARGUMENTS
as: strategy symbol exchange interval
  • $0
    = strategy name (e.g., ema-crossover, rsi, donchian). Default: ema-crossover
  • $1
    = symbol (e.g., SBIN, RELIANCE, NIFTY). Default: SBIN
  • $2
    = exchange (e.g., NSE, NFO). Default: NSE
  • $3
    = interval (e.g., D, 1h, 5m). Default: D
If no arguments, ask the user which strategy to optimize.
$ARGUMENTS
解析为:策略 标的 交易所 时间周期
  • $0
    = 策略名称(例如:ema-crossover、rsi、donchian)。默认值:ema-crossover
  • $1
    = 标的(例如:SBIN、RELIANCE、NIFTY)。默认值:SBIN
  • $2
    = 交易所(例如:NSE、NFO)。默认值:NSE
  • $3
    = 时间周期(例如:D、1h、5m)。默认值:D
如果未提供参数,请询问用户要优化哪个策略。

Instructions

说明

  1. Read the vectorbt-expert skill for reference patterns
  2. Create a
    .py
    file in
    D:\QuantFlow 3\Day17\backtesting\
    named
    {symbol}_{strategy}_optimize.py
  3. The script must:
    • Load
      .env
      and fetch data via OpenAlgo
      client.history()
    • Define sensible parameter ranges for the chosen strategy
    • Use loop-based optimization (not broadcasting) to collect multiple metrics per combo
    • Track: total_return, sharpe_ratio, max_drawdown, trade_count for each combination
    • Use
      tqdm
      for progress bars
    • Find best parameters by total return AND by minimum drawdown
    • Print top 10 results for both criteria
    • Generate Plotly heatmap of total return across parameter grid
    • Generate Plotly heatmap of max drawdown across parameter grid
    • Save results to CSV
  4. Never use icons/emojis in code or logger output
  5. For futures symbols, use lot-size-aware sizing
  1. 参考vectorbt-expert技能中的模式
  2. D:\QuantFlow 3\Day17\backtesting\
    目录下创建一个名为
    {symbol}_{strategy}_optimize.py
    .py
    文件
  3. 脚本必须:
    • 加载
      .env
      文件并通过OpenAlgo的
      client.history()
      获取数据
    • 为所选策略定义合理的参数范围
    • 使用基于循环的优化(而非广播)来收集每个参数组合的多个指标
    • 跟踪每个组合的:total_return(总收益)、sharpe_ratio(夏普比率)、max_drawdown(最大回撤)、trade_count(交易次数)
    • 使用
      tqdm
      显示进度条
    • 根据总收益和最小回撤分别找出最优参数
    • 打印这两个标准下的前10个结果
    • 生成参数网格上总收益的Plotly热力图
    • 生成参数网格上最大回撤的Plotly热力图
    • 将结果保存为CSV
  4. 代码或日志输出中不得使用图标/表情符号
  5. 对于期货标的,使用考虑合约大小的仓位调整

Default Parameter Ranges

默认参数范围

StrategyParameter 1Parameter 2
ema-crossoverfast EMA: 5-50slow EMA: 10-60
rsiwindow: 5-30oversold: 20-40
donchianperiod: 5-50-
supertrendperiod: 5-30multiplier: 1.0-5.0
策略参数1参数2
ema-crossover快速EMA:5-50慢速EMA:10-60
rsi窗口:5-30超卖:20-40
donchian周期:5-50-
supertrend周期:5-30乘数:1.0-5.0

Example Usage

示例用法

/optimize ema-crossover RELIANCE NSE D
/optimize rsi SBIN
/optimize ema-crossover RELIANCE NSE D
/optimize rsi SBIN