backtest
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseCreate a complete VectorBT backtest script for the user.
为用户创建完整的VectorBT回测脚本。
Arguments
参数说明
Parse as: strategy symbol exchange interval
$ARGUMENTS- = strategy name (e.g., ema-crossover, rsi, donchian, supertrend, macd, sda2, momentum)
$0 - = symbol (e.g., SBIN, RELIANCE, NIFTY). Default: SBIN
$1 - = exchange (e.g., NSE, NFO). Default: NSE
$2 - = interval (e.g., D, 1h, 5m). Default: D
$3
If no arguments, ask the user which strategy they want.
将解析为:策略名称 交易标的 交易所 时间周期
$ARGUMENTS- = 策略名称(例如:ema-crossover、rsi、donchian、supertrend、macd、sda2、momentum)
$0 - = 交易标的(例如:SBIN、RELIANCE、NIFTY)。默认值:SBIN
$1 - = 交易所(例如:NSE、NFO)。默认值:NSE
$2 - = 时间周期(例如:D、1h、5m)。默认值:D
$3
若未提供参数,请询问用户所需的策略类型。
Instructions
操作步骤
- Read the vectorbt-expert skill for reference patterns
- Create a file in
.pynamedD:\QuantFlow 3\Day17\backtesting\{symbol}_{strategy}_backtest.py - The script must:
- Load from the script directory for OpenAlgo credentials
.env - Fetch data via from OpenAlgo
client.history() - Implement the requested strategy using vectorbt + openalgo.ta helpers
- Use to clean duplicate signals
ta.exrem() - Run with proper sizing (percent for equities, value for futures)
vbt.Portfolio.from_signals() - Print full
pf.stats() - Print key metrics: total return, sharpe, max drawdown, win rate, trade count
- Plot equity curve + drawdown ()
subplots=['value', 'underwater', 'cum_returns'] - Export trades to CSV
- Load
- Never use icons/emojis in code or logger output
- For futures symbols (NIFTY, BANKNIFTY), use lot-size-aware sizing with and
min_sizesize_granularity
- 参考vectorbt-expert技能中的模式
- 在目录下创建名为
D:\QuantFlow 3\Day17\backtesting\的.py文件{symbol}_{strategy}_backtest.py - 脚本必须实现以下功能:
- 从脚本目录加载文件以获取OpenAlgo凭证
.env - 通过从OpenAlgo获取数据
client.history() - 使用vectorbt + openalgo.ta工具类实现请求的策略
- 使用清理重复信号
ta.exrem() - 调用并设置合适的仓位规模(股票使用百分比模式,期货使用固定价值模式)
vbt.Portfolio.from_signals() - 打印完整的结果
pf.stats() - 打印关键指标:总收益率、夏普比率、最大回撤、胜率、交易次数
- 绘制权益曲线 + 回撤图(设置)
subplots=['value', 'underwater', 'cum_returns'] - 将交易记录导出为CSV文件
- 从脚本目录加载
- 代码或日志输出中不得使用图标/表情符号
- 对于期货标的(如NIFTY、BANKNIFTY),需结合合约规模设置仓位,使用和
min_size参数size_granularity
Available Strategies
支持的策略
| Strategy | Keyword | Description |
|---|---|---|
| EMA Crossover | | Fast/slow EMA crossover |
| RSI | | RSI oversold/overbought |
| Donchian Channel | | Donchian channel breakout |
| Supertrend | | Supertrend indicator signals |
| MACD Breakout | | MACD zero-line signal candle breakout |
| SDA2 | | SDA2 trend following channel |
| Momentum | | Double momentum (MOM + MOM of MOM) |
| Dual Momentum | | Relative momentum between 2 ETFs |
| 策略名称 | 关键词 | 描述 |
|---|---|---|
| EMA交叉策略 | | 快慢EMA交叉信号 |
| RSI策略 | | RSI超买超卖信号 |
| 唐奇安通道策略 | | 唐奇安通道突破信号 |
| Supertrend策略 | | Supertrend指标信号 |
| MACD突破策略 | | MACD零轴信号K线突破 |
| SDA2策略 | | SDA2趋势跟踪通道 |
| 动量策略 | | 双重动量(MOM + MOM的MOM) |
| 双重动量策略 | | 两只ETF之间的相对动量 |
Example Usage
使用示例
/backtest ema-crossover RELIANCE NSE D/backtest rsi SBIN/backtest supertrend NIFTY NFO 5m/backtest ema-crossover RELIANCE NSE D/backtest rsi SBIN/backtest supertrend NIFTY NFO 5m