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.
40 lines
1.0 KiB
40 lines
1.0 KiB
package trade |
|
|
|
import ( |
|
"sig-pub/pkg/data/entity" |
|
"sig-pub/pkg/types" |
|
|
|
"github.com/govalues/decimal" |
|
) |
|
|
|
// sig -> close strategy |
|
// sig -> risk strategy -> trade strategy -> tarde account |
|
type ITradeAccount interface { |
|
// 根据当前价格对仓位进行 mark-to-market,返回账户净值 |
|
GetCurrentEquity() decimal.Decimal |
|
|
|
// 返回当前仓位的名义总敞口(绝对值) |
|
GetCurrentExposure() decimal.Decimal |
|
|
|
// 获取可交易空闲资金 |
|
GetCash() decimal.Decimal |
|
|
|
// 获取未平仓交易单 |
|
ListOpenPosition() []*Position |
|
|
|
// 获取交易订单 |
|
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) |
|
|
|
// 将仓位进行平仓 |
|
ClosePosition() |
|
} |
|
|
|
type OkxTradeAccount struct { |
|
ITradeAccount |
|
}
|
|
|