{
  "schemaVersion": "1.0",
  "item": {
    "slug": "trading212-v2",
    "name": "trading212 Skill",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/nandichi/trading212-v2",
    "canonicalUrl": "https://clawhub.ai/nandichi/trading212-v2",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/trading212-v2",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=trading212-v2",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "reference.md",
      "requirements.txt",
      "SKILL.md",
      "scripts/proposal_rules.py",
      "scripts/t212_client.py",
      "scripts/cache.py"
    ],
    "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/trading212-v2"
    },
    "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/trading212-v2",
    "agentPageUrl": "https://openagent3.xyz/skills/trading212-v2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/trading212-v2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/trading212-v2/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": "Trading212 Skill",
        "body": "Connects to the Trading212 API to provide portfolio analysis, trade proposals, and order execution.\n\nImportant: By default all operations run against the demo (paper-trading) environment. Set TRADING212_DEMO=false only when you are absolutely sure the user wants to trade with real money."
      },
      {
        "title": "Prerequisites",
        "body": "Install dependencies once from the skill's script directory:\n\npip install -r {baseDir}/requirements.txt"
      },
      {
        "title": "1. summary -- Daily portfolio overview",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode summary\n\nReturns structured JSON with:\n\nTotal portfolio value, cash, daily change (EUR + %)\nPer-position details (quantity, avg price, current price, unrealised P&L)\nTop gainers and top losers\nNotable events (orders filled today, dividends received)\nMulti-period performance (1 week, 1 month, 3 months, 1 year)\n\nUse this when the user asks: \"How did my portfolio do today?\", \"Give me a summary\", \"What happened in my portfolio?\"\n\nPresent the JSON output as a readable English summary. Highlight the daily change prominently, list top gainers and losers, and mention notable events."
      },
      {
        "title": "2. propose -- Trade proposals",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode propose\npython3 {baseDir}/scripts/trading212_skill.py --mode propose --risk low\npython3 {baseDir}/scripts/trading212_skill.py --mode propose --risk high\n\nReturns a list of suggested actions (buy, sell, reduce, hold) with quantities and reasons. Rules are configured in config/rules.yaml.\n\nActive rules:\n\nReduce on drop: Propose reducing positions that dropped significantly today with large weight\nTake profit: Propose selling small positions with high unrealised gain\nDCA buy: Propose buying tickers on the DCA list when enough cash is available\nStop-loss: Propose selling when price drops below stop-loss threshold vs average purchase price\nMax exposure: Propose reducing when a single position exceeds maximum portfolio weight\nCost averaging: Propose buying more when price is significantly below average purchase price\nCash reserve: Warn when cash falls below minimum percentage of portfolio\n\nUse this when the user asks: \"What should I do?\", \"Any trade suggestions?\", \"Should I buy or sell anything?\"\n\nPresent proposals clearly. Always ask the user for confirmation before executing any proposed trade. Never execute trades automatically."
      },
      {
        "title": "3. execute_trade -- Place an order",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode execute_trade --params '{\"symbol\":\"AAPL_US_EQ\",\"side\":\"buy\",\"quantity\":5,\"order_type\":\"market\"}'\n\nParameters (JSON):\n\nsymbol (required): Trading212 ticker, e.g. \"AAPL_US_EQ\"\nside (required): \"buy\" or \"sell\"\nquantity (required): positive number of shares\norder_type: \"market\" (default) or \"limit\"\nlimit_price: required when order_type is \"limit\"\n\nPre-trade validation is performed automatically:\n\nBuy orders: checks if enough cash is available\nSell orders: checks if enough shares are held\n\nCRITICAL SAFETY RULES:\n\nNEVER execute a trade without explicit user confirmation.\nAlways show the user exactly what will be executed (symbol, side, quantity, order type) and ask \"Shall I place this order?\" before running.\nIf TRADING212_DEMO=true (the default), remind the user this is a paper-trade.\nIf TRADING212_DEMO=false, warn the user clearly that this is a REAL order with real money."
      },
      {
        "title": "4. dividends -- Dividend overview",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode dividends\n\nReturns structured JSON with:\n\nTotal dividends received (all time and last 12 months)\nPer-ticker breakdown with totals, last payment date, and estimated annual yield\nDividend calendar (most recent payment per ticker)\n\nUse this when the user asks: \"How much dividend did I receive?\", \"What are my dividends?\", \"When was my last dividend?\""
      },
      {
        "title": "5. history -- Order history",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode history\npython3 {baseDir}/scripts/trading212_skill.py --mode history --params '{\"ticker\":\"AAPL_US_EQ\",\"days\":30}'\n\nReturns structured JSON with:\n\nTotal number of historical orders\nRealized P&L per ticker and overall\nFull order list with dates, prices, and quantities\n\nOptional parameters (JSON):\n\nticker: Filter by specific ticker\ndays: Limit to orders from the last N days\n\nUse this when the user asks: \"Show my order history\", \"How much profit did I realize?\", \"What did I trade last month?\""
      },
      {
        "title": "6. watchlist -- Price monitoring",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode watchlist\n\nReads config/watchlist.yaml and checks price alerts for each ticker. Returns:\n\nList of watchlist items with current prices (if held)\nTriggered alerts (price above or below configured thresholds)\n\nConfigure the watchlist in config/watchlist.yaml:\n\nwatchlist:\n  - ticker: \"NVDA_US_EQ\"\n    alert_below: 100.0\n    alert_above: 150.0\n\nUse this when the user asks: \"Check my watchlist\", \"Any price alerts?\", \"What are my watched stocks doing?\""
      },
      {
        "title": "7. allocation -- Portfolio allocation analysis",
        "body": "python3 {baseDir}/scripts/trading212_skill.py --mode allocation\npython3 {baseDir}/scripts/trading212_skill.py --mode allocation --rebalance\n\nReturns structured JSON with:\n\nCurrent weight per position vs target allocation\nDeviation from target per position\nMissing target tickers (in target but not held)\nCash allocation vs target\n\nWith --rebalance flag, also generates buy/sell proposals to move toward target allocation.\n\nConfigure target allocation in config/allocation.yaml:\n\ntarget_allocation:\n  \"VWCE.UK\": 40.0\n  \"IWDA.UK\": 30.0\n  _cash: 5.0\n\nUse this when the user asks: \"How is my portfolio allocated?\", \"Am I balanced?\", \"What should I rebalance?\""
      },
      {
        "title": "Output Format",
        "body": "All modes return structured JSON to stdout. Parse it and present a human-readable English summary to the user."
      },
      {
        "title": "Additional Resources",
        "body": "For full output schemas and API details, see reference.md."
      }
    ],
    "body": "Trading212 Skill\n\nConnects to the Trading212 API to provide portfolio analysis, trade proposals, and order execution.\n\nImportant: By default all operations run against the demo (paper-trading) environment. Set TRADING212_DEMO=false only when you are absolutely sure the user wants to trade with real money.\n\nPrerequisites\n\nInstall dependencies once from the skill's script directory:\n\npip install -r {baseDir}/requirements.txt\n\nAvailable Modes\n1. summary -- Daily portfolio overview\npython3 {baseDir}/scripts/trading212_skill.py --mode summary\n\n\nReturns structured JSON with:\n\nTotal portfolio value, cash, daily change (EUR + %)\nPer-position details (quantity, avg price, current price, unrealised P&L)\nTop gainers and top losers\nNotable events (orders filled today, dividends received)\nMulti-period performance (1 week, 1 month, 3 months, 1 year)\n\nUse this when the user asks: \"How did my portfolio do today?\", \"Give me a summary\", \"What happened in my portfolio?\"\n\nPresent the JSON output as a readable English summary. Highlight the daily change prominently, list top gainers and losers, and mention notable events.\n\n2. propose -- Trade proposals\npython3 {baseDir}/scripts/trading212_skill.py --mode propose\npython3 {baseDir}/scripts/trading212_skill.py --mode propose --risk low\npython3 {baseDir}/scripts/trading212_skill.py --mode propose --risk high\n\n\nReturns a list of suggested actions (buy, sell, reduce, hold) with quantities and reasons. Rules are configured in config/rules.yaml.\n\nActive rules:\n\nReduce on drop: Propose reducing positions that dropped significantly today with large weight\nTake profit: Propose selling small positions with high unrealised gain\nDCA buy: Propose buying tickers on the DCA list when enough cash is available\nStop-loss: Propose selling when price drops below stop-loss threshold vs average purchase price\nMax exposure: Propose reducing when a single position exceeds maximum portfolio weight\nCost averaging: Propose buying more when price is significantly below average purchase price\nCash reserve: Warn when cash falls below minimum percentage of portfolio\n\nUse this when the user asks: \"What should I do?\", \"Any trade suggestions?\", \"Should I buy or sell anything?\"\n\nPresent proposals clearly. Always ask the user for confirmation before executing any proposed trade. Never execute trades automatically.\n\n3. execute_trade -- Place an order\npython3 {baseDir}/scripts/trading212_skill.py --mode execute_trade --params '{\"symbol\":\"AAPL_US_EQ\",\"side\":\"buy\",\"quantity\":5,\"order_type\":\"market\"}'\n\n\nParameters (JSON):\n\nsymbol (required): Trading212 ticker, e.g. \"AAPL_US_EQ\"\nside (required): \"buy\" or \"sell\"\nquantity (required): positive number of shares\norder_type: \"market\" (default) or \"limit\"\nlimit_price: required when order_type is \"limit\"\n\nPre-trade validation is performed automatically:\n\nBuy orders: checks if enough cash is available\nSell orders: checks if enough shares are held\n\nCRITICAL SAFETY RULES:\n\nNEVER execute a trade without explicit user confirmation.\nAlways show the user exactly what will be executed (symbol, side, quantity, order type) and ask \"Shall I place this order?\" before running.\nIf TRADING212_DEMO=true (the default), remind the user this is a paper-trade.\nIf TRADING212_DEMO=false, warn the user clearly that this is a REAL order with real money.\n4. dividends -- Dividend overview\npython3 {baseDir}/scripts/trading212_skill.py --mode dividends\n\n\nReturns structured JSON with:\n\nTotal dividends received (all time and last 12 months)\nPer-ticker breakdown with totals, last payment date, and estimated annual yield\nDividend calendar (most recent payment per ticker)\n\nUse this when the user asks: \"How much dividend did I receive?\", \"What are my dividends?\", \"When was my last dividend?\"\n\n5. history -- Order history\npython3 {baseDir}/scripts/trading212_skill.py --mode history\npython3 {baseDir}/scripts/trading212_skill.py --mode history --params '{\"ticker\":\"AAPL_US_EQ\",\"days\":30}'\n\n\nReturns structured JSON with:\n\nTotal number of historical orders\nRealized P&L per ticker and overall\nFull order list with dates, prices, and quantities\n\nOptional parameters (JSON):\n\nticker: Filter by specific ticker\ndays: Limit to orders from the last N days\n\nUse this when the user asks: \"Show my order history\", \"How much profit did I realize?\", \"What did I trade last month?\"\n\n6. watchlist -- Price monitoring\npython3 {baseDir}/scripts/trading212_skill.py --mode watchlist\n\n\nReads config/watchlist.yaml and checks price alerts for each ticker. Returns:\n\nList of watchlist items with current prices (if held)\nTriggered alerts (price above or below configured thresholds)\n\nConfigure the watchlist in config/watchlist.yaml:\n\nwatchlist:\n  - ticker: \"NVDA_US_EQ\"\n    alert_below: 100.0\n    alert_above: 150.0\n\n\nUse this when the user asks: \"Check my watchlist\", \"Any price alerts?\", \"What are my watched stocks doing?\"\n\n7. allocation -- Portfolio allocation analysis\npython3 {baseDir}/scripts/trading212_skill.py --mode allocation\npython3 {baseDir}/scripts/trading212_skill.py --mode allocation --rebalance\n\n\nReturns structured JSON with:\n\nCurrent weight per position vs target allocation\nDeviation from target per position\nMissing target tickers (in target but not held)\nCash allocation vs target\n\nWith --rebalance flag, also generates buy/sell proposals to move toward target allocation.\n\nConfigure target allocation in config/allocation.yaml:\n\ntarget_allocation:\n  \"VWCE.UK\": 40.0\n  \"IWDA.UK\": 30.0\n  _cash: 5.0\n\n\nUse this when the user asks: \"How is my portfolio allocated?\", \"Am I balanced?\", \"What should I rebalance?\"\n\nOutput Format\n\nAll modes return structured JSON to stdout. Parse it and present a human-readable English summary to the user.\n\nAdditional Resources\n\nFor full output schemas and API details, see reference.md."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/nandichi/trading212-v2",
    "publisherUrl": "https://clawhub.ai/nandichi/trading212-v2",
    "owner": "nandichi",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/trading212-v2",
    "downloadUrl": "https://openagent3.xyz/downloads/trading212-v2",
    "agentUrl": "https://openagent3.xyz/skills/trading212-v2/agent",
    "manifestUrl": "https://openagent3.xyz/skills/trading212-v2/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/trading212-v2/agent.md"
  }
}