Initial commit: Add project files
This commit is contained in:
@@ -0,0 +1,229 @@
|
||||
version: 12.2-proposal
|
||||
evidence_status: RESEARCH_CANDIDATE_NOT_PRODUCTION
|
||||
as_of: '2026-08-01'
|
||||
verified_data_end:
|
||||
US: '2026-03-20'
|
||||
KR: '2021-04-16'
|
||||
universe:
|
||||
markets:
|
||||
- KOSPI
|
||||
- KOSDAQ
|
||||
- NYSE
|
||||
- NASDAQ
|
||||
broker_assumption: MiraeAsset Securities; tradability capability-gated
|
||||
products:
|
||||
- cash_equity
|
||||
- unlevered_index_etf
|
||||
- sector_etf
|
||||
- bond_etf
|
||||
objective:
|
||||
primary: maximize after-cost expected utility subject to permanent-loss and recovery constraints
|
||||
utility: expected_return - lambda_es*ES95 - lambda_mdd*MDD - impairment_loss - costs - tax - false_exit_cost
|
||||
not_primary: maximum CAGR
|
||||
execution:
|
||||
decision_frequency: daily_close + weekly evidence review
|
||||
execution_lag: next tradable session
|
||||
fee_model: PIT account/venue/asset/side schedule
|
||||
slippage: participation-rate + spread + volatility + gap
|
||||
adapter: MiraeAssetAdapter; proposal/manual approval until API capability verified
|
||||
sell_engine:
|
||||
priority:
|
||||
- hard_permanent_impairment
|
||||
- portfolio_survival
|
||||
- dynamic_profit_floor
|
||||
- concentration_liquidity
|
||||
- opportunity_cost
|
||||
- reentry_option
|
||||
soft_sell:
|
||||
two_close_fraction:
|
||||
- 0.15
|
||||
- 0.25
|
||||
gap_1_5_atr_fraction:
|
||||
- 0.3
|
||||
- 0.5
|
||||
same_direction_cooldown_sessions: 5
|
||||
asset_policies:
|
||||
broad_index_etf:
|
||||
strategic_core:
|
||||
- 0.5
|
||||
- 0.7
|
||||
activation_gain: 0.15
|
||||
activation_atr: 5.0
|
||||
confirm:
|
||||
- sma200
|
||||
- breadth
|
||||
- credit_spread
|
||||
reentry_stages:
|
||||
- 0.3
|
||||
- 0.3
|
||||
- 0.4
|
||||
quality_compounder:
|
||||
strategic_core:
|
||||
- 0.3
|
||||
- 0.5
|
||||
activation_gain: 0.2
|
||||
activation_atr: 5.0
|
||||
confirm:
|
||||
- fcf
|
||||
- roic
|
||||
- earnings_revision
|
||||
- valuation_stretch
|
||||
reentry_stages:
|
||||
- 0.2
|
||||
- 0.3
|
||||
- 0.5
|
||||
cyclical_stock:
|
||||
strategic_core:
|
||||
- 0.1
|
||||
- 0.25
|
||||
activation_gain:
|
||||
- 0.15
|
||||
- 0.2
|
||||
confirm:
|
||||
- industry_price
|
||||
- inventory
|
||||
- spread
|
||||
- earnings_revision
|
||||
reentry_stages:
|
||||
- 0.15
|
||||
- 0.25
|
||||
- 0.6
|
||||
high_vol_growth:
|
||||
strategic_core:
|
||||
- 0.1
|
||||
- 0.2
|
||||
activation_gain: 0.25
|
||||
activation_atr: 4.0
|
||||
confirm:
|
||||
- dilution
|
||||
- cash_runway
|
||||
- relative_strength
|
||||
- earnings_revision
|
||||
reentry_stage: 0.2
|
||||
distressed_special_situation:
|
||||
strategic_core:
|
||||
- 0.0
|
||||
- 0.1
|
||||
automatic_reentry: false
|
||||
reentry:
|
||||
minimum_wait_sessions: 10
|
||||
minimum_spacing_sessions: 10
|
||||
watch_sessions: 126
|
||||
base_conditions:
|
||||
- close_above_rising_sma50
|
||||
- close_above_prior_20_session_high
|
||||
reset_cycle_state: true
|
||||
portfolio_risk:
|
||||
drawdown_to_risky_cap:
|
||||
'-0.08': 0.9
|
||||
'-0.12': 0.75
|
||||
'-0.18': 0.55
|
||||
'-0.25': 0.35
|
||||
single_name_cap: 0.12
|
||||
sector_cap: 0.3
|
||||
correlation_cluster_cap: 0.35
|
||||
liquidity_order_adv_cap: 0.1
|
||||
risk_measures:
|
||||
- ES95
|
||||
- MDD
|
||||
- factor_exposure
|
||||
- liquidity
|
||||
- gap_risk
|
||||
buy_engine:
|
||||
stock_weights:
|
||||
quality_survival: 0.25
|
||||
valuation: 0.2
|
||||
revisions_momentum: 0.2
|
||||
regime_breadth: 0.15
|
||||
liquidity_crowding: 0.1
|
||||
downside_resilience: 0.1
|
||||
minimum_score: 70
|
||||
cash_excess_return_hurdle_pp: 5
|
||||
replacement_hurdle_net_pp:
|
||||
- 4
|
||||
- 5
|
||||
entry_stages:
|
||||
- 0.4
|
||||
- 0.3
|
||||
- 0.3
|
||||
first_order_cap: min(fair_value_upper, previous_close + 0.25*ATR20)
|
||||
forecast_outputs:
|
||||
- P10_total_return_12m
|
||||
- P50_total_return_12m
|
||||
- P90_total_return_12m
|
||||
- P_permanent_impairment_12m
|
||||
- P_drawdown_before_recovery
|
||||
- ES95
|
||||
- fair_value_range
|
||||
- sell_floor
|
||||
- next_order_cap
|
||||
validation:
|
||||
splits:
|
||||
research:
|
||||
- '2007-01-01'
|
||||
- '2013-12-31'
|
||||
validation:
|
||||
- '2014-01-01'
|
||||
- '2017-12-31'
|
||||
rolling_oos:
|
||||
- '2018-01-01'
|
||||
- '2023-12-31'
|
||||
frozen_oos:
|
||||
- '2024-01-01'
|
||||
- latest_verified
|
||||
required:
|
||||
- PIT_security_master
|
||||
- survivorship_free_universe
|
||||
- delisting_returns
|
||||
- corporate_actions
|
||||
- total_return
|
||||
- PIT_fundamentals_consensus
|
||||
- FX
|
||||
- PIT_cost_tax
|
||||
- walk_forward
|
||||
- block_bootstrap
|
||||
- CSCV_PBO
|
||||
- deflated_sharpe
|
||||
- execution_simulation
|
||||
promotion_gates:
|
||||
PBO_max: 0.2
|
||||
DSR_probability_min: 0.95
|
||||
reentry_capture_min: 0.65
|
||||
false_exit_cost_max_per_year: 0.02
|
||||
double_cost_expected_utility_positive: true
|
||||
architecture:
|
||||
style:
|
||||
- Modular Monolith
|
||||
- Vertical Slice
|
||||
- FastEndpoints
|
||||
backend:
|
||||
- .NET 10
|
||||
- ASP.NET Core 10
|
||||
- PostgreSQL
|
||||
- Npgsql
|
||||
- Dapper
|
||||
- DbUp
|
||||
- Hangfire
|
||||
- SignalR
|
||||
- Outbox
|
||||
- Inbox
|
||||
frontend:
|
||||
- Vue 3
|
||||
- Vite 8
|
||||
- pnpm
|
||||
- TanStack Query
|
||||
- Pinia
|
||||
- vee-validate
|
||||
- Zod
|
||||
- PrimeVue
|
||||
- AG Grid
|
||||
quality:
|
||||
- xUnit
|
||||
- Vitest
|
||||
- Playwright
|
||||
- Gitea Actions
|
||||
- Serilog
|
||||
- OpenTelemetry
|
||||
- Telegram
|
||||
- Polly
|
||||
- Swashbuckle.AspNetCore
|
||||
Reference in New Issue
Block a user