factors

package
v0.8.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 18, 2023 License: Apache-2.0 Imports: 23 Imported by: 0

Documentation

Overview

Package factors 特征/因子相关的功能

包括: 基本面, 常用历史特征以及1号策略数据

Index

Constants

View Source
const (
	FeatureF10              = baseFeature + 1 // 特征数据-基本面
	FeatureHistory          = baseFeature + 2 // 特征数据-历史
	FeatureKLineShap        = baseFeature + 3 // 特征数据-K线形态等
	FeatureMovingAverage    = baseFeature + 4 // 特征数据-移动平均线
	FeatureBreaksThroughBox = baseFeature + 5 // 特征数据-有效突破平台

	FeatureHousNo1 = featureHous + 1 // 侯总1号策略
	FeatureHousNo2 = featureHous + 2 // 侯总2号策略
)

登记所有的特征数据

View Source
const (
	CacheL5KeyF10 = "f10"
)
View Source
const (
	CacheL5KeyHistory = "history"
)
View Source
const (
	InvalidPeriod = -1 // 无效的周期
)
View Source
const (
	SubNewStockYears = 1 // 次新股几年内
)

Variables

View Source
var (
	ErrInvalidFeatureSample = errors.New("无效的特征数据样本")
)

Functions

func ComputeFreeCapital added in v0.2.0

func ComputeFreeCapital(holderList []dfcf.CirculatingShareholder, capital float64) (top10Capital, freeCapital, capitalChanged, increaseRatio, reductionRatio float64)

ComputeFreeCapital 计算自由流通股本

func GetTimestamp added in v0.8.1

func GetTimestamp() string

GetTimestamp 时间戳

格式: YYYY-MM-DD hh:mm:ss.SSS

func IsSubNewStockByIpoDate added in v0.2.0

func IsSubNewStockByIpoDate(securityCode, ipoDate, date string) bool

IsSubNewStockByIpoDate 检查是否次新股

Types

type CompleteData added in v0.2.0

type CompleteData struct {
	No1 HousNo1
}

type F10 added in v0.2.0

type F10 struct {
	cache.DataSummary    `dataframe:"-"`
	Date                 string  `name:"日期" dataframe:"Date"`                    // 日期
	Code                 string  `name:"代码" dataframe:"Code"`                    // 证券代码
	SecurityName         string  `name:"名称" dataframe:"Name"`                    // 证券名称
	SubNew               bool    `name:"次新股" dataframe:"SubNew"`                 // 是否次新股
	VolUnit              int     `name:"每手" dataframe:"VolUnit"`                 // 每手单位
	DecimalPoint         int     `name:"小数点" dataframe:"DecimalPoint"`           // 小数点
	IpoDate              string  `name:"上市日期" dataframe:"IpoDate"`               // 上市日期
	UpdateDate           string  `name:"更新日期" dataframe:"UpdateDate"`            // 更新日期
	TotalCapital         float64 `name:"总股本" dataframe:"TotalCapital"`           // 总股本
	Capital              float64 `name:"流通股本" dataframe:"Capital"`               // 流通股本
	FreeCapital          float64 `name:"自由流通股本" dataframe:"FreeCapital"`         // 自由流通股本
	Top10Capital         float64 `name:"前十大流通股东总股本" dataframe:"Top10Capital"`    // 前十大流通股东股本
	Top10Change          float64 `name:"前十大流通股东总股本变化" dataframe:"Top10Change"`   //前十大流通股东股本变化
	ChangeCapital        float64 `name:"前十大流通股东持仓变化" dataframe:"ChangeCapital"`  // 前十大流通股东持仓变化
	IncreaseRatio        float64 `name:"当期增持比例" dataframe:"IncreaseRatio"`       // 当期增持比例
	ReductionRatio       float64 `name:"当期减持比例" dataframe:"ReductionRatio"`      // 当期减持比例
	QuarterlyYearQuarter string  `name:"季报期" dataframe:"quarterly_year_quarter"` // 当前市场处于哪个季报期, 用于比较个股的季报数据是否存在拖延的情况
	QDate                string  `name:"新报告期" dataframe:"qdate"`                 // 最新报告期
	TotalOperateIncome   float64 `name:"营业总收入" dataframe:"TotalOperateIncome"`   // 当期营业总收入
	BPS                  float64 `name:"每股净资产" dataframe:"BPS"`                  // 每股净资产
	BasicEPS             float64 `name:"每股收益" dataframe:"BasicEPS"`              // 每股收益
	DeductBasicEPS       float64 `name:"每股收益(扣除)" dataframe:"DeductBasicEPS"`    // 每股收益(扣除)
	SafetyScore          int     `name:"安全分" dataframe:"SafetyScore"`            // 通达信安全分
	Increases            int     `name:"增持" dataframe:"Increases"`               // 公告-增持
	Reduces              int     `name:"减持" dataframe:"Reduces"`                 // 公告-减持
	Risk                 int     `name:"风险数" dataframe:"Risk"`                   // 公告-风险数
	RiskKeywords         string  `name:"风险关键词" dataframe:"RiskKeywords"`         // 公告-风险关键词
	UpdateTime           string  `name:"更新时间" dataframe:"update_time"`           // 更新时间
	State                uint64  `name:"样本状态" dataframe:"样本状态"`
}

F10 证券基本面

func NewF10 added in v0.2.0

func NewF10(date, code string) *F10

func (*F10) Factory added in v0.2.0

func (this *F10) Factory(date string, code string) Feature

func (*F10) FromHistory added in v0.2.0

func (this *F10) FromHistory(history History) Feature

func (*F10) GetDate added in v0.2.0

func (this *F10) GetDate() string

func (*F10) GetSecurityCode added in v0.2.0

func (this *F10) GetSecurityCode() string

func (*F10) Increase added in v0.2.0

func (this *F10) Increase(snapshot QuoteSnapshot) Feature

func (*F10) Init added in v0.2.0

func (this *F10) Init(ctx context.Context, date string) error

func (*F10) Repair added in v0.2.0

func (this *F10) Repair(code, cacheDate, featureDate string, complete bool)

func (*F10) TurnZ added in v0.2.0

func (this *F10) TurnZ(v any) float64

func (*F10) Update added in v0.2.0

func (this *F10) Update(code, cacheDate, featureDate string, complete bool)

func (*F10) ValidateSample added in v0.8.1

func (this *F10) ValidateSample() error

type Feature

type Feature interface {
	cache.Manifest
	cache.Future
	// Factory 工厂
	Factory(date string, code string) Feature
	Trait
}

Feature 特征

type History

type History struct {
	cache.DataSummary `dataframe:"-"`
	Date              string         `name:"日期" dataframe:"date"`           // 日期, 数据落地的日期
	Code              string         `name:"代码" dataframe:"code"`           // 代码
	MA2               float64        `name:"2日均价" dataframe:"ma2"`          // 2日均价
	MA3               float64        `name:"3日均价" dataframe:"ma3"`          // 3日均价
	MV3               float64        `name:"3日均量" dataframe:"mv3"`          // 3日均量
	MA4               float64        `name:"4日均价" dataframe:"ma4"`          // 4日均价
	MA5               float64        `name:"5日均价" dataframe:"ma5"`          // 5日均价
	MV5               float64        `name:"5日均量" dataframe:"mv5"`          // 5日均量
	MA9               float64        `name:"9日均价" dataframe:"ma9"`          // 9日均价
	MV9               float64        `name:"9日均量" dataframe:"mv9"`          // 9日均量
	MA10              float64        `name:"10日均价" dataframe:"ma10"`        // 10日均价
	MV10              float64        `name:"10日均量" dataframe:"mv10"`        // 10日均量
	MA19              float64        `name:"19日均价" dataframe:"ma19"`        // 19日均价
	MV19              float64        `name:"19日均量" dataframe:"mv19"`        // 19日均量
	MA20              float64        `name:"20日均价" dataframe:"ma20"`        // 20日均价
	MV20              float64        `name:"20日均量" dataframe:"mv20"`        // 20日均量
	OPEN              float64        `name:"开盘" dataframe:"open"`           // 昨日开盘
	CLOSE             float64        `name:"收盘" dataframe:"close"`          // 昨日收盘
	HIGH              float64        `name:"最高" dataframe:"high"`           // 昨日最高
	LOW               float64        `name:"最低" dataframe:"low"`            // 昨日最低
	VOL               float64        `name:"成交量" dataframe:"vol"`           // 昨日成交量
	AMOUNT            float64        `name:"成交额" dataframe:"amount"`        // 昨日成交额
	AveragePrice      float64        `name:"均价" dataframe:"average_price"`  // 昨日均价
	Payloads          IncompleteData `name:"payloads" dataframe:"payloads"` // 扩展的半成品数据
	Last              CompleteData   `name:"last" dataframe:"last"`         // 上一个交易日的数据
	UpdateTime        string         `name:"更新时间" dataframe:"update_time"`  // 更新时间
	State             uint64         `name:"样本状态" dataframe:"样本状态"`
}

History 历史整合数据

记录重要的截止上一个交易日的数据

func NewHistory added in v0.2.0

func NewHistory(date, code string) *History

func (*History) Factory added in v0.2.0

func (this *History) Factory(date string, code string) Feature

func (*History) FromHistory added in v0.2.0

func (this *History) FromHistory(history History) Feature

func (*History) GetDate added in v0.2.0

func (this *History) GetDate() string

func (*History) GetMV5 added in v0.6.1

func (this *History) GetMV5() float64

GetMV5 前5日分钟均量

func (*History) GetSecurityCode added in v0.2.0

func (this *History) GetSecurityCode() string

func (*History) Increase added in v0.2.0

func (this *History) Increase(snapshot QuoteSnapshot) Feature

func (*History) Init added in v0.2.0

func (this *History) Init(ctx context.Context, date string) error

func (*History) Repair added in v0.2.0

func (this *History) Repair(code, cacheDate, featureDate string, complete bool)

func (*History) Update added in v0.2.0

func (this *History) Update(code, cacheDate, featureDate string, complete bool)

func (*History) ValidateSample added in v0.8.1

func (this *History) ValidateSample() error

type HousNo1 added in v0.2.0

type HousNo1 struct {
	cache.DataSummary `dataframe:"-"`
	MA5               float64 `dataframe:"ma5"`
	MA10              float64 `dataframe:"ma10"`
	MA20              float64 `dataframe:"ma20"`
}

func (*HousNo1) Factory added in v0.2.0

func (this *HousNo1) Factory(date string, code string) Feature

func (*HousNo1) FromHistory added in v0.2.0

func (this *HousNo1) FromHistory(history History) Feature

func (*HousNo1) GetDate added in v0.2.0

func (this *HousNo1) GetDate() string

func (*HousNo1) GetSecurityCode added in v0.2.0

func (this *HousNo1) GetSecurityCode() string

func (*HousNo1) Increase added in v0.2.0

func (this *HousNo1) Increase(snapshot QuoteSnapshot) Feature

func (*HousNo1) Init added in v0.2.0

func (this *HousNo1) Init(ctx context.Context, date string) error

func (*HousNo1) Repair added in v0.2.0

func (this *HousNo1) Repair(code, cacheDate, featureDate string, complete bool)

func (*HousNo1) Update added in v0.2.0

func (this *HousNo1) Update(code, cacheDate, featureDate string, complete bool)

func (*HousNo1) ValidateSample added in v0.8.1

func (this *HousNo1) ValidateSample() error

type IncompleteData added in v0.2.0

type IncompleteData struct {
	No1 HousNo1
}

IncompleteData 不完整的数据

type QuoteSnapshot added in v0.8.5

type QuoteSnapshot struct {
	Date                  string               // 交易日期
	ServerTime            string               // 时间
	SecurityCode          string               // 证券代码
	ExchangeState         quotes.ExchangeState // 交易状态
	State                 quotes.TradeState    // 上市公司状态
	Market                uint8                // 市场ID
	Code                  string               `name:"证券代码"`  // 代码
	Name                  string               `name:"证券名称"`  // 证券名称
	Active                uint16               `name:"活跃度"`   // 活跃度
	LastClose             float64              `name:"昨收"`    // 昨收
	Open                  float64              `name:"开盘价"`   // 开盘
	OpeningChangeRate     float64              `name:"开盘涨幅%"` // 开盘
	Price                 float64              `name:"现价"`    // 现价
	ChangeRate            float64              `name:"涨跌幅%"`  // 涨跌幅
	PremiumRate           float64              `name:"溢价率%"`  // 集合竞价买入溢价, hedgeRatio
	High                  float64              // 最高
	Low                   float64              // 最低
	Vol                   int                  // 总量
	CurVol                int                  // 现量
	Amount                float64              // 总金额
	SVol                  int                  // 内盘
	BVol                  int                  // 外盘
	IndexOpenAmount       int                  // 指数-集合竞价成交金额=开盘成交金额
	StockOpenAmount       int                  // 个股-集合竞价成交金额=开盘成交金额
	OpenVolume            int                  `name:"开盘量"` // 集合竞价-开盘量, 单位是股
	CloseVolume           int                  `name:"收盘量"` /// 集合竞价-收盘量, 单位是股
	IndexUp               int                  // 指数有效-上涨数
	IndexUpLimit          int                  // 指数有效-涨停数
	IndexDown             int                  // 指数有效-下跌数
	IndexDownLimit        int                  // 指数有效-跌停数
	OpenBiddingDirection  int                  `name:"开盘竞价" dataframe:"开盘竞价"` // 竞价方向, 交易当日集合竞价开盘时更新
	OpenVolumeDirection   int                  `name:"开盘竞量" dataframe:"开盘竞量"` // 委托量差, 交易当日集合竞价开盘时更新
	CloseBiddingDirection int                  `name:"收盘竞价" dataframe:"收盘竞价"` // 竞价方向, 交易当日集合竞价收盘时更新
	CloseVolumeDirection  int                  `name:"收盘竞量" dataframe:"收盘竞量"` // 委托量差, 交易当日集合竞价收盘时更新
	Rate                  float64              // 涨速
	TopNo                 int                  // 板块排名
	TopCode               string               // 领涨个股
	TopName               string               // 领涨个股名称
	TopRate               float64              // 领涨个股涨幅
	ZhanTing              int                  // 涨停数
	Ling                  int                  // 平盘数
	Count                 int                  // 总数
	Capital               float64              `name:"流通盘"`    // 流通盘
	FreeCapital           float64              `name:"自由流通股本"` // 自由流通股本
	OpenTurnZ             float64              `name:"开盘换手Z%"` // 开盘换手
	OpenQuantityRatio     float64              `name:"开盘量比"`
	QuantityRatio         float64              `name:"量比"`
	ChangePower           float64              `name:"涨跌力度"` // 开盘金额除以开盘涨幅
	AverageBiddingVolume  int                  `name:"委托均量"` // 委托均量
	UpdateTime            string               // 本地时间戳
}

QuoteSnapshot 即时行情快照

type Trait added in v0.3.7

type Trait interface {
	// FromHistory 从历史数据加载
	FromHistory(history History) Feature
	// Increase 增量计算
	//	用快照增量计算特征
	Increase(snapshot QuoteSnapshot) Feature
	// ValidateSample 验证样本
	ValidateSample() error
}

Trait 基础的特性

这也是一个特征, 为啥起这个名字, 自己可以脑补 哈哈~

type Weight

type Weight = uint64

Weight 权重数据类型为64, 实际容纳63个

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL