deving
This commit is contained in:
@@ -31,6 +31,14 @@ func main() {
|
||||
config.New(ServiceKey)
|
||||
impl.NewImpl()
|
||||
|
||||
strategy.GenMarkData("601899.SH")
|
||||
}
|
||||
|
||||
func main2() {
|
||||
log.Println("Hello Cli!")
|
||||
config.New(ServiceKey)
|
||||
impl.NewImpl()
|
||||
|
||||
data_ok := []*ResultData{}
|
||||
data_not := []*ResultData{}
|
||||
for _, code := range strategy.GetStocks() {
|
||||
|
||||
1
go.mod
1
go.mod
@@ -71,6 +71,7 @@ require (
|
||||
github.com/redis/go-redis/v9 v9.14.0 // indirect
|
||||
github.com/twitchyliquid64/golang-asm v0.15.1 // indirect
|
||||
github.com/ugorji/go/codec v1.3.0 // indirect
|
||||
github.com/yuin/goldmark v1.7.16
|
||||
golang.org/x/arch v0.21.0 // indirect
|
||||
golang.org/x/crypto v0.42.0 // indirect
|
||||
golang.org/x/net v0.44.0 // indirect
|
||||
|
||||
2
go.sum
2
go.sum
@@ -143,6 +143,8 @@ github.com/ugorji/go/codec v1.3.0 h1:Qd2W2sQawAfG8XSvzwhBeoGq71zXOC/Q1E9y/wUcsUA
|
||||
github.com/ugorji/go/codec v1.3.0/go.mod h1:pRBVtBSKl77K30Bv8R2P+cLSGaTtex6fsA2Wjqmfxj4=
|
||||
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
|
||||
github.com/yuin/goldmark v1.7.16 h1:n+CJdUxaFMiDUNnWC3dMWCIQJSkxH4uz3ZwQBkAlVNE=
|
||||
github.com/yuin/goldmark v1.7.16/go.mod h1:ip/1k0VRfGynBgxOz0yCqHrbZXhcjxyuS66Brc7iBKg=
|
||||
go.etcd.io/etcd/api/v3 v3.6.5 h1:pMMc42276sgR1j1raO/Qv3QI9Af/AuyQUW6CBAWuntA=
|
||||
go.etcd.io/etcd/api/v3 v3.6.5/go.mod h1:ob0/oWA/UQQlT1BmaEkWQzI0sJ1M0Et0mMpaABxguOQ=
|
||||
go.etcd.io/etcd/client/pkg/v3 v3.6.5 h1:Duz9fAzIZFhYWgRjp/FgNq2gO1jId9Yae/rLn3RrBP8=
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
package strategy
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"git.apinb.com/bsm-sdk/core/utils"
|
||||
"git.apinb.com/quant/gostock/internal/impl"
|
||||
"git.apinb.com/quant/gostock/internal/models"
|
||||
)
|
||||
@@ -21,6 +24,462 @@ func GetFullData(code string) *StockData {
|
||||
return &data
|
||||
}
|
||||
|
||||
func GenMarkData(code string) {
|
||||
md := NewMarkdownBuilder()
|
||||
|
||||
var basic models.StockBasic
|
||||
impl.DBService.Where("ts_code = ?", code).First(&basic)
|
||||
|
||||
md.Title(basic.TsCode + " " + basic.Name + " 股票详情")
|
||||
md.Catalog("公司基础情况")
|
||||
md.KvText("股票代码", basic.TsCode)
|
||||
md.KvText("股票名称", basic.Name)
|
||||
md.KvText("股票行业", basic.Industry)
|
||||
md.KvText("股票地域", basic.Area)
|
||||
md.KvText("上市日期", basic.ListDate)
|
||||
md.KvText("股票市场", basic.Market)
|
||||
md.KvText("股票类型", basic.Market)
|
||||
md.KvText("股票是否沪深港通", basic.IsHS)
|
||||
md.KvText("股票中文全称", basic.FullName)
|
||||
md.KvText("股票实控人", basic.ActName)
|
||||
md.KvText("股票实控人企业性质", basic.ActEntType)
|
||||
md.BR()
|
||||
|
||||
var daily []models.StockDaily
|
||||
impl.DBService.Where("ts_code = ?", code).Order("trade_date desc").Limit(200).Find(&daily)
|
||||
var data [][]string
|
||||
for _, row := range daily {
|
||||
data = append(data, []string{
|
||||
utils.Int2String(row.TradeDate),
|
||||
fmt.Sprintf("%.2f", row.Open),
|
||||
fmt.Sprintf("%.2f", row.Close),
|
||||
fmt.Sprintf("%.2f", row.High),
|
||||
fmt.Sprintf("%.2f", row.Low),
|
||||
fmt.Sprintf("%.2f", row.Vol),
|
||||
fmt.Sprintf("%.2f", row.Amount),
|
||||
})
|
||||
}
|
||||
md.Table("最近200天股票行情", []string{"日期", "开盘价", "收盘价", "最高价", "最低价", "成交量", "成交额"}, data)
|
||||
md.BR()
|
||||
|
||||
var indicator []models.StockIndicator
|
||||
impl.DBService.Where("ts_code = ?", code).Order("trade_date desc").Limit(200).Find(&indicator)
|
||||
var indiData [][]string
|
||||
for _, row := range indicator {
|
||||
indiData = append(indiData, []string{
|
||||
utils.Int2String(row.TradeDate),
|
||||
fmt.Sprintf("%.2f", row.Close),
|
||||
fmt.Sprintf("%.2f%%", row.TurnoverRate),
|
||||
fmt.Sprintf("%.2f", row.VolumeRatio),
|
||||
fmt.Sprintf("%.2f", row.Pe),
|
||||
fmt.Sprintf("%.2f", row.PeTtm),
|
||||
fmt.Sprintf("%.2f", row.Pb),
|
||||
fmt.Sprintf("%.2f", row.Ps),
|
||||
fmt.Sprintf("%.2f", row.PsTtm),
|
||||
fmt.Sprintf("%.2f", row.DvRatio),
|
||||
fmt.Sprintf("%.2f", row.DvTtm),
|
||||
fmt.Sprintf("%.2f", row.TotalShare),
|
||||
fmt.Sprintf("%.2f", row.FloatShare),
|
||||
fmt.Sprintf("%.2f", row.FreeShare),
|
||||
fmt.Sprintf("%.2f", row.TotalMv),
|
||||
fmt.Sprintf("%.2f", row.CircMv),
|
||||
})
|
||||
}
|
||||
md.Table("最近200天股票指标", []string{"日期", "当日收盘价", "换手率", "量比", "市盈率", "市盈率 TTM", "市净率", "市销率", "市销率 TTM", "股息率", "股息率 TTM", "总股本", "流通股本", "自由流通股本", "总市值", "流通市值"}, indiData)
|
||||
md.BR()
|
||||
|
||||
var finaIndicator []models.StockFinaIndicator
|
||||
impl.DBService.Where("ts_code = ?", code).Order("period desc").Find(&finaIndicator)
|
||||
var fiHeaders []string = []string{
|
||||
"报告期数",
|
||||
"公告日期",
|
||||
"报告期",
|
||||
|
||||
// 每股指标
|
||||
"基本每股收益",
|
||||
"稀释每股收益",
|
||||
"每股营业总收入",
|
||||
"每股营业收入",
|
||||
"每股资本公积",
|
||||
"每股盈余公积",
|
||||
"每股未分配利润",
|
||||
"期末摊薄每股收益",
|
||||
"每股净资产",
|
||||
"每股经营活动产生的现金流量净额",
|
||||
"每股留存收益",
|
||||
"每股现金流量净额",
|
||||
"每股息税前利润",
|
||||
"每股企业自由现金流量",
|
||||
"每股股东自由现金流量",
|
||||
|
||||
// 利润表相关
|
||||
"非经常性损益",
|
||||
"扣除非经常性损益后的净利润",
|
||||
"毛利",
|
||||
"经营活动净收益",
|
||||
"价值变动净收益",
|
||||
"利息费用",
|
||||
"折旧与摊销",
|
||||
"息税前利润",
|
||||
"息税折旧摊销前利润",
|
||||
"企业自由现金流量",
|
||||
"股权自由现金流量",
|
||||
"研发费用",
|
||||
"固定资产合计",
|
||||
"扣除财务费用前营业利润",
|
||||
"非营业利润",
|
||||
|
||||
// 资产负债表相关
|
||||
"无息流动负债",
|
||||
"无息非流动负债",
|
||||
"带息债务",
|
||||
"净债务",
|
||||
"有形资产",
|
||||
"营运资金",
|
||||
"营运流动资本",
|
||||
"全部投入资本",
|
||||
"留存收益",
|
||||
|
||||
// 偿债能力指标
|
||||
"流动比率",
|
||||
"速动比率",
|
||||
"保守速动比率",
|
||||
"资产负债率",
|
||||
"权益乘数",
|
||||
"权益乘数(杜邦分析)",
|
||||
"产权比率",
|
||||
"归属于母公司的股东权益/负债合计",
|
||||
"经营活动产生的现金流量净额/流动负债",
|
||||
"已获利息倍数",
|
||||
|
||||
// 运营能力指标
|
||||
"存货周转天数",
|
||||
"应收账款周转天数",
|
||||
"存货周转率",
|
||||
"应收账款周转率",
|
||||
"流动资产周转率",
|
||||
"固定资产周转率",
|
||||
"总资产周转率",
|
||||
"营业周期",
|
||||
|
||||
// 盈利能力指标
|
||||
"销售净利率",
|
||||
"销售毛利率",
|
||||
"销售成本率",
|
||||
"销售期间费用率",
|
||||
"净资产收益率",
|
||||
"加权平均净资产收益率",
|
||||
"净资产收益率(扣除非经常损益)",
|
||||
"总资产报酬率",
|
||||
"总资产净利润",
|
||||
"投入资本回报率",
|
||||
"总资产净利率(杜邦分析)",
|
||||
|
||||
// 结构指标
|
||||
"流动资产/总资产",
|
||||
"非流动资产/总资产",
|
||||
"有形资产/总资产",
|
||||
"带息债务/全部投入资本",
|
||||
"归属于母公司的股东权益/全部投入资本",
|
||||
"流动负债/负债合计",
|
||||
"非流动负债/负债合计",
|
||||
"有形资产/负债合计",
|
||||
|
||||
// 单季度指标
|
||||
"经营活动单季度净收益",
|
||||
"价值变动单季度净收益",
|
||||
"扣除非经常损益后的单季度净利润",
|
||||
"每股收益(单季度)",
|
||||
"销售净利率(单季度)",
|
||||
"销售毛利率(单季度)",
|
||||
"销售期间费用率(单季度)",
|
||||
"净资产收益率(单季度)",
|
||||
"净资产单季度收益率(扣除非经常损益)",
|
||||
"总资产净利润(单季度)",
|
||||
|
||||
// 同比增长率
|
||||
"基本每股收益同比增长率(%)",
|
||||
"稀释每股收益同比增长率(%)",
|
||||
"每股经营活动产生的现金流量净额同比增长率(%)",
|
||||
"营业利润同比增长率(%)",
|
||||
"利润总额同比增长率(%)",
|
||||
"归属母公司股东的净利润同比增长率(%)",
|
||||
"归属母公司股东的净利润-扣除非经常损益同比增长率(%)",
|
||||
"经营活动产生的现金流量净额同比增长率(%)",
|
||||
"净资产收益率(摊薄)同比增长率(%)",
|
||||
"每股净资产相对年初增长率(%)",
|
||||
"资产总计相对年初增长率(%)",
|
||||
"归属母公司的股东权益相对年初增长率(%)",
|
||||
"营业总收入同比增长率(%)",
|
||||
"营业收入同比增长率(%)",
|
||||
"净资产同比增长率",
|
||||
|
||||
// 其他比率指标
|
||||
"净利润/营业总收入",
|
||||
"销售费用/营业总收入",
|
||||
"管理费用/营业总收入",
|
||||
"财务费用/营业总收入",
|
||||
"资产减值损失/营业总收入",
|
||||
"营业总成本/营业总收入",
|
||||
"营业利润/营业总收入",
|
||||
"息税前利润/营业总收入",
|
||||
"经营活动净收益/利润总额",
|
||||
"价值变动净收益/利润总额",
|
||||
"营业外收支净额/利润总额",
|
||||
"所得税/利润总额",
|
||||
"扣除非经常损益后的净利润/净利润",
|
||||
"销售商品提供劳务收到的现金/营业收入",
|
||||
"经营活动产生的现金流量净额/营业收入",
|
||||
"经营活动产生的现金流量净额/经营活动净收益",
|
||||
"资本支出/折旧和摊销",
|
||||
"经营活动产生的现金流量净额/负债合计",
|
||||
"经营活动产生的现金流量净额/带息债务",
|
||||
"经营活动产生的现金流量净额/净债务",
|
||||
"长期债务与营运资金比率",
|
||||
"息税折旧摊销前利润/负债合计",
|
||||
"营业利润/利润总额",
|
||||
"非营业利润/利润总额",
|
||||
"经营活动产生的现金流量净额/营业利润",
|
||||
"货币资金/流动负债",
|
||||
"货币资金/带息流动负债",
|
||||
"营业利润/流动负债",
|
||||
"营业利润/负债合计",
|
||||
"利润总额/营业收入",
|
||||
|
||||
// 年度化指标
|
||||
"年化净资产收益率",
|
||||
"年化总资产报酬率",
|
||||
"年化总资产净利率",
|
||||
"年化投入资本回报率",
|
||||
"平均净资产收益率(增发条件)",
|
||||
|
||||
// 单季度增长比率
|
||||
"营业总收入同比增长率(%)(单季度)",
|
||||
"营业总收入环比增长率(%)(单季度)",
|
||||
"营业收入同比增长率(%)(单季度)",
|
||||
"营业收入环比增长率(%)(单季度)",
|
||||
"营业利润同比增长率(%)(单季度)",
|
||||
"营业利润环比增长率(%)(单季度)",
|
||||
"净利润同比增长率(%)(单季度)",
|
||||
"净利润环比增长率(%)(单季度)",
|
||||
"归属母公司股东的净利润同比增长率(%)(单季度)",
|
||||
"归属母公司股东的净利润环比增长率(%)(单季度)",
|
||||
|
||||
// 单季度比率指标
|
||||
"净利润/营业总收入(单季度)",
|
||||
"销售费用/营业总收入 (单季度)",
|
||||
"管理费用/营业总收入 (单季度)",
|
||||
"财务费用/营业总收入 (单季度)",
|
||||
"资产减值损失/营业总收入(单季度)",
|
||||
"营业总成本/营业总收入 (单季度)",
|
||||
"营业利润/营业总收入(单季度)",
|
||||
"经营活动净收益/利润总额(单季度)",
|
||||
"价值变动净收益/利润总额(单季度)",
|
||||
"扣除非经常损益后的净利润/净利润(单季度)",
|
||||
"销售商品提供劳务收到的现金/营业收入(单季度)",
|
||||
"经营活动产生的现金流量净额/营业收入(单季度)",
|
||||
"经营活动产生的现金流量净额/经营活动净收益(单季度)",
|
||||
}
|
||||
var fiData [][]string
|
||||
for _, row := range finaIndicator {
|
||||
fiData = append(fiData, []string{
|
||||
fmt.Sprintf("%d", row.Period),
|
||||
row.AnnDate,
|
||||
row.EndDate,
|
||||
|
||||
// 每股指标
|
||||
fmt.Sprintf("%.2f", row.Eps),
|
||||
fmt.Sprintf("%.2f", row.DtEps),
|
||||
fmt.Sprintf("%.2f", row.TotalRevenuePs),
|
||||
fmt.Sprintf("%.2f", row.RevenuePs),
|
||||
fmt.Sprintf("%.2f", row.CapitalResePs),
|
||||
fmt.Sprintf("%.2f", row.SurplusResePs),
|
||||
fmt.Sprintf("%.2f", row.UndistProfitPs),
|
||||
fmt.Sprintf("%.2f", row.Diluted2Eps),
|
||||
fmt.Sprintf("%.2f", row.Bps),
|
||||
fmt.Sprintf("%.2f", row.Ocfps),
|
||||
fmt.Sprintf("%.2f", row.Retainedps),
|
||||
fmt.Sprintf("%.2f", row.Cfps),
|
||||
fmt.Sprintf("%.2f", row.EbitPs),
|
||||
fmt.Sprintf("%.2f", row.FcffPs),
|
||||
fmt.Sprintf("%.2f", row.FcfePs),
|
||||
|
||||
// 利润表相关
|
||||
fmt.Sprintf("%.2f", row.ExtraItem),
|
||||
fmt.Sprintf("%.2f", row.ProfitDedt),
|
||||
fmt.Sprintf("%.2f", row.GrossMargin),
|
||||
fmt.Sprintf("%.2f", row.OpIncome),
|
||||
fmt.Sprintf("%.2f", row.ValuechangeIncome),
|
||||
fmt.Sprintf("%.2f", row.InterstIncome),
|
||||
fmt.Sprintf("%.2f", row.Daa),
|
||||
fmt.Sprintf("%.2f", row.Ebit),
|
||||
fmt.Sprintf("%.2f", row.Ebitda),
|
||||
fmt.Sprintf("%.2f", row.Fcff),
|
||||
fmt.Sprintf("%.2f", row.Fcfe),
|
||||
fmt.Sprintf("%.2f", row.RdExp),
|
||||
fmt.Sprintf("%.2f", row.FixedAssets),
|
||||
fmt.Sprintf("%.2f", row.ProfitPrefinExp),
|
||||
fmt.Sprintf("%.2f", row.NonOpProfit),
|
||||
|
||||
// 资产负债表相关
|
||||
fmt.Sprintf("%.2f", row.CurrentExint),
|
||||
fmt.Sprintf("%.2f", row.NoncurrentExint),
|
||||
fmt.Sprintf("%.2f", row.Interestdebt),
|
||||
fmt.Sprintf("%.2f", row.Netdebt),
|
||||
fmt.Sprintf("%.2f", row.TangibleAsset),
|
||||
fmt.Sprintf("%.2f", row.WorkingCapital),
|
||||
fmt.Sprintf("%.2f", row.NetworkingCapital),
|
||||
fmt.Sprintf("%.2f", row.InvestCapital),
|
||||
fmt.Sprintf("%.2f", row.RetainedEarnings),
|
||||
|
||||
// 偿债能力指标
|
||||
fmt.Sprintf("%.2f", row.CurrentRatio),
|
||||
fmt.Sprintf("%.2f", row.QuickRatio),
|
||||
fmt.Sprintf("%.2f", row.CashRatio),
|
||||
fmt.Sprintf("%.2f", row.DebtToAssets),
|
||||
fmt.Sprintf("%.2f", row.AssetsToEqt),
|
||||
fmt.Sprintf("%.2f", row.DpAssetsToEqt),
|
||||
fmt.Sprintf("%.2f", row.DebtToEqt),
|
||||
fmt.Sprintf("%.2f", row.EqtToDebt),
|
||||
fmt.Sprintf("%.2f", row.OcfToShortdebt),
|
||||
fmt.Sprintf("%.2f", row.EbitToInterest),
|
||||
|
||||
// 运营能力指标
|
||||
fmt.Sprintf("%.2f", row.InvturnDays),
|
||||
fmt.Sprintf("%.2f", row.ArturnDays),
|
||||
fmt.Sprintf("%.2f", row.InvTurn),
|
||||
fmt.Sprintf("%.2f", row.ArTurn),
|
||||
fmt.Sprintf("%.2f", row.CaTurn),
|
||||
fmt.Sprintf("%.2f", row.FaTurn),
|
||||
fmt.Sprintf("%.2f", row.AssetsTurn),
|
||||
fmt.Sprintf("%.2f", row.TurnDays),
|
||||
fmt.Sprintf("%.2f", row.TotalFaTrun),
|
||||
|
||||
// 盈利能力指标
|
||||
fmt.Sprintf("%.2f", row.NetprofitMargin),
|
||||
fmt.Sprintf("%.2f", row.GrossprofitMargin),
|
||||
fmt.Sprintf("%.2f", row.CogsOfSales),
|
||||
fmt.Sprintf("%.2f", row.ExpenseOfSales),
|
||||
fmt.Sprintf("%.2f", row.Roe),
|
||||
fmt.Sprintf("%.2f", row.RoeWaa),
|
||||
fmt.Sprintf("%.2f", row.RoeDt),
|
||||
fmt.Sprintf("%.2f", row.Roa),
|
||||
fmt.Sprintf("%.2f", row.Npta),
|
||||
fmt.Sprintf("%.2f", row.Roic),
|
||||
fmt.Sprintf("%.2f", row.RoaDp),
|
||||
|
||||
// 结构指标
|
||||
fmt.Sprintf("%.2f", row.CaToAssets),
|
||||
fmt.Sprintf("%.2f", row.NcaToAssets),
|
||||
fmt.Sprintf("%.2f", row.TbassetsToTotalassets),
|
||||
fmt.Sprintf("%.2f", row.IntToTalcap),
|
||||
fmt.Sprintf("%.2f", row.EqtToTalcapital),
|
||||
fmt.Sprintf("%.2f", row.CurrentdebtToDebt),
|
||||
fmt.Sprintf("%.2f", row.LongdebToDebt),
|
||||
fmt.Sprintf("%.2f", row.TangibleassetToDebt),
|
||||
|
||||
// 单季度指标
|
||||
fmt.Sprintf("%.2f", row.QOpincome),
|
||||
fmt.Sprintf("%.2f", row.QInvestincome),
|
||||
fmt.Sprintf("%.2f", row.QDtprofit),
|
||||
fmt.Sprintf("%.2f", row.QEps),
|
||||
fmt.Sprintf("%.2f", row.QNetprofitMargin),
|
||||
fmt.Sprintf("%.2f", row.QGscaleprofitMargin),
|
||||
fmt.Sprintf("%.2f", row.QExpToSales),
|
||||
fmt.Sprintf("%.2f", row.QRoe),
|
||||
fmt.Sprintf("%.2f", row.QDtRoe),
|
||||
fmt.Sprintf("%.2f", row.QNpta),
|
||||
|
||||
// 同比增长率
|
||||
fmt.Sprintf("%.2f%%", row.BasicEpsYoy),
|
||||
fmt.Sprintf("%.2f%%", row.DtEpsYoy),
|
||||
fmt.Sprintf("%.2f%%", row.CfpsYoy),
|
||||
fmt.Sprintf("%.2f%%", row.OpYoy),
|
||||
fmt.Sprintf("%.2f%%", row.EbtYoy),
|
||||
fmt.Sprintf("%.2f%%", row.NetprofitYoy),
|
||||
fmt.Sprintf("%.2f%%", row.DtNetprofitYoy),
|
||||
fmt.Sprintf("%.2f%%", row.OcfYoy),
|
||||
fmt.Sprintf("%.2f%%", row.RoeYoy),
|
||||
fmt.Sprintf("%.2f%%", row.BpsYoy),
|
||||
fmt.Sprintf("%.2f%%", row.AssetsYoy),
|
||||
fmt.Sprintf("%.2f%%", row.EqtYoy),
|
||||
fmt.Sprintf("%.2f%%", row.TrYoy),
|
||||
fmt.Sprintf("%.2f%%", row.OrYoy),
|
||||
fmt.Sprintf("%.2f%%", row.EquityYoy),
|
||||
|
||||
// 其他比率指标
|
||||
fmt.Sprintf("%.2f", row.ProfitToGr),
|
||||
fmt.Sprintf("%.2f", row.SaleexpToGr),
|
||||
fmt.Sprintf("%.2f", row.AdminexpOfGr),
|
||||
fmt.Sprintf("%.2f", row.FinaexpOfGr),
|
||||
fmt.Sprintf("%.2f", row.ImpaiTtm),
|
||||
fmt.Sprintf("%.2f", row.GcOfGr),
|
||||
fmt.Sprintf("%.2f", row.OpOfGr),
|
||||
fmt.Sprintf("%.2f", row.EbitOfGr),
|
||||
fmt.Sprintf("%.2f", row.OpincomeOfEbt),
|
||||
fmt.Sprintf("%.2f", row.InvestincomeOfEbt),
|
||||
fmt.Sprintf("%.2f", row.NOpProfitOfEbt),
|
||||
fmt.Sprintf("%.2f", row.TaxToEbt),
|
||||
fmt.Sprintf("%.2f", row.DtprofitToProfit),
|
||||
fmt.Sprintf("%.2f", row.SalescashToOr),
|
||||
fmt.Sprintf("%.2f", row.OcfToOr),
|
||||
fmt.Sprintf("%.2f", row.OcfToOpincome),
|
||||
fmt.Sprintf("%.2f", row.CapitalizedToDa),
|
||||
fmt.Sprintf("%.2f", row.OcfToDebt),
|
||||
fmt.Sprintf("%.2f", row.OcfToInterestdebt),
|
||||
fmt.Sprintf("%.2f", row.OcfToNetdebt),
|
||||
fmt.Sprintf("%.2f", row.LongdebtToWorkingcapital),
|
||||
fmt.Sprintf("%.2f", row.EbitdaToDebt),
|
||||
fmt.Sprintf("%.2f", row.OpToEbt),
|
||||
fmt.Sprintf("%.2f", row.NopToEbt),
|
||||
fmt.Sprintf("%.2f", row.OcfToProfit),
|
||||
fmt.Sprintf("%.2f", row.CashToLiqdebt),
|
||||
fmt.Sprintf("%.2f", row.CashToLiqdebtWithinterest),
|
||||
fmt.Sprintf("%.2f", row.OpToLiqdebt),
|
||||
fmt.Sprintf("%.2f", row.OpToDebt),
|
||||
fmt.Sprintf("%.2f", row.ProfitToOp),
|
||||
|
||||
// 年度化指标
|
||||
fmt.Sprintf("%.2f", row.RoeYearly),
|
||||
fmt.Sprintf("%.2f", row.Roa2Yearly),
|
||||
fmt.Sprintf("%.2f", row.RoaYearly),
|
||||
fmt.Sprintf("%.2f", row.RoicYearly),
|
||||
fmt.Sprintf("%.2f", row.RoeAvg),
|
||||
|
||||
// 单季度增长比率
|
||||
fmt.Sprintf("%.2f%%", row.QGrYoy),
|
||||
fmt.Sprintf("%.2f%%", row.QGrQoq),
|
||||
fmt.Sprintf("%.2f%%", row.QSalesYoy),
|
||||
fmt.Sprintf("%.2f%%", row.QSalesQoq),
|
||||
fmt.Sprintf("%.2f%%", row.QOpYoy),
|
||||
fmt.Sprintf("%.2f%%", row.QOpQoq),
|
||||
fmt.Sprintf("%.2f%%", row.QProfitYoy),
|
||||
fmt.Sprintf("%.2f%%", row.QProfitQoq),
|
||||
fmt.Sprintf("%.2f%%", row.QNetprofitYoy),
|
||||
fmt.Sprintf("%.2f%%", row.QNetprofitQoq),
|
||||
|
||||
// 单季度比率指标
|
||||
fmt.Sprintf("%.2f", row.QProfitToGr),
|
||||
fmt.Sprintf("%.2f", row.QSaleexpToGr),
|
||||
fmt.Sprintf("%.2f", row.QAdminexpToGr),
|
||||
fmt.Sprintf("%.2f", row.QFinaexpToGr),
|
||||
fmt.Sprintf("%.2f", row.QImpairToGrTtm),
|
||||
fmt.Sprintf("%.2f", row.QGcToGr),
|
||||
fmt.Sprintf("%.2f", row.QOpToGr),
|
||||
fmt.Sprintf("%.2f", row.QOpincomeToEbt),
|
||||
fmt.Sprintf("%.2f", row.QInvestincomeToEbt),
|
||||
fmt.Sprintf("%.2f", row.QDtprofitToProfit),
|
||||
fmt.Sprintf("%.2f", row.QSalescashToOr),
|
||||
fmt.Sprintf("%.2f", row.QOcfToSales),
|
||||
fmt.Sprintf("%.2f", row.QOcfToOr),
|
||||
})
|
||||
}
|
||||
md.Table("最近3年的股票财务指标", fiHeaders, fiData)
|
||||
md.BR()
|
||||
|
||||
md.SaveToFile("./result/" + code + ".md")
|
||||
}
|
||||
|
||||
func GetStocks() (stocks []string) {
|
||||
impl.DBService.Model(&models.StockBasic{}).Group("ts_code").Pluck("ts_code", &stocks)
|
||||
return
|
||||
@@ -31,7 +490,6 @@ func GetIndustry() (industry []string) {
|
||||
return
|
||||
}
|
||||
|
||||
|
||||
func GetArgs(code string) *models.StockArgs {
|
||||
var args models.StockArgs
|
||||
err := impl.DBService.Where("ts_code = ?", code).First(&args).Error
|
||||
|
||||
79
internal/logic/strategy/markdown.go
Normal file
79
internal/logic/strategy/markdown.go
Normal file
@@ -0,0 +1,79 @@
|
||||
package strategy
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
type MarkdownBuilder struct {
|
||||
buf bytes.Buffer
|
||||
}
|
||||
|
||||
func NewMarkdownBuilder() *MarkdownBuilder {
|
||||
return &MarkdownBuilder{}
|
||||
}
|
||||
func (m *MarkdownBuilder) Title(title string) {
|
||||
m.buf.WriteString("# " + title + "\n\n")
|
||||
}
|
||||
|
||||
func (m *MarkdownBuilder) Catalog(text string) {
|
||||
m.buf.WriteString("## " + text + "\n\n")
|
||||
}
|
||||
func (m *MarkdownBuilder) Text(text string) {
|
||||
m.buf.WriteString(text + "\n\n")
|
||||
}
|
||||
|
||||
func (m *MarkdownBuilder) KvText(key, val string) {
|
||||
m.buf.WriteString(key + " :" + val + " \n")
|
||||
}
|
||||
|
||||
func (m *MarkdownBuilder) BR() {
|
||||
m.buf.WriteString("\n")
|
||||
}
|
||||
|
||||
func (m *MarkdownBuilder) Code(lang, code string) {
|
||||
m.buf.WriteString("```" + lang + "\n")
|
||||
m.buf.WriteString(code + "\n")
|
||||
m.buf.WriteString("```\n\n")
|
||||
}
|
||||
|
||||
// 生成Markdown表格
|
||||
// | Header1 | Header2 |
|
||||
// |---------|---------|
|
||||
// | Cell1 | Cell2 |
|
||||
func (m *MarkdownBuilder) Table(catalog string, headers []string, rows [][]string) {
|
||||
if catalog != "" {
|
||||
m.buf.WriteString("## " + catalog + "\n")
|
||||
}
|
||||
m.buf.WriteString("| " + strings.Join(headers, " | ") + " |\n")
|
||||
|
||||
m.buf.WriteString("| ")
|
||||
for _, header := range headers {
|
||||
m.buf.WriteString(strings.Repeat("-", len(header)) + "|")
|
||||
}
|
||||
m.buf.WriteString("\n")
|
||||
for _, row := range rows {
|
||||
m.buf.WriteString("| " + strings.Join(row, " | ") + " |\n")
|
||||
}
|
||||
}
|
||||
|
||||
func (m *MarkdownBuilder) Build() string {
|
||||
return m.buf.String()
|
||||
}
|
||||
|
||||
func (m *MarkdownBuilder) SaveToFile(filePath string) error {
|
||||
rf, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC, os.ModePerm)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
defer rf.Close()
|
||||
|
||||
// 将buffer内容复制到文件
|
||||
_, err = io.Copy(rf, &m.buf)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
}
|
||||
@@ -30,10 +30,10 @@ func NewIdustry() *Industry {
|
||||
}
|
||||
|
||||
func (r *Industry) Run(in string) *types.RuleResult {
|
||||
score := 0
|
||||
score := 1
|
||||
desc := "中性/周期型行业"
|
||||
if strings.Contains(hotIndustries, in) {
|
||||
score = 1
|
||||
score = 2
|
||||
desc = "热门行业"
|
||||
} else if strings.Contains(sunsetIndustries, in) {
|
||||
score = -1
|
||||
|
||||
439
result/601899.SH.md
Normal file
439
result/601899.SH.md
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -1,22 +1,63 @@
|
||||
code,name,roe,rsi,desc,pass
|
||||
000568.SZ,泸州老窖,22.17,38.4,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=22.17 高于0.00#RSI=38 prveRsi=37,跌破下轨后呈上涨趋势",OK
|
||||
920699.BJ,海达尔,16.35,46.79,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=16.35 高于0.00#RSI=46 跌破下轨,14日最低",OK
|
||||
920273.BJ,一致魔芋,9.83,44.29,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=9.83 高于0.00#RSI=44 prveRsi=42,跌破下轨后呈上涨趋势",OK
|
||||
601077.SH,渝农商行,7.94,44.3,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=7.94 高于0.00#RSI=44 prveRsi=42,跌破下轨后呈上涨趋势",OK
|
||||
688656.SH,浩欧博,3.19,39.34,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=3.19 高于0.00#RSI=39 prveRsi=39,跌破下轨后呈上涨趋势",OK
|
||||
920351.BJ,华光源海,4.45,45.44,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.45 高于0.00#RSI=45 prveRsi=43,跌破下轨后呈上涨趋势",OK
|
||||
601878.SH,浙商证券,5.27,45.1,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.27 高于0.00#RSI=45 prveRsi=44,跌破下轨后呈上涨趋势",OK
|
||||
300660.SZ,江苏雷利,7.74,46.82,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=7.74 高于0.00#RSI=46 跌破下轨,14日最低",OK
|
||||
603099.SH,长白山,12.18,44.59,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=12.18 高于0.00#RSI=44 prveRsi=44,跌破下轨后呈上涨趋势",OK
|
||||
300250.SZ,初灵信息,1.12,44.96,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=1.12 高于0.00#RSI=44 prveRsi=43,跌破下轨后呈上涨趋势",OK
|
||||
920106.BJ,林泰新材,21.75,40.83,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=21.75 高于0.00#RSI=40 prveRsi=40,跌破下轨后呈上涨趋势",OK
|
||||
920274.BJ,宏裕包材,3.13,45.21,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=3.13 高于0.00#RSI=45 prveRsi=45,跌破下轨后呈上涨趋势",OK
|
||||
688183.SH,生益电子,23.64,49.92,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=23.64 高于0.00#RSI=49 跌破下轨,14日最低",OK
|
||||
600809.SH,山西汾酒,31.02,24.73,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=31.02 高于0.00#RSI=24 prveRsi=24,跌破下轨后呈上涨趋势",OK
|
||||
600012.SH,皖通高速,11.46,44.09,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=11.46 高于0.00#RSI=44 prveRsi=43,跌破下轨后呈上涨趋势",OK
|
||||
000953.SZ,河化股份,5.3,45.03,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.30 高于0.00#RSI=45 prveRsi=45,跌破下轨后呈上涨趋势",OK
|
||||
688775.SH,影石创新,17.78,39.41,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=17.78 高于0.00#RSI=39 prveRsi=38,跌破下轨后呈上涨趋势",OK
|
||||
601456.SH,国联民生,4.99,42.1,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.99 高于0.00#RSI=42 prveRsi=42,跌破下轨后呈上涨趋势",OK
|
||||
300779.SZ,惠城环保,2.06,37.11,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=2.06 高于0.00#RSI=37 prveRsi=37,跌破下轨后呈上涨趋势",OK
|
||||
300386.SZ,飞天诚信,0.71,44.06,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=0.71 高于0.00#RSI=44 prveRsi=44,跌破下轨后呈上涨趋势",OK
|
||||
920718.BJ,合肥高科,6.43,45.52,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.43 高于0.00#RSI=45 prveRsi=44,跌破下轨后呈上涨趋势",OK
|
||||
301323.SZ,新莱福,4.91,52.9,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.91 高于0.00#RSI=52 跌破下轨,14日最低",OK
|
||||
600941.SH,中国移动,8.47,33.09,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=8.47 高于0.00#RSI=33 prveRsi=27,跌破下轨后呈上涨趋势",OK
|
||||
002714.SZ,牧原股份,19.85,40.07,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=19.85 高于0.00#RSI=40 prveRsi=39,跌破下轨后呈上涨趋势",OK
|
||||
603579.SH,荣泰健康,4.65,45.89,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.65 高于0.00#RSI=45 prveRsi=45,跌破下轨后呈上涨趋势",OK
|
||||
688503.SH,聚和材料,5.04,58.46,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.04 高于0.00#RSI=58 跌破下轨,14日最低",OK
|
||||
301069.SZ,凯盛新材,6.87,42.73,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.87 高于0.00#RSI=42 prveRsi=41,跌破下轨后呈上涨趋势",OK
|
||||
605286.SH,同力天启,9.41,39.85,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=9.41 高于0.00#RSI=39 跌破下轨,14日最低",OK
|
||||
920839.BJ,万通液压,15.8,43.43,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=15.80 高于0.00#RSI=43 prveRsi=43,跌破下轨后呈上涨趋势",OK
|
||||
601825.SH,沪农商行,8.46,33.45,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=8.46 高于0.00#RSI=33 prveRsi=33,跌破下轨后呈上涨趋势",OK
|
||||
600015.SH,华夏银行,4.92,33.18,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.92 高于0.00#RSI=33 prveRsi=32,跌破下轨后呈上涨趋势",OK
|
||||
001965.SZ,招商公路,5.6,38.51,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.60 高于0.00#RSI=38 prveRsi=36,跌破下轨后呈上涨趋势",OK
|
||||
002463.SZ,沪电股份,21.08,51.05,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=21.08 高于0.00#RSI=51 跌破下轨,14日最低",OK
|
||||
601728.SH,中国电信,6.76,34.97,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.76 高于0.00#RSI=34 prveRsi=27,跌破下轨后呈上涨趋势",OK
|
||||
002625.SZ,光启技术,6.56,45.01,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.56 高于0.00#RSI=45 跌破下轨,14日最低",OK
|
||||
301061.SZ,匠心家居,17.3,40.25,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=17.30 高于0.00#RSI=40 prveRsi=40,跌破下轨后呈上涨趋势",OK
|
||||
920879.BJ,基康技术,9.1,44.87,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=9.10 高于0.00#RSI=44 prveRsi=44,跌破下轨后呈上涨趋势",OK
|
||||
601988.SH,中国银行,6.01,37.94,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.01 高于0.00#RSI=37 prveRsi=36,跌破下轨后呈上涨趋势",OK
|
||||
603369.SH,今世缘,15.95,26.77,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=15.95 高于0.00#RSI=26 prveRsi=26,跌破下轨后呈上涨趋势",OK
|
||||
002423.SZ,中粮资本,4.51,44.37,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.51 高于0.00#RSI=44 prveRsi=44,跌破下轨后呈上涨趋势",OK
|
||||
603983.SH,丸美生物,7.28,39.01,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=7.28 高于0.00#RSI=39 跌破下轨,14日最低",OK
|
||||
601598.SH,中国外运,6.75,37.85,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.75 高于0.00#RSI=37 prveRsi=36,跌破下轨后呈上涨趋势",OK
|
||||
603083.SH,剑桥科技,10.73,49.54,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=10.73 高于0.00#RSI=49 跌破下轨,14日最低",OK
|
||||
600211.SH,西藏药业,19.33,41.42,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=19.33 高于0.00#RSI=41 跌破下轨,14日最低",OK
|
||||
601186.SH,中国铁建,4.42,33.31,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.42 高于0.00#RSI=33 prveRsi=33,跌破下轨后呈上涨趋势",OK
|
||||
600377.SH,宁沪高速,9.73,45.76,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=9.73 高于0.00#RSI=45 prveRsi=43,跌破下轨后呈上涨趋势",OK
|
||||
688059.SH,华锐精密,9.95,62.06,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=9.95 高于0.00#RSI=62 跌破下轨,14日最低",OK
|
||||
601939.SH,建设银行,7.4,40.25,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=7.40 高于0.00#RSI=40 prveRsi=40,跌破下轨后呈上涨趋势",OK
|
||||
002481.SZ,双塔食品,1.36,39.49,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=1.36 高于0.00#RSI=39 prveRsi=36,跌破下轨后呈上涨趋势",OK
|
||||
300235.SZ,方直科技,1,36.41,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=1.00 高于0.00#RSI=36 prveRsi=36,跌破下轨后呈上涨趋势",OK
|
||||
920392.BJ,佳合科技,4.91,30.31,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.91 高于0.00#RSI=30 prveRsi=27,跌破下轨后呈上涨趋势",OK
|
||||
001238.SZ,浙江正特,4.17,49.02,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=4.17 高于0.00#RSI=49 跌破下轨,14日最低",OK
|
||||
000166.SZ,申万宏源,7.42,43.21,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=7.42 高于0.00#RSI=43 prveRsi=40,跌破下轨后呈上涨趋势",OK
|
||||
002468.SZ,申通快递,7.52,38.03,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=7.52 高于0.00#RSI=38 prveRsi=38,跌破下轨后呈上涨趋势",OK
|
||||
002294.SZ,信立泰,6.64,38.87,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=6.64 高于0.00#RSI=38 prveRsi=38,跌破下轨后呈上涨趋势",OK
|
||||
300354.SZ,东华测试,12.85,41.18,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=12.85 高于0.00#RSI=41 跌破下轨,14日最低",OK
|
||||
601169.SH,北京银行,5.67,38.67,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.67 高于0.00#RSI=38 prveRsi=37,跌破下轨后呈上涨趋势",OK
|
||||
600422.SH,昆药集团,5.1,40.91,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.10 高于0.00#RSI=40 prveRsi=39,跌破下轨后呈上涨趋势",OK
|
||||
600085.SH,同仁堂,8.77,29.47,"上市超过半年#无退市风险#热门行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=8.77 高于0.00#RSI=29 prveRsi=28,跌破下轨后呈上涨趋势",OK
|
||||
002338.SZ,奥普光电,2.83,48.75,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=2.83 高于0.00#RSI=48 跌破下轨,14日最低",OK
|
||||
601336.SH,新华保险,33.4,62.03,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=33.40 高于0.00#RSI=62 跌破下轨,14日最低",OK
|
||||
920522.BJ,纳科诺尔,5.38,55.97,"上市超过半年#无退市风险#中性/周期型行业#最近20天, 价格均高于5.00#最近20天, 成交额均高于100000.00万元#ROE=5.38 高于0.00#RSI=55 跌破下轨,14日最低",OK
|
||||
|
||||
|
Reference in New Issue
Block a user