Documentation
¶
Index ¶
- Constants
- Variables
- func ClassifyCode(symbol string) string
- func PriceScale(symbol string) float64
- func SymbolFromCode(code string) (string, bool)
- type BasicDaily
- type BlockInfo
- type BlockMember
- type Column
- type DataType
- type Factor
- type GbbqData
- type Holiday
- type KlineDay
- type KlineMin
- type Meta
- type SymbolClass
- type SymbolName
- type TableMeta
- type ViewDef
Constants ¶
const ( ClassStock = "stock" ClassBStock = "bstock" ClassIndex = "index" ClassETF = "etf" ClassBlock = "block" ClassUnknown = "unknown" )
const SchemaMajor = 5
SchemaMajor 表示数据库 schema 的主版本号。 当发生破坏性变更(表重命名、字段语义变化等)时递增。 已安装的数据库 major 版本与当前代码不匹配时,工具将拒绝操作并提示用户查看文档。
const SchemaMinor = 0
SchemaMinor 表示数据库 schema 的次版本号。 当发生非破坏性变更(新增表、新增字段等)时递增。
Variables ¶
var ( ViewStockBFQ = DefineView(stockBFQView("v_stock_bfq", "stock")) ViewStockQFQ = DefineView(adjustedQFQView("v_stock_qfq", "stock", 2)) ViewStockHFQ = DefineView(adjustedHFQView("v_stock_hfq", "stock", 2)) ViewETFBFQ = DefineView(stockBFQView("v_etf_bfq", "etf")) ViewETFQFQ = DefineView(adjustedQFQView("v_etf_qfq", "etf", 3)) ViewETFHFQ = DefineView(adjustedHFQView("v_etf_hfq", "etf", 3)) )
--- 定义视图 ---
命名约定:v_<class>_<fq>,class 放前面便于 tab-complete 按归属浏览 (v_stock_<TAB> / v_etf_<TAB> 各列出 3 个)。 stock / etf 拆开维护:ETF 价格 scale=1000、ROUND 精度 3 位, stock scale=100、ROUND 精度 2 位。
var MetaTable = SchemaFromStruct( "_meta", Meta{}, []string{"key"}, )
var TableAdjustFactor = SchemaFromStruct( "raw_adjust_factor", Factor{}, []string{"symbol", "date"}, )
var TableBasicDaily = SchemaFromStruct( "raw_basic_daily", BasicDaily{}, []string{"symbol", "date"}, )
var TableBlockInfo = SchemaFromStruct( "raw_tdx_blocks_info", BlockInfo{}, []string{"block_code"}, )
var TableBlockMember = SchemaFromStruct( "raw_tdx_blocks_member", BlockMember{}, []string{"block_code", "stock_symbol"}, )
var TableGbbq = SchemaFromStruct( "raw_gbbq", GbbqData{}, []string{"symbol", "date"}, )
var TableHoliday = SchemaFromStruct( "raw_holidays", Holiday{}, []string{""}, )
var TableKline1Min = SchemaFromStruct( "raw_kline_1min", KlineMin{}, []string{"symbol", "datetime"}, )
var TableKlineDaily = SchemaFromStruct( "raw_kline_daily", KlineDay{}, []string{"symbol", "date"}, )
var TableSymbolClass = SchemaFromStruct( "raw_symbol_class", SymbolClass{}, []string{"symbol"}, )
var TableSymbolName = SchemaFromStruct( "raw_symbol_name", SymbolName{}, []string{"symbol"}, )
Functions ¶
func ClassifyCode ¶
ClassifyCode 根据 symbol (如 "sh600000") 返回所属分类。 未匹配到任何规则返回 ClassUnknown。
func PriceScale ¶
PriceScale 返回 TDX 日线/分钟线原始整数价格的换算系数。 TDX 把不同品种用不同分辨率存储:
- 股票/指数/板块/北交所/可转债: 单位 0.01 元 (分), 返回 100
- ETF/LOF/老封基 (class=etf): 单位 0.001 元, 返回 1000
- 沪市 B 股 (sh900) / 深市 B 股 (sz20): 单位 0.001 元 (USD/HKD), 返回 1000
未识别的 symbol 默认按股票 (100) 处理。
func SymbolFromCode ¶
SymbolFromCode 根据 6 位裸数字代码 (如 "600000") 反查市场前缀, 返回完整 symbol (如 "sh600000")。复用 classRules,只考虑 stock/etf 类型, 因为指数 (index) 和板块 (block) 没有公司行为数据, 也能避免 "000" 同时命中 sh 指数和 sz 股票的歧义。 多前缀匹配时取最长前缀。未匹配返回 (code, false)。
Types ¶
type BasicDaily ¶
type BasicDaily struct {
Date time.Time `col:"date" type:"date"`
Symbol string `col:"symbol"`
Close float64 `col:"close"`
PreClose float64 `col:"preclose"`
ChangePercent float64 `col:"change_pct"`
Amplitude float64 `col:"amplitude"`
Turnover float64 `col:"turnover"`
FloatMV float64 `col:"floatmv"`
TotalMV float64 `col:"totalmv"`
}
BasicDaily 是每日衍生指标(PreClose/涨跌幅/振幅/换手率/市值)。 覆盖 stock + etf 两类 symbol。
type BlockMember ¶
type SymbolClass ¶
type SymbolName ¶
type TableMeta ¶
func SchemaFromStruct ¶
SchemaFromStruct 通过反射生成 TableMeta 并自动注册 返回值为指针类型 *TableMeta