{
  "schemaVersion": "1.0",
  "item": {
    "slug": "multi-factor-strategy",
    "name": "multi-factor-strategy",
    "source": "tencent",
    "type": "skill",
    "category": "内容创作",
    "sourceUrl": "https://clawhub.ai/wumu2013/multi-factor-strategy",
    "canonicalUrl": "https://clawhub.ai/wumu2013/multi-factor-strategy",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/multi-factor-strategy",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=multi-factor-strategy",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "skill.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/multi-factor-strategy"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/multi-factor-strategy",
    "agentPageUrl": "https://openagent3.xyz/skills/multi-factor-strategy/agent",
    "manifestUrl": "https://openagent3.xyz/skills/multi-factor-strategy/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/multi-factor-strategy/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Multi-Factor Strategy Assistant",
        "body": "Guide you to create multi-factor stock selection strategies and generate independent YAML configuration files."
      },
      {
        "title": "Install quantcli",
        "body": "# Install from PyPI (recommended)\npip install quantcli\n\n# Or install from source\ngit clone https://gitcode.com/datavoid/quantcli.git\ncd quantcli\npip install -e .\n\nVerify installation:\n\nquantcli --help"
      },
      {
        "title": "Quick Start",
        "body": "A complete multi-factor stock selection strategy YAML example:\n\nname: Value-Growth Hybrid Strategy\nversion: 1.0.0\ndescription: ROE + Momentum factor stock selection\n\nscreening:\n  fundamental_conditions:    # Stage 1: Financial condition screening\n    - \"roe > 0.10\"           # ROE > 10%\n    - \"pe_ttm < 30\"          # P/E < 30\n    - \"pe_ttm > 0\"           # Exclude losses\n  daily_conditions:          # Stage 2: Price condition screening\n    - \"close > ma10\"         # Above 10-day MA\n  limit: 100                 # Keep at most 100 stocks\n\n# Factor configuration (supports two methods, factors at top level)\nfactors:\n  # Method 1: Inline factor definition\n  - name: ma10_deviation\n    expr: \"(close - ma(close, 10)) / ma(close, 10)\"\n    direction: negative\n    description: \"10-day MA deviation\"\n\n  # Method 2: External reference (reference factor files in factors/ directory, include .yaml suffix)\n  - factors/alpha_001.yaml\n  - factors/alpha_008.yaml\n\nranking:\n  weights:                   # Weight fusion\n    ma10_deviation: 0.20     # Inline factor\n    factors/alpha_001.yaml: 0.40  # External reference factor\n    factors/alpha_008.yaml: 0.40\n  normalize: zscore          # Normalization method\n\noutput:\n  limit: 30                  # Output top 30 stocks\n  columns: [symbol, name, score, roe, pe_ttm, close, ma10_deviation]"
      },
      {
        "title": "Factor Configuration Methods",
        "body": "Factor configuration supports two methods (can be mixed):\n\nMethodTypeExampleDescriptionInlinedict{name: xxx, expr: \"...\"}Define expression directly in YAMLExternalstrfactors/alpha_001.yamlLoad factor file from factors/ directory\n\nExample: Mixed usage\n\nfactors:\n  # Inline: Custom factor\n  - name: custom_momentum\n    expr: \"close / delay(close, 20) - 1\"\n    direction: positive\n\n  # External: Alpha101 factor library (include .yaml suffix)\n  - factors/alpha_001.yaml\n  - factors/alpha_005.yaml\n  - factors/alpha_009.yaml\n\nranking:\n  weights:\n    custom_momentum: 0.3\n    factors/alpha_001.yaml: 0.3\n    factors/alpha_005.yaml: 0.2\n    factors/alpha_009.yaml: 0.2\n\nRun strategy:\n\nquantcli filter run -f your_strategy.yaml"
      },
      {
        "title": "Invocation",
        "body": "/multi-factor-strategy"
      },
      {
        "title": "Data Processing Functions",
        "body": "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"
      },
      {
        "title": "Technical Indicator Functions",
        "body": "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)"
      },
      {
        "title": "Ranking & Normalization Functions",
        "body": "FunctionUsageDescriptionrankrank(x)Cross-sectional ranking (0-1)zscorezscore(x)Standardizationsignsign(x)Sign functionclampclamp(x, min, max)Clipping function"
      },
      {
        "title": "Conditional Functions",
        "body": "FunctionUsageDescriptionwherewhere(cond, t, f)Conditional selectionifif(cond, t, f)Conditional selection (alias)"
      },
      {
        "title": "Base Fields",
        "body": "FieldDescriptionopen, high, low, closeOHLC pricesvolumeTrading volumepe, pbP/E ratio, P/B ratioroeReturn on equitynetprofitmarginNet profit margin"
      },
      {
        "title": "Step 1: Strategy Goal定位",
        "body": "I will first understand your strategy needs:\n\nStrategy Type: Value, Growth, Momentum, Volatility, Hybrid\nSelection Count: Concentrated(10-30), Medium(50-100), Diversified(200+)\nHolding Period: Intraday, Short-term(week), Medium-term(month), Long-term(quarter)"
      },
      {
        "title": "Step 2: Factor Selection",
        "body": "Based on your strategy goals, recommend suitable factor combinations:\n\nCommon Fundamental Factors:\n\nFactorExpressionDirectionDescriptionroeroepositiveReturn on equitypepenegativeLower P/E is betterpbpbnegativePrice-to-book rationetprofitmarginnetprofitmarginpositiveNet profit marginrevenue_growthrevenue_yoypositiveRevenue growth rate\n\nCommon Technical Factors:\n\nFactorExpressionDirectionDescriptionmomentum(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\n\nAlpha101 Built-in Factors (can reference {baseDir}/alpha101/alpha_XXX):\n\nQuantCLI includes 40 WorldQuant Alpha101 factors that can be directly referenced:\n\nFactorCategoryDescriptionalpha101/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\n\nView all built-in factors:\n\nquantcli factors list\n\nUsage Example:\n\nfactors:\n  - alpha101/alpha_001   # Reversal factor\n  - alpha101/alpha_008   # Capital inflow\n  - alpha101/alpha_029   # 5-day momentum\nranking:\n  weights:\n    alpha101/alpha_001: 0.4\n    alpha101/alpha_008: 0.3\n    alpha101/alpha_029: 0.3\n\nScreening Conditions Example:\n\nscreening:\n  conditions:\n    - \"roe > 0.10\"              # ROE > 10%\n    - \"netprofitmargin > 0.05\"  # Net profit margin > 5%"
      },
      {
        "title": "Step 3: Weight Configuration",
        "body": "Allocate weights based on factor importance, 0 means only for screening, not scoring:\n\nranking:\n  weights:\n    # Fundamental factors\n    roe: 0.30\n    pe: 0.20\n    # Technical factors\n    ma_deviation: 0.30\n    momentum: 0.20\n  normalize: zscore"
      },
      {
        "title": "Step 4: Generate Strategy File",
        "body": "I will generate a complete strategy YAML file for you:\n\nname: Your Strategy Name\nversion: 1.0.0\ndescription: Strategy description\n\n# Stage 1: Fundamental screening\nscreening:\n  conditions:\n    - \"roe > 0.10\"\n    - \"pe < 30\"\n  limit: 200\n\n# Stage 2: Technical ranking\nranking:\n  weights:\n    roe: 0.30\n    pe: 0.20\n    ma_deviation: 0.30\n    momentum: 0.20\n  normalize: zscore\n\noutput:\n  columns: [symbol, score, rank, roe, pe, momentum]\n  limit: 30"
      },
      {
        "title": "Step 5: Run & Evaluate",
        "body": "Run strategy:\n\nquantcli filter run -f your_strategy.yaml --top 30\n\nEvaluation points:\n\nSelected stock count: Check if screening conditions are reasonable\nFactor distribution: Distribution of factor scores\nIndustry diversification: Avoid over-concentration"
      },
      {
        "title": "FAQ",
        "body": "Q: How to allocate factor weights?\nA: Core factors 0.3-0.4, auxiliary factors 0.1-0.2, ensure weights sum close to 1\n\nQ: Screening conditions too strict resulting in empty results?\nA: Gradually relax conditions, first see how many stocks meet each condition\n\nQ: What expression syntax is supported?\nA: Supports 40+ built-in functions: ma(), ema(), delay(), rolling_sum(), rsi(), rank(), zscore(), etc."
      }
    ],
    "body": "{\"homepage\":\"https://gitcode.com/datavoid/quantcli\",\"user-invocable\":true}\n\nMulti-Factor Strategy Assistant\n\nGuide you to create multi-factor stock selection strategies and generate independent YAML configuration files.\n\nInstall quantcli\n# Install from PyPI (recommended)\npip install quantcli\n\n# Or install from source\ngit clone https://gitcode.com/datavoid/quantcli.git\ncd quantcli\npip install -e .\n\n\nVerify installation:\n\nquantcli --help\n\nQuick Start\n\nA complete multi-factor stock selection strategy YAML example:\n\nname: Value-Growth Hybrid Strategy\nversion: 1.0.0\ndescription: ROE + Momentum factor stock selection\n\nscreening:\n  fundamental_conditions:    # Stage 1: Financial condition screening\n    - \"roe > 0.10\"           # ROE > 10%\n    - \"pe_ttm < 30\"          # P/E < 30\n    - \"pe_ttm > 0\"           # Exclude losses\n  daily_conditions:          # Stage 2: Price condition screening\n    - \"close > ma10\"         # Above 10-day MA\n  limit: 100                 # Keep at most 100 stocks\n\n# Factor configuration (supports two methods, factors at top level)\nfactors:\n  # Method 1: Inline factor definition\n  - name: ma10_deviation\n    expr: \"(close - ma(close, 10)) / ma(close, 10)\"\n    direction: negative\n    description: \"10-day MA deviation\"\n\n  # Method 2: External reference (reference factor files in factors/ directory, include .yaml suffix)\n  - factors/alpha_001.yaml\n  - factors/alpha_008.yaml\n\nranking:\n  weights:                   # Weight fusion\n    ma10_deviation: 0.20     # Inline factor\n    factors/alpha_001.yaml: 0.40  # External reference factor\n    factors/alpha_008.yaml: 0.40\n  normalize: zscore          # Normalization method\n\noutput:\n  limit: 30                  # Output top 30 stocks\n  columns: [symbol, name, score, roe, pe_ttm, close, ma10_deviation]\n\nFactor Configuration Methods\n\nFactor configuration supports two methods (can be mixed):\n\nMethod\tType\tExample\tDescription\nInline\tdict\t{name: xxx, expr: \"...\"}\tDefine expression directly in YAML\nExternal\tstr\tfactors/alpha_001.yaml\tLoad factor file from factors/ directory\n\nExample: Mixed usage\n\nfactors:\n  # Inline: Custom factor\n  - name: custom_momentum\n    expr: \"close / delay(close, 20) - 1\"\n    direction: positive\n\n  # External: Alpha101 factor library (include .yaml suffix)\n  - factors/alpha_001.yaml\n  - factors/alpha_005.yaml\n  - factors/alpha_009.yaml\n\nranking:\n  weights:\n    custom_momentum: 0.3\n    factors/alpha_001.yaml: 0.3\n    factors/alpha_005.yaml: 0.2\n    factors/alpha_009.yaml: 0.2\n\n\nRun strategy:\n\nquantcli filter run -f your_strategy.yaml\n\nInvocation\n/multi-factor-strategy\n\nAvailable Expression Functions\nData Processing Functions\nFunction\tUsage\tDescription\ndelay\tdelay(x, n)\tLag n periods\nma\tma(x, n)\tSimple moving average\nema\tema(x, n)\tExponential moving average\nrolling_sum\trolling_sum(x, n)\tRolling sum\nrolling_std\trolling_std(x, n)\tRolling standard deviation\nTechnical Indicator Functions\nFunction\tUsage\tDescription\nrsi\trsi(x, n=14)\tRelative strength index\ncorrelation\tcorrelation(x, y, n)\tCorrelation coefficient\ncross_up\tcross_up(a, b)\tGolden cross (a crosses above b)\ncross_down\tcross_down(a, b)\tDeath cross (a crosses below b)\nRanking & Normalization Functions\nFunction\tUsage\tDescription\nrank\trank(x)\tCross-sectional ranking (0-1)\nzscore\tzscore(x)\tStandardization\nsign\tsign(x)\tSign function\nclamp\tclamp(x, min, max)\tClipping function\nConditional Functions\nFunction\tUsage\tDescription\nwhere\twhere(cond, t, f)\tConditional selection\nif\tif(cond, t, f)\tConditional selection (alias)\nBase Fields\nField\tDescription\nopen, high, low, close\tOHLC prices\nvolume\tTrading volume\npe, pb\tP/E ratio, P/B ratio\nroe\tReturn on equity\nnetprofitmargin\tNet profit margin\nGuided Workflow\nStep 1: Strategy Goal定位\n\nI will first understand your strategy needs:\n\nStrategy Type: Value, Growth, Momentum, Volatility, Hybrid\nSelection Count: Concentrated(10-30), Medium(50-100), Diversified(200+)\nHolding Period: Intraday, Short-term(week), Medium-term(month), Long-term(quarter)\nStep 2: Factor Selection\n\nBased on your strategy goals, recommend suitable factor combinations:\n\nCommon Fundamental Factors:\n\nFactor\tExpression\tDirection\tDescription\nroe\troe\tpositive\tReturn on equity\npe\tpe\tnegative\tLower P/E is better\npb\tpb\tnegative\tPrice-to-book ratio\nnetprofitmargin\tnetprofitmargin\tpositive\tNet profit margin\nrevenue_growth\trevenue_yoy\tpositive\tRevenue growth rate\n\nCommon Technical Factors:\n\nFactor\tExpression\tDirection\tDescription\nmomentum\t(close/delay(close,20))-1\tpositive\tN-day momentum\nma_deviation\t(close-ma(close,10))/ma(close,10)\tnegative\tMA deviation\nma_slope\t(ma(close,10)-delay(ma(close,10),5))/delay(ma(close,10),5)\tpositive\tMA slope\nvolume_ratio\tvolume/ma(volume,5)\tnegative\tVolume ratio\n\nAlpha101 Built-in Factors (can reference {baseDir}/alpha101/alpha_XXX):\n\nQuantCLI includes 40 WorldQuant Alpha101 factors that can be directly referenced:\n\nFactor\tCategory\tDescription\nalpha101/alpha_001\tReversal\t20-day new high then decline\nalpha101/alpha_002\tReversal\tDown volume bottom\nalpha101/alpha_003\tVolatility\tLow volatility stability\nalpha101/alpha_004\tCapital Flow\tNet capital inflow\nalpha101/alpha_005\tTrend\tUptrend\nalpha101/alpha_008\tCapital Flow\tCapital inflow\nalpha101/alpha_009\tMomentum\tLong-term momentum\nalpha101/alpha_010\tReversal\tMA deviation reversal\nalpha101/alpha_011 ~ alpha_020\tExtended\tVolatility, momentum, price-volume factors\nalpha101/alpha_021 ~ alpha_030\tExtended\tPrice-volume, trend, strength factors\nalpha101/alpha_031 ~ alpha_040\tExtended\tPosition, volatility, capital factors\n\nView all built-in factors:\n\nquantcli factors list\n\n\nUsage Example:\n\nfactors:\n  - alpha101/alpha_001   # Reversal factor\n  - alpha101/alpha_008   # Capital inflow\n  - alpha101/alpha_029   # 5-day momentum\nranking:\n  weights:\n    alpha101/alpha_001: 0.4\n    alpha101/alpha_008: 0.3\n    alpha101/alpha_029: 0.3\n\n\nScreening Conditions Example:\n\nscreening:\n  conditions:\n    - \"roe > 0.10\"              # ROE > 10%\n    - \"netprofitmargin > 0.05\"  # Net profit margin > 5%\n\nStep 3: Weight Configuration\n\nAllocate weights based on factor importance, 0 means only for screening, not scoring:\n\nranking:\n  weights:\n    # Fundamental factors\n    roe: 0.30\n    pe: 0.20\n    # Technical factors\n    ma_deviation: 0.30\n    momentum: 0.20\n  normalize: zscore\n\nStep 4: Generate Strategy File\n\nI will generate a complete strategy YAML file for you:\n\nname: Your Strategy Name\nversion: 1.0.0\ndescription: Strategy description\n\n# Stage 1: Fundamental screening\nscreening:\n  conditions:\n    - \"roe > 0.10\"\n    - \"pe < 30\"\n  limit: 200\n\n# Stage 2: Technical ranking\nranking:\n  weights:\n    roe: 0.30\n    pe: 0.20\n    ma_deviation: 0.30\n    momentum: 0.20\n  normalize: zscore\n\noutput:\n  columns: [symbol, score, rank, roe, pe, momentum]\n  limit: 30\n\nStep 5: Run & Evaluate\n\nRun strategy:\n\nquantcli filter run -f your_strategy.yaml --top 30\n\n\nEvaluation points:\n\nSelected stock count: Check if screening conditions are reasonable\nFactor distribution: Distribution of factor scores\nIndustry diversification: Avoid over-concentration\nFAQ\n\nQ: How to allocate factor weights? A: Core factors 0.3-0.4, auxiliary factors 0.1-0.2, ensure weights sum close to 1\n\nQ: Screening conditions too strict resulting in empty results? A: Gradually relax conditions, first see how many stocks meet each condition\n\nQ: What expression syntax is supported? A: Supports 40+ built-in functions: ma(), ema(), delay(), rolling_sum(), rsi(), rank(), zscore(), etc."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wumu2013/multi-factor-strategy",
    "publisherUrl": "https://clawhub.ai/wumu2013/multi-factor-strategy",
    "owner": "wumu2013",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/multi-factor-strategy",
    "downloadUrl": "https://openagent3.xyz/downloads/multi-factor-strategy",
    "agentUrl": "https://openagent3.xyz/skills/multi-factor-strategy/agent",
    "manifestUrl": "https://openagent3.xyz/skills/multi-factor-strategy/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/multi-factor-strategy/agent.md"
  }
}