Documentation ¶
Index ¶
- Constants
- Variables
- func CrontabConfig() map[string]JobParameter
- func GetConfigFilename() string
- func PprofEnable() bool
- func QmtStrategyNameFromId(strategyCode uint64) string
- func StartPprof()
- type BackTestingParameter
- type DataParameter
- type FeatureF10
- type FeatureParameter
- type FeatureWave
- type FeatureWaveFields
- type HistoricalTradingDataParameter
- type JobParameter
- type NumberRange
- func (this NumberRange) MarshalText() (text []byte, err error)
- func (this *NumberRange) Max() float64
- func (this *NumberRange) Min() float64
- func (this *NumberRange) Parse(text string) error
- func (this NumberRange) String() string
- func (this *NumberRange) UnmarshalText(bytes []byte) error
- func (this *NumberRange) UnmarshalYAML(node *yaml.Node) error
- func (this *NumberRange) Validate(v float64) bool
- type PprofParameter
- type Quant1XConfig
- type RuleParameter
- type RuntimeParameter
- type SnapshotParameter
- type StrategyParameter
- func (this *StrategyParameter) BuyEnable() bool
- func (this *StrategyParameter) Enable() bool
- func (this *StrategyParameter) Filter(codes []string) []string
- func (this *StrategyParameter) IsCookieCutterForSell() bool
- func (this *StrategyParameter) NumberOfTargets() int
- func (this *StrategyParameter) QmtStrategyName() string
- func (this *StrategyParameter) SellEnable() bool
- func (this *StrategyParameter) StockList() []string
- type TimeRange
- type TraderParameter
- type TraderRole
- type TradingSession
- func (this *TradingSession) CanStopLoss(timestamp ...string) bool
- func (this *TradingSession) CanTakeProfit(timestamp ...string) bool
- func (this *TradingSession) Index(timestamp ...string) int
- func (this *TradingSession) IsTodayLastSession(timestamp ...string) bool
- func (this *TradingSession) IsTrading(timestamp ...string) bool
- func (this TradingSession) MarshalText() (text []byte, err error)
- func (this *TradingSession) Parse(text string) error
- func (this *TradingSession) Size() int
- func (this TradingSession) String() string
- func (this *TradingSession) UnmarshalText(text []byte) error
- func (this *TradingSession) UnmarshalYAML(node *yaml.Node) error
- type ValueRange
- type ValueType
Constants ¶
const ( TenThousand = 1e4 // 万 Million = 100 * TenThousand // 百万 Billion = 100 * Million // 1亿 )
const (
DefaultMinimumConcurrencyForSnapshots = 2 // 快照默认最小并发数
)
const (
// ResourcesPath 资源路径
ResourcesPath = "resources"
)
Variables ¶
var (
ErrRangeFormat = exception.New(errnoConfig+0, "数值范围格式错误")
)
错误信息
var (
ErrTimeFormat = exception.New(errnoConfig+1, "时间格式错误")
)
Functions ¶
func CrontabConfig ¶ added in v0.7.7
func CrontabConfig() map[string]JobParameter
CrontabConfig 获取定时任务配置
func QmtStrategyNameFromId ¶ added in v0.7.9
QmtStrategyNameFromId 通过策略ID返回用于在QMT系统中表示的string类型的策略名称
Types ¶
type BackTestingParameter ¶ added in v1.7.8
type BackTestingParameter struct { TargetIndex string `name:"参考指数" yaml:"target_index" default:"sh000001"` // 阿尔法和贝塔的参考指数, 默认是上证指数 NextPremiumRate float64 `name:"隔日溢价率" yaml:"next_premium_rate" default:"0.03"` // 隔日溢价率百分比 }
BackTestingParameter 回测参数
type DataParameter ¶ added in v1.1.8
type DataParameter struct { BackTesting BackTestingParameter `name:"回测" yaml:"backtesting"` // 回测参数 Trans HistoricalTradingDataParameter `name:"历史成交数据" yaml:"trans"` // 历史成交参数 Feature FeatureParameter `name:"特征" yaml:"feature"` // 特征参数 Snapshot SnapshotParameter `name:"快照" yaml:"snapshot"` // 快照参数 }
DataParameter 数据源参数
type FeatureF10 ¶ added in v1.7.2
type FeatureF10 struct {
ReportingRiskPeriod int `name:"财报预警周期" yaml:"reporting_risk_period" default:"3"` // 预警距离财务报告日期还有多少个交易日, 默认3个交易日
}
FeatureF10 F10特征数据参数
type FeatureParameter ¶ added in v1.6.9
type FeatureParameter struct { F10 FeatureF10 `name:"F10" yaml:"f10"` // F10的参数 Tendency int `name:"趋势类型" yaml:"tendency" default:"0"` // 策略是趋势主导还是股价主导, 默认是0, 0-股价主导,1-趋势主导,2-股价或趋势 Wave FeatureWave `name:"波浪" yaml:"wave"` // 波浪 CrossStarRatio float64 `name:"十字星实体占比" yaml:"cross_star_ratio" default:"0.50"` // 判断十字星, K线实体(OPEN-CLOSE)在K线长度(HIGH-LOW)中的占比 }
FeatureParameter 特征参数
type FeatureWave ¶ added in v1.7.0
type FeatureWave struct { Fields FeatureWaveFields `name:"波浪检测字段" yaml:"fields"` // K线检测字段 Periods int `name:"周期数" yaml:"periods" default:"89"` // 波浪检测K线周期数, 默认89天 ReferencePeriods int `name:"均线参照周期" yaml:"reference_periods" default:"5"` // 趋势转变参考均线的周期数, 默认是5日均线 }
FeatureWave 特征 - 波浪
type FeatureWaveFields ¶ added in v1.7.1
type FeatureWaveFields struct { Peak string `yaml:"peak" default:"close"` // K线检测 - 波峰字段, 默认是收盘价 Valley string `yaml:"valley" default:"close"` // K线检测 - 波谷字段, 默认是收盘价 }
FeatureWaveFields 波浪的数据字段
type HistoricalTradingDataParameter ¶ added in v1.1.8
type HistoricalTradingDataParameter struct {
BeginDate string `name:"默认开始日期" yaml:"begin_date" default:"2023-10-01"`
}
HistoricalTradingDataParameter 历史成交数据参数
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 NumberRange ¶ added in v0.9.1
type NumberRange struct {
// contains filtered or unexported fields
}
NumberRange 数值范围
支持: 1) "1~2", 最小值1, 最大值2 2) "", 最小值默认, 最大值默认 3) "3.82", 最小值, 最大值默认 4) "3.82~", 最小值, 最大值默认 5) "~3.82", 最小值默认, 最大值
func (NumberRange) MarshalText ¶ added in v1.0.0
func (this NumberRange) MarshalText() (text []byte, err error)
func (*NumberRange) Max ¶ added in v1.0.0
func (this *NumberRange) Max() float64
func (*NumberRange) Min ¶ added in v1.0.0
func (this *NumberRange) Min() float64
func (*NumberRange) Parse ¶ added in v0.9.1
func (this *NumberRange) Parse(text string) error
func (NumberRange) String ¶ added in v0.9.1
func (this NumberRange) String() string
func (*NumberRange) UnmarshalText ¶ added in v0.9.1
func (this *NumberRange) UnmarshalText(bytes []byte) error
UnmarshalText 设置默认值调用
func (*NumberRange) UnmarshalYAML ¶ added in v0.9.1
func (this *NumberRange) UnmarshalYAML(node *yaml.Node) error
UnmarshalYAML YAML自定义解析
func (*NumberRange) Validate ¶ added in v0.9.1
func (this *NumberRange) Validate(v float64) bool
Validate 验证
type PprofParameter ¶
type Quant1XConfig ¶
type Quant1XConfig struct { BaseDir string `yaml:"basedir"` // 基础路径 Data DataParameter `yaml:"data"` // 数据源 Runtime RuntimeParameter `yaml:"runtime"` // 运行时参数 Trader TraderParameter `yaml:"trader"` // 预览交易参数 }
Quant1XConfig Quant1X基础配置
var ( // GlobalConfig engine配置信息 GlobalConfig Quant1XConfig )
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 IgnoreRuleGroup []int `yaml:"ignore_rule_group"` // 忽略规则组合 IgnoreCodes []string `yaml:"ignore_codes" default:"[\"sh68\",\"bj\"]"` // 忽略的证券代码段, 默认忽略科创板和北交所全部 MaximumIncreaseWithin5days float64 `yaml:"maximum_increase_within_5d" default:"20.00"` // 20.00 5日累计最大涨幅 MaximumIncreaseWithin10days float64 `yaml:"maximum_increase_within_10d" default:"70.00"` // 70.00 10日累计最大涨幅 MaxReduceAmount float64 `yaml:"max_reduce_amount" default:"-1000"` // -1000 最大流出1000万 SafetyScore NumberRange `yaml:"safety_score" default:"80~"` // 80 通达信安全分最小值 VolumeRatio NumberRange `yaml:"volume_ratio" default:"0.382~2.800"` // 1.800 成交量放大不能超过1.8 Capital NumberRange `yaml:"capital" default:"0.5~20"` // 流通股本, 默认0.5亿~20亿 MarketCap NumberRange `yaml:"market_cap" default:"4~600"` // 流通市值, 默认4亿~600亿 Price NumberRange `yaml:"price" default:"2~"` // 股价: 4.9E-324~1.7976931348623157e+308 OpenChangeRate NumberRange `yaml:"open_change_rate" default:""` // 开盘涨幅, 默认不限制 OpenQuantityRatio NumberRange `yaml:"open_quantity_ratio" default:""` // 开盘量比, 默认不限制 OpenTurnZ NumberRange `yaml:"open_turn_z" default:""` // 开盘换手, 默认不限制 ChangeRate NumberRange `yaml:"change_rate" default:""` // 盘中策略涨幅范围, 默认不限制 Vix NumberRange `yaml:"vix" default:""` // 波动率, 默认不限制 TurnoverRate NumberRange `yaml:"turnover_rate" default:""` // 换手率范围, 默认不限制 AmplitudeRatio NumberRange `yaml:"amplitude_ratio" default:""` // 振幅范围, 默认不限制 BiddingVolume NumberRange `yaml:"bidding_volume" default:""` // 5档行情委托平均值范围, 默认不限制 Sentiment NumberRange `yaml:"sentiment" default:"38.2~61.80"` // 情绪范围 GapDown bool `yaml:"gap_down" default:"true"` // 买入是否允许跳空低开, 默认是允许 CheckEPS bool `yaml:"check_eps" default:"false"` // 是否检测每股收益, 默认不检测 CheckBPS bool `yaml:"check_bps" default:"false"` // 是否检测每股净资产, 默认不检测 CheckSafetyScore bool `yaml:"check_safety_score" default:"false"` // 是否检测安全分 FinancingBalanceRatio float64 `yaml:"financing_balance_ratio" default:"10"` // 融资余额占比阀值, 过滤超过阀值的标的 }
RuleParameter 规则参数
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 SnapshotParameter ¶ added in v1.8.6
type SnapshotParameter struct {
Concurrency int `name:"并发数" yaml:"concurrency" default:"0"` // 并发数, 默认是0, 使用服务器数量的半数
}
SnapshotParameter 快照参数
type StrategyParameter ¶ added in v1.0.1
type StrategyParameter struct { Id uint64 `name:"策略编码" yaml:"id" default:"1"` // 策略ID, 默认是1 Auto bool `name:"是否自动执行" yaml:"auto" default:"false"` // 是否自动执行 Name string `name:"策略名称" yaml:"name"` // 策略名称 Flag string `name:"订单标识" yaml:"flag"` // 订单标识,分早盘,尾盘和盘中 Session TradingSession `name:"时间范围" yaml:"time" default:"09:30:00~11:30:00,13:00:00~14:56:30"` // 可操作的交易时段 Weight float64 `name:"持仓占比" yaml:"weight" default:"0"` // 策略权重, 默认0, 由系统自动分配 Total int `name:"订单数上限" yaml:"total" default:"3"` // 订单总数, 默认是3 PriceCageRatio float64 `name:"价格笼子比例" yaml:"price_cage_ratio" default:"0.00"` // 价格笼子比例, 默认0% MinimumPriceFluctuationUnit float64 `name:"价格变动最小单位" yaml:"minimum_price_fluctuation_unit" default:"0.05"` // 价格最小变动单位, 默认0.05 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 uint64 `name:"卖出策略" yaml:"sell_strategy" default:"117"` // 卖出策略, 默认117 FixedYield float64 `name:"固定收益率" yaml:"fixed_yield" default:"0"` // 固定收益率, 只能和卖出策略绑定 TakeProfitRatio float64 `name:"止盈比例" yaml:"take_profit_ratio" default:"15.00"` // 止盈比例, 默认15% StopLossRatio float64 `name:"止损比例" yaml:"stop_loss_ratio" default:"-2.00"` // 止损比例, 默认-2% Rules RuleParameter `name:"规则参数" yaml:"rules"` // 过滤规则 // contains filtered or unexported fields }
StrategyParameter 策略参数
func GetStrategyParameterByCode ¶ added in v1.0.1
func GetStrategyParameterByCode(strategyCode uint64) *StrategyParameter
GetStrategyParameterByCode 通过策略编码查找规则
func (*StrategyParameter) BuyEnable ¶ added in v1.0.1
func (this *StrategyParameter) BuyEnable() bool
BuyEnable 获取可买入状态
func (*StrategyParameter) Enable ¶ added in v1.0.1
func (this *StrategyParameter) Enable() bool
Enable 策略是否有效
func (*StrategyParameter) Filter ¶ added in v1.0.1
func (this *StrategyParameter) Filter(codes []string) []string
func (*StrategyParameter) IsCookieCutterForSell ¶ added in v1.0.1
func (this *StrategyParameter) IsCookieCutterForSell() bool
IsCookieCutterForSell 是否一刀切卖出
func (*StrategyParameter) NumberOfTargets ¶ added in v1.0.1
func (this *StrategyParameter) NumberOfTargets() int
NumberOfTargets 获得可买入标的总数
func (*StrategyParameter) QmtStrategyName ¶ added in v1.0.1
func (this *StrategyParameter) QmtStrategyName() string
func (*StrategyParameter) SellEnable ¶ added in v1.0.1
func (this *StrategyParameter) SellEnable() bool
SellEnable 获取可卖出状态
func (*StrategyParameter) StockList ¶ added in v1.0.1
func (this *StrategyParameter) StockList() []string
StockList 取得可以交易的证券代码列表
type TraderParameter ¶ added in v0.7.6
type TraderParameter struct { AccountId string `name:"账号ID" yaml:"account_id" dataframe:"888xxxxxxx"` // 账号ID OrderPath string `name:"订单路径" yaml:"order_path"` // 订单路径 TopN int `name:"TopN" yaml:"top_n" default:"3"` // 最多输出前多少名个股 HaveETF bool `name:"是否包含ETF" yaml:"have_etf" default:"false"` // 是否包含ETF PriceCageRatio float64 `name:"价格笼子比例" yaml:"price_cage_ratio" default:"0.02"` // 价格笼子比例, 默认2%, 小于0就是无限制 MinimumPriceFluctuationUnit float64 `name:"价格变动最小单位" yaml:"minimum_price_fluctuation_unit" default:"0.10"` // 价格最小变动单位, 默认0.10 AnnualInterestRate float64 `name:"年利率" yaml:"annual_interest_rate" default:"1.65"` // 2024年2月18日建设银行1年期存款利率1.65% 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 []StrategyParameter `name:"策略集合" yaml:"strategies"` // 策略集合 CancelSession TradingSession `name:"撤单时段" yaml:"cancel" default:"09:15:00~09:19:59,09:25:00~11:29:59,13:00:00~14:59:59"` // 可撤单配置 UndertakeRatio float64 `name:"承接比" yaml:"undertake_ratio" default:"0.8000"` }
TraderParameter 预览交易通道参数
func (TraderParameter) DailyRiskFreeRate ¶ added in v1.7.8
func (t TraderParameter) DailyRiskFreeRate(date string) float64
DailyRiskFreeRate 计算每日无风险利率
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 (*TradingSession) CanStopLoss ¶ added in v0.9.0
func (this *TradingSession) CanStopLoss(timestamp ...string) bool
CanStopLoss 当前时段是否可以进行止损操作
如果是3个时段, 止损操作在第2时段, 如果是4个时段, 止损在第3个 如果是2个时段, 则是第2个时段, 也就是最后一个时段
func (*TradingSession) CanTakeProfit ¶ added in v0.9.0
func (this *TradingSession) CanTakeProfit(timestamp ...string) bool
CanTakeProfit 当前时段是否可以止盈
func (*TradingSession) Index ¶ added in v0.7.9
func (this *TradingSession) Index(timestamp ...string) int
Index 判断timestamp是第几个交易时段
func (*TradingSession) IsTodayLastSession ¶ added in v0.7.9
func (this *TradingSession) IsTodayLastSession(timestamp ...string) bool
IsTodayLastSession 当前时段是否今天最后一个交易时段
备选函数名 IsTodayFinalSession
func (*TradingSession) IsTrading ¶
func (this *TradingSession) IsTrading(timestamp ...string) bool
IsTrading 是否交易时段
func (TradingSession) MarshalText ¶ added in v1.0.0
func (this TradingSession) MarshalText() (text []byte, err error)
func (*TradingSession) Parse ¶ added in v0.9.1
func (this *TradingSession) Parse(text string) error
func (TradingSession) String ¶
func (this TradingSession) String() string
func (*TradingSession) UnmarshalText ¶ added in v0.9.1
func (this *TradingSession) UnmarshalText(text []byte) error
UnmarshalText 设置默认值调用
func (*TradingSession) UnmarshalYAML ¶ added in v0.9.1
func (this *TradingSession) UnmarshalYAML(node *yaml.Node) error
UnmarshalYAML YAML自定义解析
type ValueRange ¶
type ValueRange[T ValueType] struct { // contains filtered or unexported fields }
ValueRange 数值范围
func ParseRange ¶
func ParseRange[T ValueType](text string) ValueRange[T]