config

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Dec 15, 2023 License: Apache-2.0 Imports: 19 Imported by: 1

Documentation

Index

Constants

View Source
const (
	// ResourcesPath 资源路径
	ResourcesPath = "resources"
)

Variables

View Source
var (
	ErrTimeFormat = exception.New(errnoConfig+1, "时间格式错误")
)

Functions

func CrontabConfig added in v0.7.7

func CrontabConfig() map[string]JobParameter

CrontabConfig 获取定时任务配置

func GetConfigFilename

func GetConfigFilename() string

GetConfigFilename 获取配置文件路径

func QmtStrategyNameFromId added in v0.7.9

func QmtStrategyNameFromId(strategyCode int) string

QmtStrategyNameFromId 通过策略ID返回用于在QMT系统中表示的string类型的策略名称

func StartPprof

func StartPprof()

StartPprof 启动性能分析工具

Types

type JobParameter added in v0.7.7

type JobParameter struct {
	Name    string `yaml:"name" default:""`       // 任务名称
	Trigger string `yaml:"trigger"  default:""`   // 触发条件
	Enable  bool   `yaml:"enable" default:"true"` // 任务是否有效
}

JobParameter 定时任务配置

func GetJobParameter added in v0.7.7

func GetJobParameter(name string) *JobParameter

GetJobParameter 获取计划执行任务

type OrderParameter

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 订单参数

func OrderConfig added in v0.7.6

func OrderConfig() OrderParameter

OrderConfig 获取订单配置

type PprofParameter

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

type Quant1XConfig

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

Quant1XConfig Quant1X基础配置

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

func LoadConfig

func LoadConfig() (config Quant1XConfig, found bool)

LoadConfig 加载配置文件

func ReadConfig

func ReadConfig(rootPath string) (config Quant1XConfig)

ReadConfig 读取配置文件

type RuleParameter

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
	IgnoreCodes                 []string `yaml:"ignore_codes" default:"[\"sh68\",\"bj\"]"`        // 忽略的证券代码段, 默认忽略科创板和北交所全部
	CapitalMin                  float64  `yaml:"capital_min" default:"2"`                         // 2 * 亿 流通股本最小值
	CapitalMax                  float64  `yaml:"capital_max" default:"20"`                        // 20 * 亿 流通股本最大值
	MarketCapMin                float64  `yaml:"market_cap_min" default:"0.5"`                    // 流通市值-最小
	MarketCapMax                float64  `yaml:"market_cap_max" default:"100"`                    // 流通市值-最大
	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
	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 规则参数

func RuleConfig added in v0.7.6

func RuleConfig() RuleParameter

RuleConfig 获取交易配置

type RuntimeParameter

type RuntimeParameter struct {
	Pprof   PprofParameter          `name:"性能分析" yaml:"pprof"`
	Debug   bool                    `name:"业务调试开关" yaml:"debug" default:"false"`
	Crontab map[string]JobParameter `name:"定时任务" yaml:"crontab" default:"{}"`
}

RuntimeParameter 运行时配置参数

type TimeRange

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

TimeRange 时间范围

func ParseTimeRange

func ParseTimeRange(text string) TimeRange

func (TimeRange) IsTrading

func (r TimeRange) IsTrading(timestamp ...string) bool

func (TimeRange) String

func (r TimeRange) String() string

type TradeRule

type TradeRule struct {
	Id                  int            `name:"策略编码" yaml:"id" default:"-1"`                                    // 策略ID, -1无效
	Auto                bool           `name:"是否自动执行" yaml:"auto" default:"false"`                             // 是否自动执行
	Name                string         `name:"策略名称" yaml:"name"`                                               // 策略名称
	Flag                string         `name:"订单标识" yaml:"flag"`                                               // 订单标识,分早盘,尾盘和盘中
	Time                string         `name:"时间范围" yaml:"time" default:"09:30:00~11:30:00,13:00:00~14:56:30"` // 预览-执行操作的时间段
	Session             TradingSession `name:"交易时段" yaml:"-"`                                                  // 可操作的交易时段
	Weight              float64        `name:"持仓占比" yaml:"weight" default:"0"`                                 // 策略权重, 默认0, 由系统自动分配
	Total               int            `name:"订单数上限" yaml:"total" default:"3"`                                 // 订单总数, 默认是3
	FeeMax              float64        `name:"最大费用" yaml:"fee_max" default:"20000.00"`                         // 可投入资金-最大
	FeeMin              float64        `name:"最小费用" yaml:"fee_min" default:"10000.00"`                         // 可投入资金-最小
	Sectors             []string       `name:"板块" yaml:"sectors" default:""`                                   // 板块, 策略适用的板块列表, 默认板块为空, 即全部个股
	IgnoreMarginTrading bool           `name:"剔除两融" yaml:"ignore_margin_trading" default:"true"`               // 剔除两融标的, 默认是剔除
	HoldingPeriod       int            `name:"持仓周期" yaml:"holding_period" default:"1"`                         // 持仓周期, 默认为1天, 即T+1日触发117号策略
	SellStrategy        int            `name:"卖出策略" yaml:"sell_strategy" default:"117"`                        // 卖出策略, 默认117
}

TradeRule 交易规则

func GetTradeRule added in v0.7.7

func GetTradeRule(code int) *TradeRule

GetTradeRule 通过策略编码查找规则

func (*TradeRule) BuyEnable added in v0.7.7

func (t *TradeRule) BuyEnable() bool

BuyEnable 获取可买入状态

func (*TradeRule) Enable added in v0.7.7

func (t *TradeRule) Enable() bool

Enable 策略是否有效

func (*TradeRule) IsCookieCutterForSell added in v0.7.7

func (t *TradeRule) IsCookieCutterForSell() bool

IsCookieCutterForSell 是否一刀切卖出

func (*TradeRule) NumberOfTargets added in v0.7.7

func (t *TradeRule) NumberOfTargets() int

NumberOfTargets 获得可买入标的总数

func (*TradeRule) QmtStrategyName added in v0.7.9

func (t *TradeRule) QmtStrategyName() string

func (*TradeRule) SellEnable added in v0.7.7

func (t *TradeRule) SellEnable() bool

SellEnable 获取可卖出状态

func (*TradeRule) StockList added in v0.7.7

func (t *TradeRule) StockList() []string

type TraderParameter added in v0.7.6

type TraderParameter struct {
	AccountId            string         `name:"账号ID" yaml:"account_id" dataframe:"888xxxxxxx"`                                        // 账号ID
	StampDutyRateForBuy  float64        `name:"买入印花税" yaml:"stamp_duty_rate_for_buy" default:"0.0000"`                                // 印花说-买入, 没有
	StampDutyRateForSell float64        `name:"卖出印花税" yaml:"stamp_duty_rate_for_sell" default:"0.0010"`                               // 印花说-卖出, 默认是千分之1
	TransferRate         float64        `name:"过户费" yaml:"transfer_rate" default:"0.0006"`                                            // 过户费, 双向, 默认是万分之6
	CommissionRate       float64        `name:"佣金率" yaml:"commission_rate" default:"0.00025"`                                         // 券商佣金, 双向, 默认万分之2.5
	CommissionMin        float64        `name:"佣金最低" yaml:"commission_min" default:"5.0000"`                                          // 券商佣金最低, 双向, 默认5.00
	PositionRatio        float64        `name:"持仓占比" yaml:"position_ratio" default:"0.5000"`                                          // 当日持仓占比, 默认50%
	KeepCash             float64        `name:"保留现金" yaml:"keep_cash" default:"10000.00"`                                             // 保留现金, 默认10000.00
	BuyAmountMax         float64        `name:"可买最大金额" yaml:"buy_amount_max" default:"250000.00"`                                     // 买入最大金额, 默认250000.00
	BuyAmountMin         float64        `name:"可买最小金额" yaml:"buy_amount_min" default:"1000.00"`                                       // 买入最小金额, 默认1000.00
	Role                 TraderRole     `name:"角色" yaml:"role" default:"3"`                                                           // 交易员角色, 默认是需要人工干预, 系统不做自动交易处理
	ProxyUrl             string         `name:"代理URL" yaml:"proxy_url" default:"http://127.0.0.1:18168/qmt"`                          // 禁止使用公网地址
	Strategies           []TradeRule    `name:"策略集合" yaml:"strategies"`                                                               // 策略集合
	ReservedOfCancel     string         `name:"撤单保留字段" yaml:"cancel" default:"09:15:00~09:19:59,09:25:00~11:29:59,13:00:00~14:59:59"` // 预览-可撤单配置
	CancelSession        TradingSession `name:"撤单时段" yaml:"-" default:""`                                                             // 可撤单配置

}

TraderParameter 预览交易通道参数

func TraderConfig added in v0.7.6

func TraderConfig() TraderParameter

TraderConfig 获取交易配置

func (TraderParameter) ResetPositionRatio added in v0.7.7

func (t TraderParameter) ResetPositionRatio()

ResetPositionRatio 重置仓位占比

func (TraderParameter) TotalNumberOfTargets added in v0.7.7

func (t TraderParameter) TotalNumberOfTargets() int

TotalNumberOfTargets 统计标的总数

type TraderRole added in v0.7.7

type TraderRole int

TraderRole 交易员角色

const (
	RoleDisable TraderRole = iota // 禁止自动化交易
	RolePython                    // python脚本自动化交易
	RoleProxy                     // 代理交易模式
	RoleManual                    // 人工干预, 作用同
)

type TradingSession

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

TradingSession 交易时段

func ParseTradingSession

func ParseTradingSession(text string) TradingSession

func (TradingSession) Index added in v0.7.9

func (s TradingSession) Index(timestamp ...string) int

Index 判断timestamp是第几个交易时段

func (TradingSession) IsTodayLastSession added in v0.7.9

func (s TradingSession) IsTodayLastSession(timestamp ...string) bool

IsTodayLastSession 当前时段是否今天最后一个交易时段

备选函数名 IsTodayFinalSession

func (TradingSession) IsTrading

func (s TradingSession) IsTrading(timestamp ...string) bool

IsTrading 是否交易时段

func (TradingSession) Size added in v0.7.9

func (s TradingSession) Size() int

Size 获取时段总数

func (TradingSession) String

func (s TradingSession) String() string

type ValueRange

type ValueRange[T ValueType] struct {
	// contains filtered or unexported fields
}

ValueRange 数值范围

func ParseRange

func ParseRange[T ValueType](text string) ValueRange[T]

func (ValueRange[T]) In

func (r ValueRange[T]) In(v T) bool

In 检查是否包含在范围内

type ValueType

type ValueType interface {
	~int | ~float64 | ~string
}

Jump to

Keyboard shortcuts

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