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.
39 lines
1.5 KiB
39 lines
1.5 KiB
package trade |
|
|
|
// sig -> close strategy |
|
// sig -> risk strategy -> trade strategy -> tarde account |
|
// position, trades |
|
type ITradeAccount interface { |
|
// 副账户 |
|
// ViceAccount() ITradeAccount |
|
// OnPrice 交易产品价格更新 |
|
OnPrice(instId string, price float64) |
|
// 获取交易产品未平仓交易单 |
|
GetOpenTrades(instId string) []*TradeOrder |
|
// 获取交易产品仓位 |
|
GetPosition(instId string) *Position |
|
// MarketOrder(symbol string, ticket TradeTicket) (order *TradeOrder, err error) |
|
// CloseTradeOrder(order *TradeOrder) (err error) |
|
// 获取未平仓交易单数 |
|
// CountOpenPositions() int |
|
// // 订单下单 |
|
// TradeOrder(ta TradeTicket) (ok bool, cause Cause, err error) |
|
// // 将仓位进行平仓 |
|
// ClosePosition(*Position, types.Kline, Cause) (err error) |
|
// // 根据当前价格对仓位进行 mark-to-market,返回账户净值 |
|
// GetCurrentEquity() decimal.Decimal |
|
// // 返回当前仓位的名义总敞口(绝对值) |
|
// GetCurrentExposure() decimal.Decimal |
|
// // 获取可交易空闲资金 |
|
// GetCash() decimal.Decimal |
|
// // 获取交易订单 |
|
// GetTradeOrder(tradeId int64) Trade |
|
// // 判断在给定价格下是否可以开仓(基于 MaxPosPct 和 MaxExposurePct) |
|
// CanOpen(instId string, side types.Side, qty, price float64) bool |
|
// // 直接用市价下单(简化),qty为基础货币数量 |
|
// ApplyMarketOrder(instId string, side types.Side, qty float64, price float64, ts int64) (t *entity.TradeOrder, ok bool) |
|
} |
|
|
|
type OkxTradeAccount struct { |
|
ITradeAccount |
|
}
|
|
|