You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
261 lines
8.6 KiB
261 lines
8.6 KiB
package model
|
|
|
|
// 外汇废弃 代码列表
|
|
type ForexCodeList struct {
|
|
Description string `json:"description"`
|
|
DisplaySymbol string `json:"displaySymbol"`
|
|
Symbol string `json:"symbol"`
|
|
}
|
|
|
|
// https://polygon.io 外汇实时行情
|
|
type ForexJsonData struct {
|
|
Event string `json:"ev"` // 事件类型(实时数据)
|
|
Pair string `json:"pair"` // 货币对
|
|
Open float64 `json:"o"` // 开盘价
|
|
Close float64 `json:"c"` // 收盘价
|
|
High float64 `json:"h"` // 最高价
|
|
Low float64 `json:"l"` // 最低价
|
|
Volume int `json:"v"` // 交易量
|
|
Timestamp int64 `json:"s"` // 时间戳
|
|
}
|
|
|
|
// 链接是否成功:[{"ev":"status","status":"connected","message":"Connected Successfully"}]
|
|
type ReceiveForexLink struct {
|
|
Ev string `json:"ev"`
|
|
Status string `json:"status"`
|
|
Message string `json:"message"`
|
|
}
|
|
|
|
// 链接鉴权|发起订阅:{"action":"auth","params":"vG4tCD5emAFPkS4kWtXxJntMASyN4dnv"}
|
|
type SendAuthority struct {
|
|
Action string `json:"action"`
|
|
Params string `json:"params"`
|
|
}
|
|
|
|
// 外汇股票代码列表
|
|
type ForexCodeMap struct {
|
|
Code string `json:"code"` // 外汇代码
|
|
}
|
|
|
|
// ForexDataResponse 外汇代码列表
|
|
type ForexDataResponse struct {
|
|
Tickers []ForexData `json:"tickers"`
|
|
}
|
|
|
|
// StockData 代表外汇股票市场数据的结构
|
|
type ForexData struct {
|
|
Ticker string `json:"ticker"` // 股票或商品的标识符
|
|
TodaysChange float64 `json:"todaysChange"` // 今日价格变动
|
|
TodaysChangePerc float64 `json:"todaysChangePerc"` // 今日价格变动的百分比
|
|
Updated int64 `json:"updated"` // 更新时间的 Unix 时间戳(纳秒)
|
|
Day DayData `json:"day"` // 今日的市场数据
|
|
LastQuote QuoteData `json:"lastQuote"` // 最新的报价信息
|
|
Min MinData `json:"min"` // 最小价格记录
|
|
PrevDay DayData `json:"prevDay"` // 昨日的市场数据
|
|
}
|
|
|
|
// DayData 代表一天的市场数据
|
|
type DayData struct {
|
|
O float64 `json:"o"` // 开盘价
|
|
H float64 `json:"h"` // 最高价
|
|
L float64 `json:"l"` // 最低价
|
|
C float64 `json:"c"` // 当前/收盘价
|
|
V int `json:"v"` // 成交量
|
|
VW float64 `json:"vw"` // 加权平均价格
|
|
}
|
|
|
|
// QuoteData 代表最新报价信息
|
|
type QuoteData struct {
|
|
A float64 `json:"a"` // 卖价
|
|
B float64 `json:"b"` // 买价
|
|
T int64 `json:"t"` // 最新报价的时间戳(毫秒)
|
|
X int `json:"x"` // 交易所标识符
|
|
}
|
|
|
|
// MinData 代表最小价格记录
|
|
type MinData struct {
|
|
T int64 `json:"t"` // 时间戳
|
|
N int `json:"n"` // 记录数
|
|
O float64 `json:"o"` // 开盘价
|
|
H float64 `json:"h"` // 最高价
|
|
L float64 `json:"l"` // 最低价
|
|
C float64 `json:"c"` // 收盘价
|
|
V int `json:"v"` // 成交量
|
|
VW float64 `json:"vw"` // 加权平均价格
|
|
}
|
|
|
|
// 货币对的最后报价 {"ev":"C","p":"NZD/NOK","a":6.5496,"b":6.5472,"x":48,"t":1730194133000}
|
|
type ForexLastQuote struct {
|
|
Ev string `json:"ev"` // 事件类型
|
|
P string `json:"p"` // 交易对
|
|
A float64 `json:"a"` // 买价
|
|
X int `json:"x"` // 交易所标识符
|
|
B float64 `json:"b"` // 卖价
|
|
T int64 `json:"t"` // 时间
|
|
}
|
|
|
|
// 大宗成交数据
|
|
type ForexTrade struct {
|
|
Ev string `json:"ev"` // 事件类型
|
|
Code string `json:"code"` // 交易对
|
|
Seq string `json:"seq"` // ID
|
|
TickTime string `json:"tick_time"` // 时间戳
|
|
Price string `json:"price"` // 成交价
|
|
Volume string `json:"volume"` // 成交量
|
|
Turnover string `json:"turnover"` // 成交金额
|
|
TradeDirection int `json:"trade_direction"` // 成交方向
|
|
}
|
|
type ForexTradeList struct {
|
|
Ev string `bson:"ev"` // 事件类型
|
|
Code string `bson:"code"` // 交易对
|
|
Seq string `bson:"seq"` // ID
|
|
TickTime int64 `bson:"tick_time"` // 时间戳
|
|
Price string `bson:"price"` // 成交价
|
|
Volume string `bson:"volume"` // 成交量
|
|
Turnover string `bson:"turnover"` // 成交金额
|
|
TradeDirection int `bson:"trade_direction"` // 成交方向
|
|
}
|
|
|
|
type ConstructParametersPost struct {
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
DataList []DataParameters `json:"data_list"`
|
|
} `json:"data"`
|
|
}
|
|
type DataParameters struct {
|
|
Code string `json:"code"`
|
|
KlineType int `json:"kline_type"`
|
|
KlineTimestampEnd int `json:"kline_timestamp_end"`
|
|
QueryKlineNum int `json:"query_kline_num"`
|
|
AdjustType int `json:"adjust_type"`
|
|
}
|
|
type KlinePostReturnStruct struct {
|
|
Ret int `json:"ret"`
|
|
Msg string `json:"msg"`
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
KlineList []struct {
|
|
Code string `json:"code"`
|
|
KlineType int `json:"kline_type"`
|
|
KlineData []struct {
|
|
Timestamp string `json:"timestamp"`
|
|
OpenPrice string `json:"open_price"`
|
|
ClosePrice string `json:"close_price"`
|
|
HighPrice string `json:"high_price"`
|
|
LowPrice string `json:"low_price"`
|
|
Volume string `json:"volume"`
|
|
Turnover string `json:"turnover"`
|
|
} `json:"kline_data"`
|
|
} `json:"kline_list"`
|
|
} `json:"data"`
|
|
}
|
|
type ConstructParameters struct {
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
Code string `json:"code"`
|
|
KlineType int `json:"kline_type"`
|
|
KlineTimestampEnd int `json:"kline_timestamp_end"`
|
|
QueryKlineNum int `json:"query_kline_num"`
|
|
AdjustType int `json:"adjust_type"`
|
|
} `json:"data"`
|
|
}
|
|
type DataList struct {
|
|
Code string `json:"code"`
|
|
KlineType int `json:"kline_type"`
|
|
KlineTimestampEnd int `json:"kline_timestamp_end"`
|
|
QueryKlineNum int `json:"query_kline_num"`
|
|
AdjustType int `json:"adjust_type"`
|
|
}
|
|
type KlineGetReturnStruct struct {
|
|
Ret int `json:"ret"`
|
|
Msg string `json:"msg"`
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
Code string `json:"code"`
|
|
KlineType int `json:"kline_type"`
|
|
KlineList []KlineList `json:"kline_list"`
|
|
} `json:"data"`
|
|
}
|
|
|
|
type KlineList struct {
|
|
Timestamp string `json:"timestamp"`
|
|
OpenPrice string `json:"open_price"`
|
|
ClosePrice string `json:"close_price"`
|
|
HighPrice string `json:"high_price"`
|
|
LowPrice string `json:"low_price"`
|
|
Volume string `json:"volume"`
|
|
Turnover string `json:"turnover"`
|
|
}
|
|
|
|
type OrderBookOrTradeTick struct {
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
SymbolList []SymbolList `json:"symbol_list"`
|
|
} `json:"data"`
|
|
}
|
|
type SymbolList struct {
|
|
Code string `json:"code"`
|
|
}
|
|
type DepthReturnStruct struct {
|
|
Msg string `json:"msg"`
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
TickList []struct {
|
|
Code string `json:"code"`
|
|
Seq string `json:"seq"`
|
|
TickTime string `json:"tick_time"`
|
|
Bids []struct {
|
|
Price string `json:"price"`
|
|
Volume string `json:"volume"`
|
|
} `json:"bids"`
|
|
Asks []struct {
|
|
Price string `json:"price"`
|
|
Volume string `json:"volume"`
|
|
} `json:"asks"`
|
|
} `json:"tick_list"`
|
|
} `json:"data"`
|
|
}
|
|
type TradeReturnStruct struct {
|
|
Msg string `json:"msg"`
|
|
Trace string `json:"trace"`
|
|
Data struct {
|
|
TickList []struct {
|
|
Code string `json:"code"`
|
|
Seq string `json:"seq"`
|
|
TickTime string `json:"tick_time"`
|
|
Price string `json:"price"`
|
|
Volume string `json:"volume"`
|
|
Turnover string `json:"turnover"`
|
|
} `json:"tick_list"`
|
|
} `json:"data"`
|
|
}
|
|
|
|
// 贵金属和能源交易对
|
|
var Check_Code = map[string]string{
|
|
"GOLD": "XAUUSD", // 现货黄金/伦敦金(XAUUSD)
|
|
"Silver": "XAGUSD", // 现货白银/伦敦银(XAGUSD)
|
|
"Aluminum": "XALUSD", // 铝(XALUSD)
|
|
"COPPER": "XCUUSD", // 铜(XCUUSD)
|
|
"Palladium": "XPDUSD", // 钯(XPDUSD)
|
|
"Platinum": "XPTUSD", // 铂金(XPTUSD)
|
|
"Nickel": "XNIUSD", // 镍(XNIUSD)
|
|
"Lead": "XPBUSD", // 铅(XPBUSD)
|
|
"Zinc": "XZNUSD", // 锌(XZNUSD)
|
|
"UKOIL": "UKOUSD", // 英国原油(UKOUSD)
|
|
"USOIL": "USOUSD", // 美国原油(USOUSD)
|
|
"NGAS": "XNGUSD", // 天然气(XNGUSD)
|
|
}
|
|
var Check_Symbol = map[string]string{
|
|
"XAUUSD": "GOLD", // 现货黄金/伦敦金(XAUUSD)
|
|
"XAGUSD": "Silver", // 现货白银/伦敦银(XAGUSD)
|
|
"XALUSD": "Aluminum", // 铝(XALUSD)
|
|
"XCUUSD": "COPPER", // 铜(XCUUSD)
|
|
"XPDUSD": "Palladium", // 钯(XPDUSD)
|
|
"XPTUSD": "Platinum", // 铂金(XPTUSD)
|
|
"XNIUSD": "Nickel", // 镍(XNIUSD)
|
|
"XPBUSD": "Lead", // 铅(XPBUSD)
|
|
"XZNUSD": "Zinc", // 锌(XZNUSD)
|
|
"UKOUSD": "UKOIL", // 英国原油(UKOUSD)
|
|
"USOUSD": "USOIL", // 美国原油(USOUSD)
|
|
"XNGUSD": "NGAS", // 天然气(XNGUSD)
|
|
}
|
|
|