← 返回
未分类 中文

Fund Buying Decision Pro

Parameterize and apply a Chinese mutual-fund buy, add, reduce, or hold strategy driven by price drawdown, recurring DCA, cash-pool management, and position l...
Parameterize and apply a Chinese mutual-fund buy, add, reduce, or hold strategy driven by price drawdown, recurring DCA, cash-pool management, and position l...
seanmwx
未分类 clawhub v1.0.0 1 版本 100000 Key: 无需
★ 0
Stars
📥 334
下载
💾 0
安装
1
版本
#latest

概述

Fund Buying Decision

Overview

Use this skill to keep a reusable fund trading framework in one place.

Prefer changing the parameter block below instead of rewriting numeric rules in prose.

Return one explicit action per decision cycle:

  • buy_dca
  • buy_dip
  • sell_take_profit
  • hold
  • skip_data_missing

If multiple actions trigger on the same day, prefer the risk-reducing action and keep the one-trade-per-day rule.

Strategy Parameters

Edit editable first. Keep fixed stable unless the strategy shape really changes.

strategy_parameters:
  editable:
    capital:
      initial_cash: 1000
      weekly_dca_amount: 100
      monthly_cash_pool_inflow: 1000

    scheduling:
      weekly_pretrade_reminder:
        weekday: monday
        time_local: "09:00"
      weekly_dca:
        weekday: tuesday
      weekly_trade_reminder:
        weekday: tuesday
        time_local: "09:30"
      monthly_cash_inflow:
        schedule_type: second_to_last_business_day
        day_of_month: null
      monthly_cash_inflow_reminder:
        schedule_type: second_to_last_business_day
        day_of_month: null
        time_local: "10:00"

    price_state:
      dip_thresholds_pct: [5, 10, 15]
      dip_base_buy_amounts: [100, 150, 200]

    take_profit:
      profit_thresholds_pct: [10, 20]
      profit_sell_ratios_pct: [10, 20]

    risk:
      max_position_ratio_pct: 80
      min_position_ratio_pct: 20

  fixed:
    universe:
      allowed_fund_types:
        - index_fund
        - equity_fund
      disallowed_fund_types:
        - bond_fund
        - money_market_fund

    capital:
      fee_rate_source: fund_current_rate

    scheduling:
      trade_cutoff_local_time: "15:00"
      backtest_execution_mode: next_trading_day
      max_trades_per_day: 1

    price_state:
      recent_high_lookback_trading_days: 20
      min_trading_days_between_adds: 5

Parameter Groups

Use these two buckets when maintaining the strategy:

  • editable

capital.initial_cash

capital.weekly_dca_amount

capital.monthly_cash_pool_inflow

scheduling.weekly_pretrade_reminder.weekday

scheduling.weekly_pretrade_reminder.time_local

scheduling.weekly_dca.weekday

scheduling.weekly_trade_reminder.weekday

scheduling.weekly_trade_reminder.time_local

scheduling.monthly_cash_inflow.schedule_type

scheduling.monthly_cash_inflow.day_of_month

scheduling.monthly_cash_inflow_reminder.schedule_type

scheduling.monthly_cash_inflow_reminder.day_of_month

scheduling.monthly_cash_inflow_reminder.time_local

price_state.dip_thresholds_pct

price_state.dip_base_buy_amounts

take_profit.profit_thresholds_pct

take_profit.profit_sell_ratios_pct

risk.max_position_ratio_pct

risk.min_position_ratio_pct

  • fixed

universe.allowed_fund_types

universe.disallowed_fund_types

capital.fee_rate_source

scheduling.trade_cutoff_local_time

scheduling.backtest_execution_mode

scheduling.max_trades_per_day

price_state.recent_high_lookback_trading_days

price_state.min_trading_days_between_adds

State Boundary

Treat SKILL.md as strategy configuration only. Do not store live account state in this file.

  • SKILL.md is the source of truth for strategy rules, thresholds, schedules, and default initialization values.
  • SQLite is the source of truth for live account state and history.
  • Real account fields such as cash_pool, position_units, avg_cost_price, account_id, and executed trades must live in the database, not in SKILL.md.
  • capital.initial_cash is only the default starting amount used when initializing a new strategy account.

It is not the current live cash balance after trading starts.

  • After an account exists, update live state only through:

python {baseDir}/scripts/manage_strategy_account.py ...

python {baseDir}/scripts/record_strategy_trade.py ...

python {baseDir}/scripts/confirm_strategy_action.py ...

  • Do not edit capital.initial_cash in SKILL.md to reflect a new live balance.

If the user adds cash or changes holdings, write that change to SQLite instead.

Required Inputs

Do not invent missing inputs. If a required field is unavailable, return skip_data_missing and explain what is missing.

Required runtime inputs:

  • fund_code
  • current_price
  • cost_price
  • cash_pool
  • position_value
  • recent_high
  • today
  • trade_time_local
  • last_add_trade_date
  • is_weekly_dca_day
  • is_monthly_cash_inflow_day

Derived values:

  • total_asset = cash_pool + position_value
  • position_ratio = position_value / total_asset
  • drawdown_pct = (recent_high - current_price) / recent_high * 100
  • profit_pct = (current_price - cost_price) / cost_price * 100
  • effective_fee_rate_pct = imported fund current_rate when available

Daily Workflow

  1. Refresh or read fund data.

For Eastmoney price data, run python {baseDir}/scripts/import_eastmoney_pingzhongdata.py 011598 or replace 011598 with another fund code.

  1. If today and the current local time match the configured weekly_pretrade_reminder, issue the weekly pretrade reminder.
  2. If today and the current local time match the configured weekly_trade_reminder, issue the trading reminder and then evaluate the strategy.
  3. If today and the current local time match the configured monthly_cash_inflow_reminder, remind the user to add the monthly cash inflow.
  4. Record the monthly cash inflow only after it is actually added to cash_pool.

Use python {baseDir}/scripts/record_strategy_trade.py 011598 --trade-type cash_inflow --gross-amount 1000.

  1. Update current_price, recent_high, total_asset, and position_ratio.
  2. Evaluate take-profit rules first when both buy and sell could trigger on the same day.
  3. Evaluate dip-buy rules only if the add-spacing rule is satisfied and cash is available.
  4. Evaluate weekly DCA only if no higher-priority trade was selected.
  5. Re-check max and min position limits after sizing the candidate trade.
  6. Execute at the configured cutoff rule.

For backtests, prefer next_trading_day execution to avoid future leakage.

Scheduling Rules

  • weekly_pretrade_reminder.weekday and weekly_pretrade_reminder.time_local control the weekly pretrade reminder schedule.
  • weekly_trade_reminder.weekday and weekly_trade_reminder.time_local control the weekly trade reminder schedule.
  • weekly_dca.weekday controls which weekday counts as the DCA trading day.
  • monthly_cash_inflow.schedule_type controls the monthly cash-inflow date used by the strategy state.
  • monthly_cash_inflow_reminder.schedule_type and monthly_cash_inflow_reminder.time_local control the monthly reminder trigger.
  • Supported monthly schedule_type values are:
  • second_to_last_business_day
  • last_business_day
  • day_of_month
  • When schedule_type = day_of_month, fill day_of_month with an integer such as 15 or 28.

Decision Rules

DCA

  • Use weekly_dca_amount as the fixed recurring DCA amount.
  • Size the actual DCA as min(weekly_dca_amount, cash_pool).
  • Skip DCA if there is already a higher-priority trade on the same day.

Dip Buy

  • Compute drawdown_pct from recent_high.
  • Use only the deepest triggered threshold from dip_thresholds_pct.
  • Map that threshold to the aligned base amount in dip_base_buy_amounts.
  • Size the actual buy as the minimum of:
  • base buy amount
  • available cash_pool
  • remaining room under max_position_ratio_pct
  • Reject the dip buy if the last add trade is within min_trading_days_between_adds.

Take Profit

  • Use only the highest triggered threshold from profit_thresholds_pct.
  • Map that threshold to the aligned sell ratio in profit_sell_ratios_pct.
  • Size the actual sell so the post-trade position ratio does not go below min_position_ratio_pct.
  • Send sell proceeds back into cash_pool.

Position And Cash Controls

  • Keep all buys funded by cash_pool.
  • Keep monthly inflows and sell proceeds inside cash_pool.
  • Never exceed max_position_ratio_pct.
  • Never reduce below min_position_ratio_pct.
  • Include the imported fund current_rate in trade sizing when the user requires fees.

Fund Detail Reporting

  • Use python {baseDir}/scripts/report_fund_details.py 011598 --refresh to fetch and summarize a fund.
  • Include the latest available fund identity, fee rate, minimum subscription, net worth, recent 20-trading-day high, drawdown, return metrics, stock-position estimate, manager information, asset allocation, holder structure, and top holdings.
  • If local data is missing, allow the reporting script to refresh the SQLite database first.

Drawdown Alerts

  • Use python {baseDir}/scripts/check_fund_alert.py 004475 to check drawdown alerts against the configured dip_thresholds_pct tiers in SKILL.md.
  • To override the default tiers at runtime, repeat --threshold-pct, for example:

python {baseDir}/scripts/check_fund_alert.py 004475 --threshold-pct 5 --threshold-pct 10 --threshold-pct 15

  • This script only computes the alert state and returns structured output.
  • Do not implement email or Feishu delivery inside this skill.

If the user wants delivery, hand the alert result to the dedicated notification skill instead.

Strategy Runtime Commands

Default SQLite location:

  • ~/.fund_buying_decision/fund_buying_decision.db
  • Use --db ~/.fund_buying_decision/.db when you want a separate database file for another account set or experiment.
  • Initialize or overwrite the stored account state:

python {baseDir}/scripts/manage_strategy_account.py upsert 011598 --account-id main --cash-pool 1000 --position-units 0 --fund-type equity_fund

  • Record a real cash flow or manual trade:

python {baseDir}/scripts/record_strategy_trade.py 011598 --account-id main --trade-type cash_inflow --gross-amount 1000

  • Generate reminders and evaluate the strategy:

python {baseDir}/scripts/evaluate_strategy.py 011598 --account-id main --refresh

  • Confirm and execute the currently suggested strategy trade only after the user agrees:

python {baseDir}/scripts/confirm_strategy_action.py 011598 --account-id main --refresh --expected-action buy_dca

  • Check whether a drawdown alert is triggered:

python {baseDir}/scripts/check_fund_alert.py 004475

References To Load

  • references/strategy_parameters.md

Use when revising thresholds, clarifying formulas, or resolving ambiguous parameter choices.

  • references/data_inputs.md

Use when working with the SQLite importer, mapping database tables to strategy inputs, planning the next strategy-state tables, or assembling a fund detail report.

版本历史

共 1 个版本

  • v1.0.0 当前
    2026-05-07 12:46 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

Cookie Alive Pro

seanmwx
通过本地 SQLite 支持的 Cookie 存储持久化、刷新并提供网站会话 Cookie,适用于 Codex 需要保持已认证 Cookie活跃的场景。
★ 0 📥 399

Personal Money Tracker Pro

seanmwx
本地 SQLite 记账 skill。用于处理中文自然语言记账、查账、分类管理、钱包账户管理、账户余额查询、周期性交易管理、最近账单查询、修改账单和删除账单请求,例如“记账 我喝奶茶用了10元”“用支付宝记一笔午饭 25 元”“显示所有账户
★ 1 📥 350

Email Sender Pro

seanmwx
通过SMTP(如126、QQ、新浪、阿里云邮箱)发送邮件,使用SMTP授权码或邮箱密码。当用户希望Codex发送邮件时使用。
★ 0 📥 409