mirror of
https://github.com/c9s/bbgo.git
synced 2024-11-22 06:53:52 +00:00
Merge pull request #385 from austin362667/refactor/futures-account
types: add global structs for futures
This commit is contained in:
commit
d1c5e93e4f
|
@ -206,6 +206,7 @@ type Account struct {
|
||||||
sync.Mutex `json:"-"`
|
sync.Mutex `json:"-"`
|
||||||
|
|
||||||
AccountType AccountType `json:"accountType,omitempty"`
|
AccountType AccountType `json:"accountType,omitempty"`
|
||||||
|
FuturesInfo *FuturesAccountInfo
|
||||||
|
|
||||||
MakerFeeRate fixedpoint.Value `json:"makerFeeRate,omitempty"`
|
MakerFeeRate fixedpoint.Value `json:"makerFeeRate,omitempty"`
|
||||||
TakerFeeRate fixedpoint.Value `json:"takerFeeRate,omitempty"`
|
TakerFeeRate fixedpoint.Value `json:"takerFeeRate,omitempty"`
|
||||||
|
@ -216,9 +217,29 @@ type Account struct {
|
||||||
|
|
||||||
TotalAccountValue fixedpoint.Value `json:"totalAccountValue,omitempty"`
|
TotalAccountValue fixedpoint.Value `json:"totalAccountValue,omitempty"`
|
||||||
|
|
||||||
|
CanDeposit bool `json:"canDeposit"`
|
||||||
|
CanTrade bool `json:"canTrade"`
|
||||||
|
CanWithdraw bool `json:"canWithdraw"`
|
||||||
|
|
||||||
balances BalanceMap
|
balances BalanceMap
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type FuturesAccountInfo struct {
|
||||||
|
// Futures fields
|
||||||
|
Assets map[Asset]FuturesUserAsset `json:"assets"`
|
||||||
|
FeeTier int `json:"feeTier"`
|
||||||
|
MaxWithdrawAmount fixedpoint.Value `json:"maxWithdrawAmount"`
|
||||||
|
Positions PositionMap `json:"positions"`
|
||||||
|
TotalInitialMargin fixedpoint.Value `json:"totalInitialMargin"`
|
||||||
|
TotalMaintMargin fixedpoint.Value `json:"totalMaintMargin"`
|
||||||
|
TotalMarginBalance fixedpoint.Value `json:"totalMarginBalance"`
|
||||||
|
TotalOpenOrderInitialMargin fixedpoint.Value `json:"totalOpenOrderInitialMargin"`
|
||||||
|
TotalPositionInitialMargin fixedpoint.Value `json:"totalPositionInitialMargin"`
|
||||||
|
TotalUnrealizedProfit fixedpoint.Value `json:"totalUnrealizedProfit"`
|
||||||
|
TotalWalletBalance fixedpoint.Value `json:"totalWalletBalance"`
|
||||||
|
UpdateTime int64 `json:"updateTime"`
|
||||||
|
}
|
||||||
|
|
||||||
func NewAccount() *Account {
|
func NewAccount() *Account {
|
||||||
return &Account{
|
return &Account{
|
||||||
balances: make(BalanceMap),
|
balances: make(BalanceMap),
|
||||||
|
|
|
@ -28,6 +28,19 @@ func (s *FuturesSettings) UseIsolatedFutures(symbol string) {
|
||||||
s.IsolatedFuturesSymbol = symbol
|
s.IsolatedFuturesSymbol = symbol
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FuturesUserAsset define cross/isolated futures account asset
|
||||||
|
type FuturesUserAsset struct {
|
||||||
|
Asset string `json:"asset"`
|
||||||
|
InitialMargin fixedpoint.Value `json:"initialMargin"`
|
||||||
|
MaintMargin fixedpoint.Value `json:"maintMargin"`
|
||||||
|
MarginBalance fixedpoint.Value `json:"marginBalance"`
|
||||||
|
MaxWithdrawAmount fixedpoint.Value `json:"maxWithdrawAmount"`
|
||||||
|
OpenOrderInitialMargin fixedpoint.Value `json:"openOrderInitialMargin"`
|
||||||
|
PositionInitialMargin fixedpoint.Value `json:"positionInitialMargin"`
|
||||||
|
UnrealizedProfit fixedpoint.Value `json:"unrealizedProfit"`
|
||||||
|
WalletBalance fixedpoint.Value `json:"walletBalance"`
|
||||||
|
}
|
||||||
|
|
||||||
type MarginExchange interface {
|
type MarginExchange interface {
|
||||||
UseMargin()
|
UseMargin()
|
||||||
UseIsolatedMargin(symbol string)
|
UseIsolatedMargin(symbol string)
|
||||||
|
|
|
@ -15,6 +15,11 @@ type ExchangeFee struct {
|
||||||
TakerFeeRate fixedpoint.Value
|
TakerFeeRate fixedpoint.Value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type PositionRisk struct {
|
||||||
|
Leverage fixedpoint.Value `json:"leverage"`
|
||||||
|
LiquidationPrice fixedpoint.Value `json:"liquidationPrice"`
|
||||||
|
}
|
||||||
|
|
||||||
type Position struct {
|
type Position struct {
|
||||||
Symbol string `json:"symbol"`
|
Symbol string `json:"symbol"`
|
||||||
BaseCurrency string `json:"baseCurrency"`
|
BaseCurrency string `json:"baseCurrency"`
|
||||||
|
@ -34,20 +39,9 @@ type Position struct {
|
||||||
ExchangeFeeRates map[ExchangeName]ExchangeFee `json:"exchangeFeeRates"`
|
ExchangeFeeRates map[ExchangeName]ExchangeFee `json:"exchangeFeeRates"`
|
||||||
|
|
||||||
// Futures data fields
|
// Futures data fields
|
||||||
Isolated bool `json:"isolated"`
|
Isolated bool `json:"isolated"`
|
||||||
Leverage fixedpoint.Value `json:"leverage"`
|
UpdateTime int64 `json:"updateTime"`
|
||||||
InitialMargin fixedpoint.Value `json:"initialMargin"`
|
PositionRisk *PositionRisk
|
||||||
MaintMargin fixedpoint.Value `json:"maintMargin"`
|
|
||||||
OpenOrderInitialMargin fixedpoint.Value `json:"openOrderInitialMargin"`
|
|
||||||
PositionInitialMargin fixedpoint.Value `json:"positionInitialMargin"`
|
|
||||||
UnrealizedProfit fixedpoint.Value `json:"unrealizedProfit"`
|
|
||||||
EntryPrice fixedpoint.Value `json:"entryPrice"`
|
|
||||||
MaxNotional fixedpoint.Value `json:"maxNotional"`
|
|
||||||
PositionSide string `json:"positionSide"`
|
|
||||||
PositionAmt fixedpoint.Value `json:"positionAmt"`
|
|
||||||
Notional fixedpoint.Value `json:"notional"`
|
|
||||||
IsolatedWallet fixedpoint.Value `json:"isolatedWallet"`
|
|
||||||
UpdateTime int64 `json:"updateTime"`
|
|
||||||
|
|
||||||
sync.Mutex
|
sync.Mutex
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user