orders

package
v0.1.7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 4, 2023 License: BSD-2-Clause Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	OrderStatusNew    orderStatus = 0
	OrderStatusDone   orderStatus = 1
	OrderStatusCancel orderStatus = 2
)

Variables

This section is empty.

Functions

func GetLock

func GetLock(lt LockType, order_id string) int64

func Lock

func Lock(lt LockType, order_id string)

func Run

func Run()

func SubmitOrderCancel

func SubmitOrderCancel(order_id string) error

func UnLock

func UnLock(lt LockType, order_id string)

Types

type LockType

type LockType string
const (
	SettleLock LockType = "lock" //订单结算锁
)

type Order

type Order struct {
	Id             int64                  `xorm:"pk autoincr bigint" json:"id"`
	Symbol         string                 `xorm:"varchar(30)" json:"symbol"`
	OrderId        string                 `xorm:"varchar(30) unique(order_id) notnull" json:"order_id"`
	OrderSide      trading_core.OrderSide `xorm:"varchar(10) index(order_side)" json:"order_side"`
	OrderType      trading_core.OrderType `xorm:"varchar(10)" json:"order_type"` //价格策略,市价单,限价单
	UserId         string                 `xorm:"index(userid) notnull" json:"user_id"`
	Price          string                 `xorm:"decimal(40,20) notnull default(0)" json:"price"`
	Quantity       string                 `xorm:"decimal(40,20) notnull default(0)" json:"quantity"`
	FeeRate        string                 `xorm:"decimal(40,20) notnull default(0)" json:"fee_rate"`
	Amount         string                 `xorm:"decimal(40,20) notnull default(0)" json:"amount"`
	FreezeQty      string                 `xorm:"decimal(40,20) notnull default(0)" json:"freeze_qty"`
	FreezeAmount   string                 `xorm:"decimal(40,20) notnull default(0)" json:"freeze_amount"`
	AvgPrice       string                 `xorm:"decimal(40,20) notnull default(0)" json:"avg_price"` //订单撮合成功 结算逻辑写入的字段
	FinishedQty    string                 `xorm:"decimal(40,20) notnull default(0)" json:"finished_qty"`
	FinishedAmount string                 `xorm:"decimal(40,20) notnull default(0)" json:"finished_amount"`
	Fee            string                 `xorm:"decimal(40,20) notnull default(0)" json:"fee"`
	Status         orderStatus            `xorm:"tinyint(1) default(0)" json:"status"`
	CreateTime     int64                  `xorm:"bigint" json:"create_time"` //时间戳 精确到纳秒
	UpdateTime     utils.Time             `xorm:"timestamp updated" json:"update_time"`
}

委托记录表

func Find

func Find(symbol string, order_id string) *Order

func FindUnfinished

func FindUnfinished(symbol string, order_id string) *Order

func NewLimitOrder

func NewLimitOrder(user_id string, symbol string, side trading_core.OrderSide, price, qty string) (order *Order, err error)

func NewMarketOrderByAmount

func NewMarketOrderByAmount(user_id string, symbol string, side trading_core.OrderSide, amount string) (order *Order, err error)

func NewMarketOrderByQty

func NewMarketOrderByQty(user_id string, symbol string, side trading_core.OrderSide, qty string) (*Order, error)

func (*Order) FormatDecimal

func (o *Order) FormatDecimal(price_digit, qty_digit int) Order

func (*Order) Save

func (o *Order) Save(db *xorm.Session) error

func (*Order) TableName

func (o *Order) TableName() string

type TradeBy

type TradeBy int
const (
	TradeBySell TradeBy = 1
	TradeByBuy  TradeBy = 2
)

type TradeLog

type TradeLog struct {
	Id         int64      `xorm:"pk autoincr bigint" json:"id"`
	Symbol     string     `xorm:"-" json:"-"`
	TradeId    string     `xorm:"varchar(30) unique(trade)" json:"trade_id"`
	Ask        string     `xorm:"varchar(30) unique(trade)" json:"ask"`
	Bid        string     `xorm:"varchar(30) unique(trade)" json:"bid"`
	TradeBy    TradeBy    `xorm:"tinyint(1)" json:"trade_by"`
	AskUid     string     `xorm:"notnull" json:"ask_uid"`
	BidUid     string     `xorm:"notnull" json:"bid_uid"`
	Price      string     `xorm:"decimal(40,20) notnull default(0)" json:"price"`
	Quantity   string     `xorm:"decimal(40,20) notnull default(0)" json:"quantity"`
	Amount     string     `xorm:"decimal(40,20) notnull default(0)" json:"amount"`
	AskFeeRate string     `xorm:"decimal(40,20) notnull default(0)" json:"ask_fee_rate"`
	AskFee     string     `xorm:"decimal(40,20) notnull default(0)" json:"ask_fee"`
	BidFeeRate string     `xorm:"decimal(40,20) notnull default(0)" json:"bid_fee_rate"`
	BidFee     string     `xorm:"decimal(40,20) notnull default(0)" json:"bid_fee"`
	CreateTime utils.Time `xorm:"timestamp created" json:"create_time"`
	UpdateTime utils.Time `xorm:"timestamp updated" json:"update_time"`
}

成交记录表

func (*TradeLog) FormatDecimal

func (tr *TradeLog) FormatDecimal(price_digit, qty_digit int) TradeLog

func (*TradeLog) Save

func (tr *TradeLog) Save(db *xorm.Session) error

func (*TradeLog) TableName

func (tr *TradeLog) TableName() string

type TradeStats

type TradeStats struct {
	Symbol           string `json:"symbol"`
	TodayTradeQty    string `json:"today_trade_qty"`
	TodayTradeAmount string `json:"today_trade_amount"`
	Base             string `json:"base"`
}

func NewTradeStats added in v0.1.7

func NewTradeStats() []TradeStats

type UnfinishedOrder

type UnfinishedOrder struct {
	Order Order `xorm:"extends"`
}

未完全成交的委托订单记录表

func (*UnfinishedOrder) Save

func (u *UnfinishedOrder) Save(db *xorm.Session) error

func (*UnfinishedOrder) TableName

func (u *UnfinishedOrder) TableName() string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL