123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121 |
- package trade_analysis
- import (
- "hongze/hongze_yb/global"
- "time"
- )
- // 持仓榜单表
- type TradePositionTop struct {
- Id uint64 `orm:"column(id);pk"`
- ClassifyName string //分类名称
- ClassifyType string //分类名称下的类型
- DataTime string //数据日期
- CreateTime time.Time //插入时间
- ModifyTime time.Time //修改时间
- DealShortName string //成交量公司简称
- DealValue int //成交量
- DealChange int //成交变化量
- DealType int //交易类型:1多单,2空单,3净多单,4净空单
- SourceType int //数据来源,0是原始数据的值,1是由T+1日推算出的值,2是由T日的榜单数据推算出的值
- Rank int //排名
- }
- type TradeClassifyNameList struct {
- Exchange string `description:"交易所" json:"exchange"`
- Num int `description:"品种数量" json:"num"`
- DataTime string `description:"最新更新时间" json:"data_time"`
- Items []TradeClassifyNameListItem `description:"子类" json:"items"`
- }
- type TradeClassifyNameListItem struct {
- ClassifyName string `description:"交易分类" json:"classify_name"`
- Items []TradeClassifyNameListItemItem `description:"合约代码" json:"items"`
- }
- type TradeClassifyNameListItemItem struct {
- ClassifyType string `json:"classify_type"` //分类名称下的类型
- Sort int `json:"sort"`
- }
- type TradeClassifyName struct {
- ClassifyName string //分类名称
- ClassifyType string //分类名称下的类型
- }
- func GetExchangeClassify(exchange string) (list []TradeClassifyName, err error) {
- tableName := "base_from_trade_" + exchange + "_index"
- orderStr := "CONVERT(classify_name using gbk) DESC, classify_type asc"
- if exchange == "zhengzhou"{
- orderStr = "classify_name asc"
- }
- err = global.MYSQL["data"].
- Table(tableName).
- Select("classify_name, classify_type").
- Group("classify_name, classify_type").
- Order(orderStr).Scan(&list).Error
- return
- }
- type LastTimeItem struct {
- CreateTime time.Time
- }
- func GetExchangeLastTime(exchange string) (item LastTimeItem, err error) {
- tableName := "base_from_trade_" + exchange + "_index"
- err = global.MYSQL["data"].
- Table(tableName).
- Select("create_time").
- Order("create_time desc").First(&item).Error
- return
- }
- type GetPositionTopReq struct {
- Exchange string `json:"exchange" form:"exchange"` //交易所
- ClassifyName string `json:"classify_name" form:"classify_name"` //分类名称
- ClassifyType string `json:"classify_type" form:"classify_type"` //具体合约名称
- DataTime string `json:"data_time" form:"data_time"` //请求日期,如果为空,则返回最新的榜单日期
- }
- type GetPositionTopResp struct {
- BuyList GetPositionTopList `json:"buy_list"` //多单列表
- SoldList GetPositionTopList `json:"sold_list"` //空单列表
- CleanBuyList GetPositionTopList `json:"clean_buy_list"` //净多单列表
- CleanSoldList GetPositionTopList `json:"clean_sold_list"` //净空单列表
- DataTime string `json:"data_time"` //最新日期或者请求日期
- }
- type GetPositionTopList struct {
- TotalDealValue int `json:"total_deal_value"` //总计成交量
- TotalDealChange int `json:"total_deal_change"` //校昨日变化
- List []GetPositionTopListItem `json:"list"` //榜单详情列表
- }
- type GetPositionTopListItem struct {
- DealShortName string `json:"deal_short_name"` //成交量公司简称
- DealValue int `json:"deal_value"` //成交量
- DealChange int `json:"deal_change"` //成交变化量
- Rank int `json:"rank"` //当前名次
- Rate string `json:"rate"` //当前占比
- BeforeAllRate string `json:"before_all_rate"` //排在前面的成交量总计占比(包含)
- BeforeAllValue int `json:"before_all_value"` //排在前面的成交量总计
- BeforeAllChange int `json:"before_all_change"` //排在前面的成交量增减总计
- }
- func GetTradePositionTop(exchange string, classifyName, classifyType, dataTime string)(list []TradePositionTop, err error) {
- tableName := "trade_position_" + exchange + "_top"
- err = global.MYSQL["data"].
- Table(tableName).
- Where("classify_name=? and classify_type=? and data_time=? and rank <=20", classifyName, classifyType, dataTime).
- Order("deal_value desc").Scan(&list).Error
- return
- }
- func GetTradeTopLastDataTime(exchange string, classifyName, classifyType string)(item TradePositionTop, err error) {
- tableName := "trade_position_" + exchange + "_top"
- err = global.MYSQL["data"].
- Table(tableName).
- Where("classify_name=? and classify_type=?", classifyName, classifyType).
- Order("data_time desc").First(&item).Error
- return
- }
|