中文导读
homepage":"https://gitcode.com/datavoid/quantcli","user-invocable":true} 是一套面向一人公司的通用 playbook,帮助你用更少的人力完成更稳的增长、交付与决策。
概览
Multi-Factor Strategy Assistant Guide you to create multi-factor stock selection strategies and generate independent YAML configuration files. Install quantcli
Install from PyPI (recommended)
pip install quantcli
Or install from source
git clone https://gitcode.com/datavoid/quantcli.git cd quantcli pip install -e . Verify installation: quantcli --help
快速开始
A complete multi-factor stock selection strategy YAML example:
- name: Value-Growth Hybrid Strategy
- version: 1.0.0
- description: ROE + Momentum factor stock selection
- screening:
- fundamental_conditions: # Stage 1: Financial condition screening
- "roe > 0.10" # ROE > 10%
- "pe_ttm < 30" # P/E < 30
- "pe_ttm > 0" # Exclude losses
- daily_conditions: # Stage 2: Price condition screening
- "close > ma10" # Above 10-day MA
- limit: 100 # Keep at most 100 stocks
Factor configuration (supports two methods, factors at top level)
factors:
Method 1: Inline factor definition
- name: ma10_deviation
expr: "(close - ma(close, 10)) / ma(close, 10)" direction: negative description: "10-day MA deviation"
Method 2: External reference (reference factor files in factors/ directory, include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_008.yaml
ranking:
- weights: # Weight fusion
- ma10_deviation: 0.20 # Inline factor
- factors/alpha_001.yaml: 0.40 # External reference factor
- factors/alpha_008.yaml: 0.40
- normalize: zscore # Normalization method
- output:
- limit: 30 # Output top 30 stocks
- columns: [symbol, name, score, roe, pe_ttm, close, ma10_deviation]
- Factor Configuration Methods
- Factor configuration supports two methods (can be mixed):
- MethodTypeExampleDescriptionInlinedict{name: xxx, expr: "..."}Define expression directly in YAMLExternalstrfactors/alpha_001.yamlLoad factor file from factors/ directory
- Example: Mixed usage
- factors:
Inline: Custom factor
- name: custom_momentum
expr: "close / delay(close, 20) - 1" direction: positive
External: Alpha101 factor library (include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_005.yaml
- factors/alpha_009.yaml
ranking:
- weights:
- custom_momentum: 0.3
- factors/alpha_001.yaml: 0.3
- factors/alpha_005.yaml: 0.2
- factors/alpha_009.yaml: 0.2
- Run strategy:
- quantcli filter run -f your_strategy.yaml
- Invocation
- /multi-factor-strategy
- Available Expression Functions
- Data Processing Functions
- FunctionUsageDescriptiondelaydelay(x, n)Lag n periodsmama(x, n)Simple moving averageemaema(x, n)Exponential moving averagerolling_sumrolling_sum(x, n)Rolling sumrolling_stdrolling_std(x, n)Rolling standard deviation
- Technical Indicator Functions
- FunctionUsageDescriptionrsirsi(x, n=14)Relative strength indexcorrelationcorrelation(x, y, n)Correlation coefficientcross_upcross_up(a, b)Golden cross (a crosses above b)cross_downcross_down(a, b)Death cross (a crosses below b)
- Ranking & Normalization Functions
- FunctionUsageDescriptionrankrank(x)Cross-sectional ranking (0-1)zscorezscore(x)Standardizationsignsign(x)Sign functionclampclamp(x, min, max)Clipping function
- Conditional Functions
- FunctionUsageDescriptionwherewhere(cond, t, f)Conditional selectionifif(cond, t, f)Conditional selection (alias)
- Base Fields
- FieldDescriptionopen, high, low, closeOHLC pricesvolumeTrading volumepe, pbP/E ratio, P/B ratioroeReturn on equitynetprofitmarginNet profit margin
- Guided Workflow
步骤 1:Strategy Goal定位
I will first understand your strategy needs:
- Strategy Type: Value, Growth, Momentum, Volatility, Hybrid
- Selection Count: Concentrated(10-30), Medium(50-100), Diversified(200+)
- Holding Period: Intraday, Short-term(week), Medium-term(month), Long-term(quarter)
步骤 2:Factor Selection
Based on your strategy goals, recommend suitable factor combinations: Common Fundamental Factors: FactorExpressionDirectionDescriptionroeroepositiveReturn on equitypepenegativeLower P/E is betterpbpbnegativePrice-to-book rationetprofitmarginnetprofitmarginpositiveNet profit marginrevenue_growthrevenue_yoypositiveRevenue growth rate Common Technical Factors: FactorExpressionDirectionDescriptionmomentum(close/delay(close,20))-1positiveN-day momentumma_deviation(close-ma(close,10))/ma(close,10)negativeMA deviationma_slope(ma(close,10)-delay(ma(close,10),5))/delay(ma(close,10),5)positiveMA slopevolume_ratiovolume/ma(volume,5)negativeVolume ratio Alpha101 Built-in Factors (can reference {baseDir}/alpha101/alpha_XXX): QuantCLI includes 40 WorldQuant Alpha101 factors that can be directly referenced: FactorCategoryDescriptionalpha101/alpha_001Reversal20-day new high then declinealpha101/alpha_002ReversalDown volume bottomalpha101/alpha_003VolatilityLow volatility stabilityalpha101/alpha_004Capital FlowNet capital inflowalpha101/alpha_005TrendUptrendalpha101/alpha_008Capital FlowCapital inflowalpha101/alpha_009MomentumLong-term momentumalpha101/alpha_010ReversalMA deviation reversalalpha101/alpha_011 ~ alpha_020ExtendedVolatility, momentum, price-volume factorsalpha101/alpha_021 ~ alpha_030ExtendedPrice-volume, trend, strength factorsalpha101/alpha_031 ~ alpha_040ExtendedPosition, volatility, capital factors
View all built-in factors:
- quantcli factors list
- Usage Example:
- factors:
- alpha101/alpha_001 # Reversal factor
- alpha101/alpha_008 # Capital inflow
- alpha101/alpha_029 # 5-day momentum
- ranking:
- weights:
- alpha101/alpha_001: 0.4
- alpha101/alpha_008: 0.3
- alpha101/alpha_029: 0.3
- Screening Conditions Example:
- screening:
- conditions:
- "roe > 0.10" # ROE > 10%
- "netprofitmargin > 0.05" # Net profit margin > 5%
步骤 3:Weight Configuration
Allocate weights based on factor importance, 0 means only for screening, not scoring:
- ranking:
- weights:
Fundamental factors
roe: 0.30 pe: 0.20
Technical factors
ma_deviation: 0.30 momentum: 0.20 normalize: zscore
步骤 4:Generate Strategy File
I will generate a complete strategy YAML file for you:
- name: Your Strategy Name
- version: 1.0.0
- description: Strategy description
Stage 1: Fundamental screening
screening:
- conditions:
- "roe > 0.10"
- "pe < 30"
- limit: 200
Stage 2: Technical ranking
ranking:
- weights:
- roe: 0.30
- pe: 0.20
- ma_deviation: 0.30
- momentum: 0.20
- normalize: zscore
- output:
- columns: [symbol, score, rank, roe, pe, momentum]
- limit: 30
步骤 5:Run & Evaluate
Run strategy:
- quantcli filter run -f your_strategy.yaml --top 30
- Evaluation points:
- Selected stock count: Check if screening conditions are reasonable
- Factor distribution: Distribution of factor scores
- Industry diversification: Avoid over-concentration
常见问题
Q: How to allocate factor weights? A: Core factors 0.3-0.4, auxiliary factors 0.1-0.2, ensure weights sum close to 1 Q: Screening conditions too strict resulting in empty results? A: Gradually relax conditions, first see how many stocks meet each condition Q: What expression syntax is supported? A: Supports 40+ built-in functions: ma(), ema(), delay(), rolling_sum(), rsi(), rank(), zscore(), etc.
SKILL.md 原文件
预览原始 SKILL.md. 下面可以直接查看完整原文。可滚动阅读、检查结构,再下载精确的 SKILL.md 原文件。
# multi-factor-strategy
{"homepage":"https://gitcode.com/datavoid/quantcli","user-invocable":true}
Multi-Factor Strategy Assistant
Guide you to create multi-factor stock selection strategies and generate independent YAML configuration files.
Install quantcli
# Install from PyPI (recommended)
pip install quantcli
# Or install from source
git clone https://gitcode.com/datavoid/quantcli.git
cd quantcli
pip install -e .
Verify installation:
quantcli --help
Quick Start
A complete multi-factor stock selection strategy YAML example:
name: Value-Growth Hybrid Strategy
version: 1.0.0
description: ROE + Momentum factor stock selection
screening:
fundamental_conditions: # Stage 1: Financial condition screening
- "roe > 0.10" # ROE > 10%
- "pe_ttm < 30" # P/E < 30
- "pe_ttm > 0" # Exclude losses
daily_conditions: # Stage 2: Price condition screening
- "close > ma10" # Above 10-day MA
limit: 100 # Keep at most 100 stocks
# Factor configuration (supports two methods, factors at top level)
factors:
# Method 1: Inline factor definition
- name: ma10_deviation
expr: "(close - ma(close, 10)) / ma(close, 10)"
direction: negative
description: "10-day MA deviation"
# Method 2: External reference (reference factor files in factors/ directory, include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_008.yaml
ranking:
weights: # Weight fusion
ma10_deviation: 0.20 # Inline factor
factors/alpha_001.yaml: 0.40 # External reference factor
factors/alpha_008.yaml: 0.40
normalize: zscore # Normalization method
output:
limit: 30 # Output top 30 stocks
columns: [symbol, name, score, roe, pe_ttm, close, ma10_deviation]
Factor Configuration Methods
Factor configuration supports two methods (can be mixed):
MethodTypeExampleDescriptionInlinedict{name: xxx, expr: "..."}Define expression directly in YAMLExternalstrfactors/alpha_001.yamlLoad factor file from factors/ directory
Example: Mixed usage
factors:
# Inline: Custom factor
- name: custom_momentum
expr: "close / delay(close, 20) - 1"
direction: positive
# External: Alpha101 factor library (include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_005.yaml
- factors/alpha_009.yaml
ranking:
weights:
custom_momentum: 0.3
factors/alpha_001.yaml: 0.3
factors/alpha_005.yaml: 0.2
factors/alpha_009.yaml: 0.2
Run strategy:
quantcli filter run -f your_strategy.yaml
Invocation
/multi-factor-strategy
Available Expression Functions
Data Processing Functions
FunctionUsageDescriptiondelaydelay(x, n)Lag n periodsmama(x, n)Simple moving averageemaema(x, n)Exponential moving averagerolling_sumrolling_sum(x, n)Rolling sumrolling_stdrolling_std(x, n)Rolling standard deviation
Technical Indicator Functions
FunctionUsageDescriptionrsirsi(x, n=14)Relative strength indexcorrelationcorrelation(x, y, n)Correlation coefficientcross_upcross_up(a, b)Golden cross (a crosses above b)cross_downcross_down(a, b)Death cross (a crosses below b)
Ranking & Normalization Functions
FunctionUsageDescriptionrankrank(x)Cross-sectional ranking (0-1)zscorezscore(x)Standardizationsignsign(x)Sign functionclampclamp(x, min, max)Clipping function
Conditional Functions
FunctionUsageDescriptionwherewhere(cond, t, f)Conditional selectionifif(cond, t, f)Conditional selection (alias)
Base Fields
FieldDescriptionopen, high, low, closeOHLC pricesvolumeTrading volumepe, pbP/E ratio, P/B ratioroeReturn on equitynetprofitmarginNet profit margin
Guided Workflow
Step 1: Strategy Goal定位
I will first understand your strategy needs:
Strategy Type: Value, Growth, Momentum, Volatility, Hybrid
Selection Count: Concentrated(10-30), Medium(50-100), Diversified(200+)
Holding Period: Intraday, Short-term(week), Medium-term(month), Long-term(quarter)
Step 2: Factor Selection
Based on your strategy goals, recommend suitable factor combinations:
Common Fundamental Factors:
FactorExpressionDirectionDescriptionroeroepositiveReturn on equitypepenegativeLower P/E is betterpbpbnegativePrice-to-book rationetprofitmarginnetprofitmarginpositiveNet profit marginrevenue_growthrevenue_yoypositiveRevenue growth rate
Common Technical Factors:
FactorExpressionDirectionDescriptionmomentum(close/delay(close,20))-1positiveN-day momentumma_deviation(close-ma(close,10))/ma(close,10)negativeMA deviationma_slope(ma(close,10)-delay(ma(close,10),5))/delay(ma(close,10),5)positiveMA slopevolume_ratiovolume/ma(volume,5)negativeVolume ratio
Alpha101 Built-in Factors (can reference {baseDir}/alpha101/alpha_XXX):
QuantCLI includes 40 WorldQuant Alpha101 factors that can be directly referenced:
FactorCategoryDescriptionalpha101/alpha_001Reversal20-day new high then declinealpha101/alpha_002ReversalDown volume bottomalpha101/alpha_003VolatilityLow volatility stabilityalpha101/alpha_004Capital FlowNet capital inflowalpha101/alpha_005TrendUptrendalpha101/alpha_008Capital FlowCapital inflowalpha101/alpha_009MomentumLong-term momentumalpha101/alpha_010ReversalMA deviation reversalalpha101/alpha_011 ~ alpha_020ExtendedVolatility, momentum, price-volume factorsalpha101/alpha_021 ~ alpha_030ExtendedPrice-volume, trend, strength factorsalpha101/alpha_031 ~ alpha_040ExtendedPosition, volatility, capital factors
View all built-in factors:
quantcli factors list
Usage Example:
factors:
- alpha101/alpha_001 # Reversal factor
- alpha101/alpha_008 # Capital inflow
- alpha101/alpha_029 # 5-day momentum
ranking:
weights:
alpha101/alpha_001: 0.4
alpha101/alpha_008: 0.3
alpha101/alpha_029: 0.3
Screening Conditions Example:
screening:
conditions:
- "roe > 0.10" # ROE > 10%
- "netprofitmargin > 0.05" # Net profit margin > 5%
Step 3: Weight Configuration
Allocate weights based on factor importance, 0 means only for screening, not scoring:
ranking:
weights:
# Fundamental factors
roe: 0.30
pe: 0.20
# Technical factors
ma_deviation: 0.30
momentum: 0.20
normalize: zscore
Step 4: Generate Strategy File
I will generate a complete strategy YAML file for you:
name: Your Strategy Name
version: 1.0.0
description: Strategy description
# Stage 1: Fundamental screening
screening:
conditions:
- "roe > 0.10"
- "pe < 30"
limit: 200
# Stage 2: Technical ranking
ranking:
weights:
roe: 0.30
pe: 0.20
ma_deviation: 0.30
momentum: 0.20
normalize: zscore
output:
columns: [symbol, score, rank, roe, pe, momentum]
limit: 30
Step 5: Run & Evaluate
Run strategy:
quantcli filter run -f your_strategy.yaml --top 30
Evaluation points:
Selected stock count: Check if screening conditions are reasonable
Factor distribution: Distribution of factor scores
Industry diversification: Avoid over-concentration
FAQ
Q: How to allocate factor weights?
A: Core factors 0.3-0.4, auxiliary factors 0.1-0.2, ensure weights sum close to 1
Q: Screening conditions too strict resulting in empty results?
A: Gradually relax conditions, first see how many stocks meet each condition
Q: What expression syntax is supported?
A: Supports 40+ built-in functions: ma(), ema(), delay(), rolling_sum(), rsi(), rank(), zscore(), etc.
预览原始 SKILL.md. 下面可以直接查看完整原文。可滚动阅读、检查结构,再下载精确的 SKILL.md 原文件。
# multi-factor-strategy
{"homepage":"https://gitcode.com/datavoid/quantcli","user-invocable":true}
Multi-Factor Strategy Assistant
Guide you to create multi-factor stock selection strategies and generate independent YAML configuration files.
Install quantcli
# Install from PyPI (recommended)
pip install quantcli
# Or install from source
git clone https://gitcode.com/datavoid/quantcli.git
cd quantcli
pip install -e .
Verify installation:
quantcli --help
Quick Start
A complete multi-factor stock selection strategy YAML example:
name: Value-Growth Hybrid Strategy
version: 1.0.0
description: ROE + Momentum factor stock selection
screening:
fundamental_conditions: # Stage 1: Financial condition screening
- "roe > 0.10" # ROE > 10%
- "pe_ttm < 30" # P/E < 30
- "pe_ttm > 0" # Exclude losses
daily_conditions: # Stage 2: Price condition screening
- "close > ma10" # Above 10-day MA
limit: 100 # Keep at most 100 stocks
# Factor configuration (supports two methods, factors at top level)
factors:
# Method 1: Inline factor definition
- name: ma10_deviation
expr: "(close - ma(close, 10)) / ma(close, 10)"
direction: negative
description: "10-day MA deviation"
# Method 2: External reference (reference factor files in factors/ directory, include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_008.yaml
ranking:
weights: # Weight fusion
ma10_deviation: 0.20 # Inline factor
factors/alpha_001.yaml: 0.40 # External reference factor
factors/alpha_008.yaml: 0.40
normalize: zscore # Normalization method
output:
limit: 30 # Output top 30 stocks
columns: [symbol, name, score, roe, pe_ttm, close, ma10_deviation]
Factor Configuration Methods
Factor configuration supports two methods (can be mixed):
MethodTypeExampleDescriptionInlinedict{name: xxx, expr: "..."}Define expression directly in YAMLExternalstrfactors/alpha_001.yamlLoad factor file from factors/ directory
Example: Mixed usage
factors:
# Inline: Custom factor
- name: custom_momentum
expr: "close / delay(close, 20) - 1"
direction: positive
# External: Alpha101 factor library (include .yaml suffix)
- factors/alpha_001.yaml
- factors/alpha_005.yaml
- factors/alpha_009.yaml
ranking:
weights:
custom_momentum: 0.3
factors/alpha_001.yaml: 0.3
factors/alpha_005.yaml: 0.2
factors/alpha_009.yaml: 0.2
Run strategy:
quantcli filter run -f your_strategy.yaml
Invocation
/multi-factor-strategy
Available Expression Functions
Data Processing Functions
FunctionUsageDescriptiondelaydelay(x, n)Lag n periodsmama(x, n)Simple moving averageemaema(x, n)Exponential moving averagerolling_sumrolling_sum(x, n)Rolling sumrolling_stdrolling_std(x, n)Rolling standard deviation
Technical Indicator Functions
FunctionUsageDescriptionrsirsi(x, n=14)Relative strength indexcorrelationcorrelation(x, y, n)Correlation coefficientcross_upcross_up(a, b)Golden cross (a crosses above b)cross_downcross_down(a, b)Death cross (a crosses below b)
Ranking & Normalization Functions
FunctionUsageDescriptionrankrank(x)Cross-sectional ranking (0-1)zscorezscore(x)Standardizationsignsign(x)Sign functionclampclamp(x, min, max)Clipping function
Conditional Functions
FunctionUsageDescriptionwherewhere(cond, t, f)Conditional selectionifif(cond, t, f)Conditional selection (alias)
Base Fields
FieldDescriptionopen, high, low, closeOHLC pricesvolumeTrading volumepe, pbP/E ratio, P/B ratioroeReturn on equitynetprofitmarginNet profit margin
Guided Workflow
Step 1: Strategy Goal定位
I will first understand your strategy needs:
Strategy Type: Value, Growth, Momentum, Volatility, Hybrid
Selection Count: Concentrated(10-30), Medium(50-100), Diversified(200+)
Holding Period: Intraday, Short-term(week), Medium-term(month), Long-term(quarter)
Step 2: Factor Selection
Based on your strategy goals, recommend suitable factor combinations:
Common Fundamental Factors:
FactorExpressionDirectionDescriptionroeroepositiveReturn on equitypepenegativeLower P/E is betterpbpbnegativePrice-to-book rationetprofitmarginnetprofitmarginpositiveNet profit marginrevenue_growthrevenue_yoypositiveRevenue growth rate
Common Technical Factors:
FactorExpressionDirectionDescriptionmomentum(close/delay(close,20))-1positiveN-day momentumma_deviation(close-ma(close,10))/ma(close,10)negativeMA deviationma_slope(ma(close,10)-delay(ma(close,10),5))/delay(ma(close,10),5)positiveMA slopevolume_ratiovolume/ma(volume,5)negativeVolume ratio
Alpha101 Built-in Factors (can reference {baseDir}/alpha101/alpha_XXX):
QuantCLI includes 40 WorldQuant Alpha101 factors that can be directly referenced:
FactorCategoryDescriptionalpha101/alpha_001Reversal20-day new high then declinealpha101/alpha_002ReversalDown volume bottomalpha101/alpha_003VolatilityLow volatility stabilityalpha101/alpha_004Capital FlowNet capital inflowalpha101/alpha_005TrendUptrendalpha101/alpha_008Capital FlowCapital inflowalpha101/alpha_009MomentumLong-term momentumalpha101/alpha_010ReversalMA deviation reversalalpha101/alpha_011 ~ alpha_020ExtendedVolatility, momentum, price-volume factorsalpha101/alpha_021 ~ alpha_030ExtendedPrice-volume, trend, strength factorsalpha101/alpha_031 ~ alpha_040ExtendedPosition, volatility, capital factors
View all built-in factors:
quantcli factors list
Usage Example:
factors:
- alpha101/alpha_001 # Reversal factor
- alpha101/alpha_008 # Capital inflow
- alpha101/alpha_029 # 5-day momentum
ranking:
weights:
alpha101/alpha_001: 0.4
alpha101/alpha_008: 0.3
alpha101/alpha_029: 0.3
Screening Conditions Example:
screening:
conditions:
- "roe > 0.10" # ROE > 10%
- "netprofitmargin > 0.05" # Net profit margin > 5%
Step 3: Weight Configuration
Allocate weights based on factor importance, 0 means only for screening, not scoring:
ranking:
weights:
# Fundamental factors
roe: 0.30
pe: 0.20
# Technical factors
ma_deviation: 0.30
momentum: 0.20
normalize: zscore
Step 4: Generate Strategy File
I will generate a complete strategy YAML file for you:
name: Your Strategy Name
version: 1.0.0
description: Strategy description
# Stage 1: Fundamental screening
screening:
conditions:
- "roe > 0.10"
- "pe < 30"
limit: 200
# Stage 2: Technical ranking
ranking:
weights:
roe: 0.30
pe: 0.20
ma_deviation: 0.30
momentum: 0.20
normalize: zscore
output:
columns: [symbol, score, rank, roe, pe, momentum]
limit: 30
Step 5: Run & Evaluate
Run strategy:
quantcli filter run -f your_strategy.yaml --top 30
Evaluation points:
Selected stock count: Check if screening conditions are reasonable
Factor distribution: Distribution of factor scores
Industry diversification: Avoid over-concentration
FAQ
Q: How to allocate factor weights?
A: Core factors 0.3-0.4, auxiliary factors 0.1-0.2, ensure weights sum close to 1
Q: Screening conditions too strict resulting in empty results?
A: Gradually relax conditions, first see how many stocks meet each condition
Q: What expression syntax is supported?
A: Supports 40+ built-in functions: ma(), ema(), delay(), rolling_sum(), rsi(), rank(), zscore(), etc.
评论与讨论
添加评论