{ "archive_files": [ "C:\\Users\\kunth\\Gitea\\SET Trade system\\data\\raw\\siamchart\\set-archive_EOD_1970-LAST.zip", "C:\\Users\\kunth\\Gitea\\SET Trade system\\data\\raw\\siamchart\\set-archive_EOD.zip", "C:\\Users\\kunth\\Gitea\\SET Trade system\\data\\raw\\siamchart\\set-archive_EOD_LAST.zip" ], "evaluation_start": "2026-01-01", "evaluation_end_exclusive": "2026-09-29", "daily_sessions_loaded": 643, "equity_like_symbols": 307, "action_symbols_with_dividend_history": 118, "cash_dividend_events_loaded": 2966, "split_events_price_confirmed_or_inferred": 1, "archive_read_issues": [], "universe": "top 100 symbols by trailing 20-session average value turnover, at least THB 20m/day, price >= THB 2, as-of each signal close", "primary_union": { "models": [ "donchian_55_20", "ema50_200_cross" ], "entry_rule": "hold a symbol selected by either model", "weighting": "equal weight across unique active symbols; overlapping selections count once", "maximum_positions": 20 }, "known_non_stock_tickers_excluded": [ "1DIV", "3BBIF", "ABFTH", "BSET100", "BTSGIF", "CHINA", "DIF", "EBANK", "ECOMM", "EFOOD", "ENERG", "ESET50", "GLD", "JASIF", "JDF", "JPF", "MAI", "SET", "SET100", "SET50", "SETCLMV", "SETESG", "SETHD", "SETWB", "SSET", "TDEX", "TFFIF" ], "notes": [ "Universe membership is constructed from contemporaneous market-wide EOD records; no current-constituent list is backfilled.", "A small ticker exclusion list removes indices and known funds; the archive has no instrument-type field, so other equity-like symbols can remain.", "Cash dividends are applied where SiamChart sidecars exist, with covered-period SET reference values overriding sidecars.", "Par-value share ratios are used only when price data corroborates a split; missing corporate-action histories remain a data risk.", "Portfolio weights are fractional and daily value marks are adjusted; board lots and market impact are not modeled in this screening pass.", "The low-volatility momentum, EMA 50/200 and Donchian finalists also have a separate validation using 100-share board lots, raw prices, split-adjusted quantities, and dividend cash where available.", "A security with no daily bar cannot be sold in the simulator; its last observed close is carried forward and stale_position_days is reported for board-lot validation.", "A separate conservative board-lot sensitivity writes the entire position value to zero after 60 consecutive sessions without a bar; this is a delisting-risk stress, not an assumed exchange settlement rule.", "One unreadable daily archive entry is omitted and listed in archive_read_issues; the source archive is not modified." ] }