cache

package
v0.7.2 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	TDX_FORMAT_PROTOCOL_DATE = "20060102"   // 通达信协议的日期字符串格式
	CACHE_DATE               = "20060102"   // 缓存日期
	INDEX_DATE               = "2006-01-02" // 索引日期格式
	TDX_DATE                 = "20060102"   // 通达信日期
	YearOnly                 = "2006"       // 仅年份
)
View Source
const (
	// Debug 调试开关
	Debug = false
)
View Source
const (
	// DefaultDataProvider 默认数据提供者
	DefaultDataProvider = "engine"
)
View Source
const (
	FilenameDate = "20060102" // 缓存文件相关的日期格式
)
View Source
const (
	KBarIndex = "barIndex"
)
View Source
const (
	// ResourcesPath 资源路径
	ResourcesPath = "resources"
)
View Source
const (
	UseGoroutine = false // 更新和修复数据是否启用协程
)

Variables

View Source
var (
	ErrAlreadyExists = errors.New("plugin is already exists")
)

Functions

func CacheId

func CacheId(code string) string

CacheId 通过代码构建目录结构

func CacheIdPath

func CacheIdPath(code string) string

CacheIdPath code从后保留3位, 市场缩写+从头到倒数第3的代码, 确保每个目录只有000~999个代码

func CorrectDate added in v0.1.5

func CorrectDate(date string) (cacheDate, resourcesDate string)

CorrectDate 校正日期

func DefaultCanReadDate added in v0.1.5

func DefaultCanReadDate() string

DefaultCanReadDate 获取默认可以读缓存文件的日期

func DefaultCanUpdateDate added in v0.1.5

func DefaultCanUpdateDate() string

DefaultCanUpdateDate 获取默认可以更新缓存文件的日期

func FeatureFilename added in v0.5.4

func FeatureFilename(code string) string

FeatureFilename 特征数据缓存路径

func FundFlowFilename added in v0.5.1

func FundFlowFilename(securityCode string) string

FundFlowFilename 通过证券代码获取资金流向的缓存文件路径

func GetConfigFilename

func GetConfigFilename() string

GetConfigFilename 获取配置文件路径

func GetDayPath

func GetDayPath() string

GetDayPath 历史数据-日线缓存路径

func GetFeaturesPath

func GetFeaturesPath() string

GetFeaturesPath 获取特征路径

func GetFundFlowPath

func GetFundFlowPath() string

GetFundFlowPath 资金流向目录

func GetHoldingPath

func GetHoldingPath() string

GetHoldingPath 十大流通股股东数据路径

func GetInfoPath added in v0.1.5

func GetInfoPath() string

GetInfoPath 信息路径

func GetLoggerPath

func GetLoggerPath() string

GetLoggerPath 获取日志路径

func GetMetaPath

func GetMetaPath() string

GetMetaPath 元数据路径

func GetMinutePath added in v0.5.3

func GetMinutePath() string

GetMinutePath 分时路径

func GetQuarterlyPath deprecated added in v0.1.5

func GetQuarterlyPath() string

GetQuarterlyPath 季报路径

Deprecated: 不推荐

func GetRootPath

func GetRootPath() string

GetRootPath 获取缓存根路径

func GetSnapshotPath

func GetSnapshotPath() string

GetSnapshotPath 快照路径

func GetTickPath

func GetTickPath() string

GetTickPath tick数据路径

func GetVariablePath

func GetVariablePath() string

GetVariablePath 获取VAR路径

func GetXdxrPath

func GetXdxrPath() string

GetXdxrPath 除权除息文件存储路径

func GetZxgFile added in v0.2.3

func GetZxgFile() string

GetZxgFile 自选股文件路径

func KLineFilename

func KLineFilename(code string) string

KLineFilename 基础K线缓存路径

func MinuteFilename added in v0.5.3

func MinuteFilename(code, date string) string

func PreviewReportFilename added in v0.6.2

func PreviewReportFilename(date string) string

PreviewReportFilename 业绩预告文件名

func QuarterlyReportFilename added in v0.1.5

func QuarterlyReportFilename(code, date string) string

QuarterlyReportFilename 季报存储路径

info
  |-- YYYYQ1
        |--  sh600105.report
  |-- YYYYQ2
  |-- YYYYQ3
  |-- YYYYQ4
Deprecated: 不推荐使用

func Register added in v0.1.7

func Register(plugin DataAdapter) error

Register 注册插件

func ReportsFilename added in v0.1.5

func ReportsFilename(date string) string

ReportsFilename 报告数据文件名

func Reset

func Reset()

Reset 重置日志记录器

func SnapshotFilename added in v0.5.1

func SnapshotFilename(securityCode string) string

SnapshotFilename 快照数据文件

func TickFilename added in v0.2.0

func TickFilename(code, date string) string

TickFilename tick文件比较多, 目录结构${tick}/${YYYY}/${YYYYMMDD}/${CacheIdPath}

func Today added in v0.5.4

func Today() string

func Top10HoldersFilename added in v0.1.5

func Top10HoldersFilename(code, date string) string

Top10HoldersFilename 前十大流通股股东缓存文件名

func XdxrFilename

func XdxrFilename(code string) string

XdxrFilename XDXR缓存路径

Types

type DataAdapter added in v0.3.2

type DataAdapter interface {
	// Schema 继承基础特性接口
	Schema
	// Print 控制台输出指定日期的数据
	Print(code string, date ...string)
}

DataAdapter 数据插件

func Plugins added in v0.1.7

func Plugins(mask ...Kind) (list []DataAdapter)

Plugins 按照类型标志位捡出数据插件

func PluginsWithName added in v0.2.0

func PluginsWithName(pluginType Kind, keywords ...string) (list []DataAdapter)

type DataFile added in v0.3.2

type DataFile interface {
	// Checkout 捡出指定日期的缓存数据
	Checkout(securityCode, date string)
	// Filename 缓存文件名
	//	接受两个参数 日期和证券代码
	// 	文件名为空不缓存
	Filename(date, securityCode string) string
	// Check 数据校验
	Check(cacheDate, featureDate string) error
}

DataFile 基础数据文件接口

type DataSummary added in v0.3.2

type DataSummary struct {
	// contains filtered or unexported fields
}

DataSummary 数据概要

func Summary added in v0.3.2

func Summary(kind Kind, key, name, owner string) DataSummary

func (DataSummary) Key added in v0.3.2

func (d DataSummary) Key() string

func (DataSummary) Kind added in v0.3.2

func (d DataSummary) Kind() Kind

func (DataSummary) Name added in v0.3.2

func (d DataSummary) Name() string

func (DataSummary) Owner added in v0.3.2

func (d DataSummary) Owner() string

func (DataSummary) Usage added in v0.3.4

func (d DataSummary) Usage() string

type Depend added in v0.1.7

type Depend interface {
	DependOn() []Kind
}

type Future added in v0.3.2

type Future interface {
	// Update 更新数据
	//	whole 是否完整的数据, false是加工成半成品数据, 为了配合Increase
	Update(securityCode, cacheDate, featureDate string, whole bool)
	// Repair 回补数据
	Repair(securityCode, cacheDate, featureDate string, whole bool)
}

Future 预备数据的接口

type Handover added in v0.1.7

type Handover interface {
	// ChangingOverDate 缓存数据转换日期
	//	数据集等基础数据不需要切换日期
	ChangingOverDate(date string)
}

Handover 缓存切换接口

type Increase added in v0.3.2

type Increase[T any] interface {
	Add(data T) T
}

Increase 增量数据计算接口

deprecated: 不推荐

type Initialization added in v0.3.4

type Initialization interface {
	// Init 初始化, 接受context, 日期和证券代码作为入参
	Init(ctx context.Context, date string) error
}

Initialization 初始化接口

type Job added in v0.6.7

type Job struct {
	Name    string `yaml:"name"`    // 任务名称
	Trigger string `yaml:"trigger"` // 触发条件
}

Job 定时任务配置

type Kind added in v0.1.7

type Kind = uint64
const (
	PluginMaskBaseData Kind = 0x1000000000000000
	PluginMaskFeature  Kind = 0x2000000000000000
)

type Manifest added in v0.3.8

type Manifest interface {
	Schema
	Properties
	Initialization
}

Manifest 提要

type OpKind added in v0.2.7

type OpKind int
const (
	OpUpdate OpKind = iota + 1 // 更新
	OpRepair                   // 修复
	OpIncr                     // 增量
)

type Operator added in v0.3.2

type Operator interface {
	// Pull 拉取数据
	Pull(date, securityCode string) Operator
}

Operator 缓存操作接口

数据操作, 包含初始化和拉取两个接口

type OrderParameter added in v0.6.6

type OrderParameter struct {
	AccountId string `yaml:"account_id"`               // 账号ID
	OrderPath string `yaml:"order_path"`               // 订单路径
	TopN      int    `yaml:"top_n" default:"3"`        // 最多输出前多少名个股
	HaveETF   bool   `yaml:"have_etf" default:"false"` // 是否包含ETF
}

OrderParameter 订单参数

type PprofParameter added in v0.4.7

type PprofParameter struct {
	Enable bool `yaml:"enable" default:"true"` // 是否开启go tool pprof
	Port   int  `yaml:"port" default:"6060"`   // pprof web端口
}

type Properties added in v0.3.4

type Properties interface {
	// GetDate 日期
	GetDate() string
	// GetSecurityCode 证券代码
	GetSecurityCode() string
}

Properties 属性接口

type Quant1XConfig

type Quant1XConfig struct {
	BaseDir string           `yaml:"basedir"` // 基础路径
	Runtime RuntimeParameter `yaml:"runtime"` // 运行时参数
	Rules   RuleParameter    `yaml:"rules"`   // 规则参数
	Order   OrderParameter   `yaml:"order"`   // 订单参数
}

Quant1XConfig Quant1X基础配置

var (
	// EngineConfig engine配置信息
	EngineConfig Quant1XConfig
)

func ReadConfig added in v0.6.6

func ReadConfig() (config Quant1XConfig)

ReadConfig 读取配置文件

type RuleParameter added in v0.6.6

type RuleParameter struct {
	SectorsFilter               bool    `yaml:"sectors_filter" default:"false"`                  // 是否启用板块过滤, false代表全市场扫描
	SectorsTopN                 int     `yaml:"sectors_top_n" default:"3"`                       // 最多关联多少个板块, 默认3个
	StockTopNInSector           int     `yaml:"stock_top_n_in_sector" default:"5"`               // 板块内个股排名前N
	PriceMin                    float64 `yaml:"price_min" default:"2.00"`                        // 2.00 股价最低
	PriceMax                    float64 `yaml:"price_max" default:"30.00"`                       // 30.00 股价最高
	MaximumIncreaseWithin5days  float64 `yaml:"maximum_increase_within_5_days" default:"20.00"`  // 20.00 5日累计最大涨幅
	MaximumIncreaseWithin10days float64 `yaml:"maximum_increase_within_10_days" default:"70.00"` // 70.00 10日累计最大涨幅
	MaxReduceAmount             float64 `yaml:"max_reduce_amount" default:"-1000"`               // -1000 最大流出1000万
	TurnZMax                    float64 `yaml:"turn_z_max" default:"200.00"`                     // 200.00 换手最大值
	TurnZMin                    float64 `yaml:"turn_z_min" default:"1.50"`                       // 1.50 换手最小值
	OpenRateMax                 float64 `yaml:"open_rate_max"  default:"2.00"`                   // 2.00 最大涨幅
	OpenRateMin                 float64 `yaml:"open_rate_min" default:"-2.00"`                   // -2.00 最低涨幅
	QuantityRatioMax            float64 `yaml:"quantity_ratio_max" default:"9.99"`               // 9.99 最大开盘量比
	QuantityRatioMin            float64 `yaml:"quantity_ratio_min"  default:"1.00"`              // 1.00 最小开盘量比
	SafetyScoreMin              float64 `yaml:"safety_score_min" default:"80"`                   // 80 通达信安全分最小值
	VolumeRatioMax              float64 `yaml:"volume_ratio_max" default:"3.82"`                 // 1.800 成交量放大不能超过1.8
	CapitalMin                  float64 `yaml:"capital_min" default:"2"`                         // 2 * 亿 流通股本最小值
	CapitalMax                  float64 `yaml:"capital_max" default:"20"`                        // 20 * 亿 流通股本最大值
	VixMax                      float64 `yaml:"vix_max" default:"100"`                           // 波动率最大值100
	VixMin                      float64 `yaml:"vix_min" default:"0"`                             // 波动率最小值0
	TurnoverRateMax             float64 `yaml:"turnover_rate_max" default:"20.00"`               // 换手率最大20%
	TurnoverRateMin             float64 `yaml:"turnover_rate_min" default:"1.00"`                // 换手率最小1%
	AmplitudeRatioMax           float64 `yaml:"amplitude_ratio_max" default:"15"`                // 振幅 最大
	AmplitudeRatioMin           float64 `yaml:"amplitude_ratio_min" default:"0"`                 // 振幅 最小
	BiddingVolumeMax            int     `yaml:"bidding_volume_max" default:"5000"`               // 5档行情委托平均最大值
	BiddingVolumeMin            int     `yaml:"bidding_volume_min" default:"100"`                // 5档行情委托平均最小值
	SentimentHigh               float64 `yaml:"sentiment_high" default:"61.8"`                   // 情绪值最高
	SentimentLow                float64 `yaml:"sentiment_low" default:"38.2"`                    // 情绪值最低
}

RuleParameter 规则参数

type RuntimeParameter added in v0.4.7

type RuntimeParameter struct {
	Pprof PprofParameter `yaml:"pprof"`
}

type Schema added in v0.3.9

type Schema interface {
	// Kind 数据类型
	Kind() Kind
	// Owner 提供者
	Owner() string
	// Key 数据关键词, key与cache落地强关联
	Key() string
	// Name 特性名称
	Name() string
	// Usage 控制台参数提示信息, 数据描述(data description)
	Usage() string
}

Schema 缓存的概要信息

type ScoreBoard added in v0.3.2

type ScoreBoard struct {
	Kind      Kind          `name:"kind"`       // 类型
	Count     int           `name:"count"`      // 总数
	Max       time.Duration `name:"max"`        // 最大值
	Min       time.Duration `name:"min"`        // 最小值
	CrossTime time.Duration `name:"cross_time"` // 总耗时
	Speed     float64       `name:"speed"`      // 速度
	// contains filtered or unexported fields
}

ScoreBoard 记分牌

func (*ScoreBoard) Add added in v0.3.2

func (this *ScoreBoard) Add(delta int, take time.Duration)

func (*ScoreBoard) String added in v0.3.2

func (this *ScoreBoard) String() string

type SecurityFeature added in v0.2.0

type SecurityFeature struct {
	Date           string  `json:"Date" array:"0" name:"日期" dataframe:"date,string"`
	Open           float64 `json:"Open" array:"1" name:"开盘" dataframe:"open,float64"`
	Close          float64 `json:"Close" array:"2" name:"收盘" dataframe:"close,float64"`
	High           float64 `json:"High" array:"3" name:"最高" dataframe:"high,float64"`
	Low            float64 `json:"Low" array:"4" name:"最低" dataframe:"low,float64"`
	Volume         int64   `json:"Volume" array:"5" name:"成交量" dataframe:"volume,int64"`
	Amount         float64 `json:"Amount" array:"6" name:"成交额" dataframe:"amount,float64"`
	Up             int     `json:"Up" array:"7" name:"上涨家数" dataframe:"up,int64"`
	Down           int     `json:"Down" array:"8" name:"下跌家数" dataframe:"down,int64"`
	LastClose      float64 `json:"LastClose" array:"9" name:"昨收" dataframe:"last_close,float64"`
	ChangeRate     float64 `json:"ChangeRate" array:"10" name:"涨跌幅" dataframe:"change_rate,float64"`
	OpenVolume     int64   `json:"OpenVolume" array:"11" name:"开盘量" dataframe:"open_volume,int64"`
	OpenTurnZ      float64 `json:"OpenTurnZ" array:"12" name:"开盘换手z" dataframe:"open_turnz,float64"`
	OpenUnmatched  int64   `json:"OpenUnmatched" array:"13" name:"开盘未匹配" dataframe:"open_unmatched,int64"`
	CloseVolume    int64   `json:"CloseVolume" array:"14" name:"收盘量" dataframe:"close_volume,int64"`
	CloseTurnZ     float64 `json:"CloseTurnZ" array:"15" name:"收盘换手z" dataframe:"close_turnz,float64"`
	CloseUnmatched int64   `json:"CloseUnmatched" array:"16" name:"收盘未匹配" dataframe:"close_unmatched,int64"`
	InnerVolume    int64   `json:"InnerVolume" array:"17" name:"内盘" dataframe:"inner_volume,int64"`
	OuterVolume    int64   `json:"OuterVolume" array:"18" name:"外盘" dataframe:"outer_volume,int64"`
	InnerAmount    float64 `json:"InnerAmount" array:"19" name:"流出金额" dataframe:"inner_amount,float64"`
	OuterAmount    float64 `json:"OuterAmount" array:"20" name:"流入金额" dataframe:"outer_amount,float64"`
}

SecurityFeature 证券特征信息

type Swift added in v0.3.2

type Swift interface {
}

Swift 快速接口

securityCode 证券代码, 2位交易所缩写+6位数字代码, 例如sh600600, 代表上海市场的青岛啤酒
cacheDate 缓存日期
featureDate 特征数据的日期

type TurnoverDataSummary added in v0.2.0

type TurnoverDataSummary struct {
	OpenVolume     int64   `json:"OpenVolume" array:"0" name:"开盘量" dataframe:"open_volume,int64"`
	OpenTurnZ      float64 `json:"OpenTurnZ" array:"1" name:"开盘换手z" dataframe:"open_turnz,float64"`
	OpenUnmatched  int64   `json:"OpenUnmatched" array:"2" name:"开盘未匹配" dataframe:"open_unmatched,int64"`
	CloseVolume    int64   `json:"CloseVolume" array:"3" name:"收盘量" dataframe:"close_volume,int64"`
	CloseTurnZ     float64 `json:"CloseTurnZ" array:"4" name:"收盘换手z" dataframe:"close_turnz,float64"`
	CloseUnmatched int64   `json:"CloseUnmatched" array:"5" name:"收盘未匹配" dataframe:"close_unmatched,int64"`
	InnerVolume    int64   `json:"InnerVolume" array:"6" name:"内盘" dataframe:"inner_volume,int64"`
	OuterVolume    int64   `json:"OuterVolume" array:"7" name:"外盘" dataframe:"outer_volume,int64"`
	InnerAmount    float64 `json:"InnerAmount" array:"8" name:"流出金额" dataframe:"inner_amount,float64"`
	OuterAmount    float64 `json:"OuterAmount" array:"9" name:"流入金额" dataframe:"outer_amount,float64"`
}

TurnoverDataSummary 换手数据概要

type Validator added in v0.3.4

type Validator interface {
	// Check 数据校验
	Check(featureDate string) error
}

Validator 验证接口

Jump to

Keyboard shortcuts

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