Documentation
¶
Index ¶
- Constants
- Variables
- func GenOrderId() string
- func SetIdGenerate(g *utils.IdGenerate)
- type ApiOption
- func ApiAccessKeyOption(accessKey string) ApiOption
- func ApiApiURLOption(apiURL string) ApiOption
- func ApiDebugModeOption(debugMode bool) ApiOption
- func ApiHttpClientOption(httpClient *http.Client) ApiOption
- func ApiPassPhraseOption(passPhrase string) ApiOption
- func ApiProxyURLOption(proxyURL string) ApiOption
- func ApiSecretKeyOption(secretKey string) ApiOption
- func ApiTestnetOption(testnet bool) ApiOption
- func ApiWebSocketOption(enabled bool) ApiOption
- func ApiWsURLOption(wsURL string) ApiOption
- type Balance
- type CStrategyBase
- func (s *CStrategyBase) GetOptions() (optionMap map[string]*StrategyOption)
- func (s *CStrategyBase) IsStopped() bool
- func (s *CStrategyBase) Name() string
- func (s *CStrategyBase) SetName(name string)
- func (s *CStrategyBase) SetOptions(options map[string]interface{}) error
- func (s *CStrategyBase) SetSelf(self Strategy) error
- func (s *CStrategyBase) Setup(mode TradeMode, exchanges ...interface{}) error
- func (s *CStrategyBase) StopNow()
- func (s *CStrategyBase) TradeMode() TradeMode
- type Direction
- type EmptyExchangeLogger
- func (l *EmptyExchangeLogger) Debug(args ...interface{})
- func (l *EmptyExchangeLogger) Debugf(template string, args ...interface{})
- func (l *EmptyExchangeLogger) Debugw(msg string, keysAndValues ...interface{})
- func (l *EmptyExchangeLogger) Error(args ...interface{})
- func (l *EmptyExchangeLogger) Errorf(template string, args ...interface{})
- func (l *EmptyExchangeLogger) Errorw(msg string, keysAndValues ...interface{})
- func (l *EmptyExchangeLogger) Info(args ...interface{})
- func (l *EmptyExchangeLogger) Infof(template string, args ...interface{})
- func (l *EmptyExchangeLogger) Infow(msg string, keysAndValues ...interface{})
- func (l *EmptyExchangeLogger) Sync()
- func (l *EmptyExchangeLogger) Warn(args ...interface{})
- func (l *EmptyExchangeLogger) Warnf(template string, args ...interface{})
- func (l *EmptyExchangeLogger) Warnw(msg string, keysAndValues ...interface{})
- type Event
- type Exchange
- type ExchangeLogger
- type ExchangeSim
- type IBacktest
- type Item
- type LogItem
- type LogItems
- type LogStats
- type Market
- type Order
- type OrderBook
- func (o *OrderBook) Ask() (result Item)
- func (o *OrderBook) AskAvePrice(size float64) float64
- func (o *OrderBook) AskPrice() (result float64)
- func (o *OrderBook) Bid() (result Item)
- func (o *OrderBook) BidAvePrice(size float64) float64
- func (o *OrderBook) BidPrice() (result float64)
- func (o *OrderBook) MatchAsks(size float64) (filledSize float64, avgPrice float64)
- func (o *OrderBook) MatchBids(size float64) (filledSize float64, avgPrice float64)
- func (o *OrderBook) MatchOrderbook(size float64, ob []Item) (filledSize float64, avgPrice float64)
- func (o *OrderBook) Price() float64
- func (o *OrderBook) Table() string
- type OrderOption
- type OrderParameter
- type OrderStatus
- type OrderType
- type Parameters
- type PlaceOrderOption
- func OrderActivationPriceOption(activationPrice float64) PlaceOrderOption
- func OrderBasePriceOption(basePrice float64) PlaceOrderOption
- func OrderCallbackRateOption(callbackRate float64) PlaceOrderOption
- func OrderClientOIdOption(clientOId string) PlaceOrderOption
- func OrderClosePositionOption(closePosition bool) PlaceOrderOption
- func OrderPostOnlyOption(postOnly bool) PlaceOrderOption
- func OrderPriceTypeOption(priceType string) PlaceOrderOption
- func OrderReduceOnlyOption(reduceOnly bool) PlaceOrderOption
- func OrderStopPxOption(stopPx float64) PlaceOrderOption
- func OrderTimeInForceOption(timeInForce string) PlaceOrderOption
- type PlaceOrderParameter
- type Position
- type Record
- type SpotAsset
- type SpotBalance
- type SpotExchange
- type SpotExchangeSim
- type SpotStrategyBase
- func (s *SpotStrategyBase) GetOptions() (optionMap map[string]*StrategyOption)
- func (s *SpotStrategyBase) Name() string
- func (s *SpotStrategyBase) SetName(name string)
- func (s *SpotStrategyBase) SetOptions(options map[string]interface{}) error
- func (s *SpotStrategyBase) SetSelf(self Strategy) error
- func (s *SpotStrategyBase) Setup(mode TradeMode, exchanges ...interface{}) error
- func (s *SpotStrategyBase) TradeMode() TradeMode
- type Stats
- type Strategy
- type StrategyBase
- func (s *StrategyBase) GetOptions() (optionMap map[string]*StrategyOption)
- func (s *StrategyBase) IsStopped() bool
- func (s *StrategyBase) Name() string
- func (s *StrategyBase) SetName(name string)
- func (s *StrategyBase) SetOptions(options map[string]interface{}) error
- func (s *StrategyBase) SetSelf(self Strategy) error
- func (s *StrategyBase) Setup(mode TradeMode, exchanges ...interface{}) error
- func (s *StrategyBase) StopNow()
- func (s *StrategyBase) TradeMode() TradeMode
- type StrategyOption
- type Trade
- type TradeMode
- type WSEvent
- type WebSocket
Constants ¶
const ( SimEventKey = "event" SimEventOrder = "order" // 委托 SimEventDeal = "deal" // 成交 )
回测交易撮合事件类型
const ( ContractTypeNone = "" // Non-delivery contract 非交割合约 ContractTypeW1 = "W1" // week 当周合约 ContractTypeW2 = "W2" // two week 次周合约 ContractTypeM1 = "M1" // month 月合约 ContractTypeQ1 = "Q1" // quarter 季度合约 ContractTypeQ2 = "Q2" // two quarter 次季度合约 )
ContractType 合约类型
const ( PERIOD_1MIN = "1m" PERIOD_3MIN = "3m" PERIOD_5MIN = "5m" PERIOD_15MIN = "15m" PERIOD_30MIN = "30m" PERIOD_60MIN = "60m" PERIOD_1H = "1h" PERIOD_2H = "2h" PERIOD_3H = "3h" PERIOD_4H = "4h" PERIOD_6H = "6h" PERIOD_8H = "8h" PERIOD_12H = "12h" PERIOD_1DAY = "1d" PERIOD_3DAY = "3d" PERIOD_1WEEK = "1w" PERIOD_1MONTH = "1M" PERIOD_1YEAR = "1y" )
K线周期
const (
// StrategyOptionTag 选项Tag
StrategyOptionTag = "opt"
)
Variables ¶
Functions ¶
func GenOrderId ¶ added in v1.2.0
func GenOrderId() string
func SetIdGenerate ¶ added in v1.2.0
func SetIdGenerate(g *utils.IdGenerate)
Types ¶
type ApiOption ¶ added in v1.1.1
type ApiOption func(p *Parameters)
func ApiAccessKeyOption ¶ added in v1.1.1
func ApiApiURLOption ¶ added in v1.1.4
func ApiDebugModeOption ¶ added in v1.1.1
func ApiHttpClientOption ¶ added in v1.1.1
func ApiPassPhraseOption ¶ added in v1.1.1
func ApiProxyURLOption ¶ added in v1.1.1
func ApiSecretKeyOption ¶ added in v1.1.1
func ApiTestnetOption ¶ added in v1.1.1
func ApiWebSocketOption ¶ added in v1.1.2
func ApiWsURLOption ¶ added in v1.1.4
type CStrategyBase ¶ added in v1.2.9
type CStrategyBase struct {
Exchanges []Exchange
SpotExchanges []SpotExchange
// contains filtered or unexported fields
}
组合策略,期现等 CStrategyBase Strategy base class
func (*CStrategyBase) GetOptions ¶ added in v1.2.9
func (s *CStrategyBase) GetOptions() (optionMap map[string]*StrategyOption)
GetOptions Returns the options of strategy
func (*CStrategyBase) IsStopped ¶ added in v1.2.10
func (s *CStrategyBase) IsStopped() bool
func (*CStrategyBase) Name ¶ added in v1.2.9
func (s *CStrategyBase) Name() string
func (*CStrategyBase) SetName ¶ added in v1.2.9
func (s *CStrategyBase) SetName(name string)
func (*CStrategyBase) SetOptions ¶ added in v1.2.9
func (s *CStrategyBase) SetOptions(options map[string]interface{}) error
SetOptions Sets the options for the strategy
func (*CStrategyBase) SetSelf ¶ added in v1.2.9
func (s *CStrategyBase) SetSelf(self Strategy) error
SetSelf 设置 self 对象
func (*CStrategyBase) Setup ¶ added in v1.2.9
func (s *CStrategyBase) Setup(mode TradeMode, exchanges ...interface{}) error
Setup Setups the exchanges
func (*CStrategyBase) StopNow ¶ added in v1.2.10
func (s *CStrategyBase) StopNow()
func (*CStrategyBase) TradeMode ¶ added in v1.2.9
func (s *CStrategyBase) TradeMode() TradeMode
type EmptyExchangeLogger ¶ added in v1.2.1
type EmptyExchangeLogger struct {
}
EmptyExchangeLogger 交易所撮合日志
func (*EmptyExchangeLogger) Debug ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Debug(args ...interface{})
func (*EmptyExchangeLogger) Debugf ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Debugf(template string, args ...interface{})
func (*EmptyExchangeLogger) Debugw ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Debugw(msg string, keysAndValues ...interface{})
func (*EmptyExchangeLogger) Error ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Error(args ...interface{})
func (*EmptyExchangeLogger) Errorf ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Errorf(template string, args ...interface{})
func (*EmptyExchangeLogger) Errorw ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Errorw(msg string, keysAndValues ...interface{})
func (*EmptyExchangeLogger) Info ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Info(args ...interface{})
func (*EmptyExchangeLogger) Infof ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Infof(template string, args ...interface{})
func (*EmptyExchangeLogger) Infow ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Infow(msg string, keysAndValues ...interface{})
func (*EmptyExchangeLogger) Sync ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Sync()
func (*EmptyExchangeLogger) Warn ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Warn(args ...interface{})
func (*EmptyExchangeLogger) Warnf ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Warnf(template string, args ...interface{})
func (*EmptyExchangeLogger) Warnw ¶ added in v1.2.1
func (l *EmptyExchangeLogger) Warnw(msg string, keysAndValues ...interface{})
type Event ¶
type Event struct {
// contains filtered or unexported fields
}
type Exchange ¶ added in v1.1.2
type Exchange interface {
// 获取 Exchange 名称
GetName() (name string)
// 获取交易所时间(ms)
GetTime() (tm int64, err error)
// 获取账号余额
GetBalance(currency string) (result *Balance, err error)
// 获取订单薄(OrderBook)
GetOrderBook(symbol string, depth int) (result *OrderBook, err error)
// 获取K线数据
// period: 数据周期. 分钟或者关键字1m(minute) 1h 1d 1w 1M(month) 1y 枚举值:1 3 5 15 30 60 120 240 360 720 "5m" "4h" "1d" ...
GetRecords(symbol string, period string, from int64, end int64, limit int) (records []*Record, err error)
// 设置合约类型
// currencyPair: 交易对,如: BTC-USD(OKEX) BTC(HBDM)
// contractType: W1,W2,Q1,Q2
SetContractType(currencyPair string, contractType string) (err error)
// 获取当前设置的合约ID
GetContractID() (symbol string, err error)
// 设置杠杆大小
SetLeverRate(value float64) (err error)
// 开多
OpenLong(symbol string, orderType OrderType, price float64, size float64) (result *Order, err error)
// 开空
OpenShort(symbol string, orderType OrderType, price float64, size float64) (result *Order, err error)
// 平多
CloseLong(symbol string, orderType OrderType, price float64, size float64) (result *Order, err error)
// 平空
CloseShort(symbol string, orderType OrderType, price float64, size float64) (result *Order, err error)
// 下单
PlaceOrder(symbol string, direction Direction, orderType OrderType, price float64, size float64,
opts ...PlaceOrderOption) (result *Order, err error)
// 获取活跃委托单列表
GetOpenOrders(symbol string, opts ...OrderOption) (result []*Order, err error)
// 获取委托信息
GetOrder(symbol string, id string, opts ...OrderOption) (result *Order, err error)
// 撤销全部委托单
CancelAllOrders(symbol string, opts ...OrderOption) (err error)
// 撤销单个委托单
CancelOrder(symbol string, id string, opts ...OrderOption) (result *Order, err error)
// 修改委托
AmendOrder(symbol string, id string, price float64, size float64, opts ...OrderOption) (result *Order, err error)
// 获取持仓
GetPositions(symbol string) (result []*Position, err error)
// 订阅成交记录
SubscribeTrades(market Market, callback func(trades []*Trade)) error
// 订阅L2 OrderBook
SubscribeLevel2Snapshots(market Market, callback func(ob *OrderBook)) error
// 订阅委托
SubscribeOrders(market Market, callback func(orders []*Order)) error
// 订阅持仓
SubscribePositions(market Market, callback func(positions []*Position)) error
// 调用其他功能
IO(name string, params string) (string, error)
}
Exchange 交易所接口
type ExchangeLogger ¶ added in v1.1.13
type ExchangeLogger interface {
// Debug Using:log.Debug("test")
Debug(args ...interface{})
// Debugf Using:log.Debugf("test:%s", err)
Debugf(template string, args ...interface{})
// Debugw Using:log.Debugw("test", "field1", "value1", "field2", "value2")
Debugw(msg string, keysAndValues ...interface{})
Info(args ...interface{})
Infof(template string, args ...interface{})
Infow(msg string, keysAndValues ...interface{})
Warn(args ...interface{})
Warnf(template string, args ...interface{})
Warnw(msg string, keysAndValues ...interface{})
Error(args ...interface{})
Errorf(template string, args ...interface{})
Errorw(msg string, keysAndValues ...interface{})
// 同步,确保日志写入
Sync()
}
ExchangeLogger 交易所撮合日志
type ExchangeSim ¶ added in v1.1.10
type ExchangeSim interface {
// 设置回测组件
SetBacktest(backtest IBacktest)
// 设置交易撮合日志组件
SetExchangeLogger(l ExchangeLogger)
// 运行一次(回测系统调用)
RunEventLoopOnce() (err error) // Run sim match for backtest only
}
ExchangeSim 模拟交易所接口
type LogItem ¶
type LogItem struct {
Time time.Time `json:"time"`
RawTime time.Time `json:"raw_time"`
Prices []float64 `json:"prices"`
//Ask float64 `json:"ask"`
//Bid float64 `json:"bid"`
Stats []LogStats `json:"stats"`
}
func (*LogItem) TotalEquity ¶
type Market ¶ added in v0.9.9
type Market struct {
Symbol string // BTCUSDT(OKEX)/XBTUSD(BitMEX)/...
}
Market 市场信息
type Order ¶
type Order struct {
ID string `json:"id"` // ID
ClientOId string `json:"client_oid"` // 客户端订单ID
Symbol string `json:"symbol"` // 标
Time time.Time `json:"time"` // 订单时间
Price float64 `json:"price"` // 价格
StopPx float64 `json:"stop_px"` // 触发价
Amount float64 `json:"amount"` // 委托数量
AvgPrice float64 `json:"avg_price"` // 平均成交价
FilledAmount float64 `json:"filled_amount"` // 成交数量
Direction Direction `json:"direction"` // 委托方向
Type OrderType `json:"type"` // 委托类型
PostOnly bool `json:"post_only"` // 只做Maker选项
ReduceOnly bool `json:"reduce_only"` // 只减仓选项
Commission float64 `json:"commission"` // 支付的佣金
Pnl float64 `json:"pnl"` // 盈亏
UpdateTime time.Time `json:"update_time"` // 更新时间
Status OrderStatus `json:"status"` // 委托状态
ActivatePrice string `json:"activatePrice"`
PriceRate string `json:"priceRate"`
ClosePosition bool `json:"closePosition"`
}
Order 委托
type OrderBook ¶
func (*OrderBook) AskAvePrice ¶ added in v1.1.9
func (*OrderBook) BidAvePrice ¶ added in v1.1.9
func (*OrderBook) MatchOrderbook ¶ added in v1.2.3
type OrderParameter ¶ added in v1.1.3
type OrderParameter struct {
Stop bool // 是否是触发委托
}
func ParseOrderParameter ¶ added in v1.1.3
func ParseOrderParameter(opts ...OrderOption) *OrderParameter
type OrderStatus ¶
type OrderStatus int
OrderStatus 委托状态
const ( OrderStatusCreated OrderStatus = iota // 创建委托 OrderStatusRejected // 委托被拒绝 OrderStatusNew // 委托待成交 OrderStatusPartiallyFilled // 委托部分成交 OrderStatusFilled // 委托完全成交 OrderStatusCancelPending // 委托取消 OrderStatusCancelled // 委托被取消 OrderStatusUntriggered // 等待触发条件委托单 OrderStatusTriggered // 已触发条件单 )
func (OrderStatus) String ¶
func (s OrderStatus) String() string
type Parameters ¶ added in v1.1.1
type PlaceOrderOption ¶ added in v1.1.6
type PlaceOrderOption func(p *PlaceOrderParameter)
订单选项
func OrderActivationPriceOption ¶ added in v1.2.15
func OrderActivationPriceOption(activationPrice float64) PlaceOrderOption
func OrderBasePriceOption ¶ added in v1.1.6
func OrderBasePriceOption(basePrice float64) PlaceOrderOption
基础价格选项(如: bybit 需要提供此参数)
func OrderCallbackRateOption ¶ added in v1.2.15
func OrderCallbackRateOption(callbackRate float64) PlaceOrderOption
func OrderClientOIdOption ¶ added in v1.2.6
func OrderClientOIdOption(clientOId string) PlaceOrderOption
func OrderClosePositionOption ¶ added in v1.2.15
func OrderClosePositionOption(closePosition bool) PlaceOrderOption
func OrderPostOnlyOption ¶ added in v1.1.3
func OrderPostOnlyOption(postOnly bool) PlaceOrderOption
被动委托选项
func OrderPriceTypeOption ¶ added in v1.1.3
func OrderPriceTypeOption(priceType string) PlaceOrderOption
OrderPriceType 选项
func OrderReduceOnlyOption ¶ added in v1.1.3
func OrderReduceOnlyOption(reduceOnly bool) PlaceOrderOption
只减仓选项
func OrderStopPxOption ¶ added in v1.1.3
func OrderStopPxOption(stopPx float64) PlaceOrderOption
触发价格选项
func OrderTimeInForceOption ¶ added in v1.2.15
func OrderTimeInForceOption(timeInForce string) PlaceOrderOption
type PlaceOrderParameter ¶ added in v1.1.6
type PlaceOrderParameter struct {
BasePrice float64
StopPx float64
PostOnly bool
ReduceOnly bool
PriceType string
ClientOId string
TimeInForce string
ActivationPrice float64
CallbackRate float64
ClosePosition bool
}
func ParsePlaceOrderParameter ¶ added in v1.1.6
func ParsePlaceOrderParameter(opts ...PlaceOrderOption) *PlaceOrderParameter
type Position ¶
type Position struct {
Symbol string `json:"symbol"` // 标
OpenTime time.Time `json:"open_time"` // 开仓时间
OpenPrice float64 `json:"open_price"` // 开仓价
Size float64 `json:"size"` // 仓位大小
AvgPrice float64 `json:"avg_price"` // 平均价
Profit float64 `json:"profit"` //浮动盈亏
MarginType string `json:"marginType"`
IsAutoAddMargin bool `json:"isAutoAddMargin"`
IsolatedMargin float64 `json:"isolatedMargin"`
Leverage float64 `json:"leverage"`
LiquidationPrice float64 `json:"liquidationPrice"`
MarkPrice float64 `json:"markPrice"`
MaxNotionalValue float64 `json:"maxNotionalValue"`
PositionSide string `json:"positionSide"`
}
Position 持仓
type Record ¶ added in v0.9.8
type Record struct {
Symbol string `json:"symbol"` // 标
Timestamp time.Time `json:"timestamp"` // 时间
Open float64 `json:"open"` // 开盘价
High float64 `json:"high"` // 最高价
Low float64 `json:"low"` // 最低价
Close float64 `json:"close"` // 收盘价
Volume float64 `json:"volume"` // 量
}
Record 表示K线数据
type SpotAsset ¶ added in v1.2.3
type SpotAsset struct {
Name string // BTC
Available float64 // 可用
Frozen float64 // 冻结
Borrow float64 // 借币
}
现货资产
type SpotBalance ¶ added in v1.2.3
SpotBalance 现货账号资产
type SpotExchange ¶ added in v1.2.3
type SpotExchange interface {
// 获取 Exchange 名称
GetName() (name string)
// 获取交易所时间(ms)
GetTime() (tm int64, err error)
// 获取账号余额
GetBalance(currency string) (result *SpotBalance, err error)
// 获取订单薄(OrderBook)
GetOrderBook(symbol string, depth int) (result *OrderBook, err error)
// 获取K线数据
// period: 数据周期. 分钟或者关键字1m(minute) 1h 1d 1w 1M(month) 1y 枚举值:1 3 5 15 30 60 120 240 360 720 "5m" "4h" "1d" ...
GetRecords(symbol string, period string, from int64, end int64, limit int) (records []*Record, err error)
// 买
Buy(symbol string, orderType OrderType, price float64, size float64) (result *Order, err error)
// 卖
Sell(symbol string, orderType OrderType, price float64, size float64) (result *Order, err error)
// 下单
PlaceOrder(symbol string, direction Direction, orderType OrderType, price float64, size float64,
opts ...PlaceOrderOption) (result *Order, err error)
// 获取活跃委托单列表
GetOpenOrders(symbol string, opts ...OrderOption) (result []*Order, err error)
// 获取历史委托列表
GetHistoryOrders(symbol string, opts ...OrderOption) (result []*Order, err error)
// 获取委托信息
GetOrder(symbol string, id string, opts ...OrderOption) (result *Order, err error)
// 撤销全部委托单
CancelAllOrders(symbol string, opts ...OrderOption) (err error)
// 撤销单个委托单
CancelOrder(symbol string, id string, opts ...OrderOption) (result *Order, err error)
// 调用其他功能
IO(name string, params string) (string, error)
}
SpotExchange 现货交易所接口
type SpotExchangeSim ¶ added in v1.2.3
type SpotExchangeSim interface {
SpotExchange
// 设置交易撮合日志组件
SetExchangeLogger(l ExchangeLogger)
// 运行一次(回测系统调用)
RunEventLoopOnce() (err error) // Run sim match for backtest only
}
SpotExchangeSim 模拟交易所接口
type SpotStrategyBase ¶ added in v1.2.4
type SpotStrategyBase struct {
Exchanges []SpotExchange
Exchange SpotExchange
// contains filtered or unexported fields
}
SpotStrategyBase Strategy base class
func (*SpotStrategyBase) GetOptions ¶ added in v1.2.4
func (s *SpotStrategyBase) GetOptions() (optionMap map[string]*StrategyOption)
GetOptions Returns the options of strategy
func (*SpotStrategyBase) Name ¶ added in v1.2.4
func (s *SpotStrategyBase) Name() string
func (*SpotStrategyBase) SetName ¶ added in v1.2.4
func (s *SpotStrategyBase) SetName(name string)
func (*SpotStrategyBase) SetOptions ¶ added in v1.2.4
func (s *SpotStrategyBase) SetOptions(options map[string]interface{}) error
SetOptions Sets the options for the strategy
func (*SpotStrategyBase) SetSelf ¶ added in v1.2.4
func (s *SpotStrategyBase) SetSelf(self Strategy) error
SetSelf 设置 self 对象
func (*SpotStrategyBase) Setup ¶ added in v1.2.4
func (s *SpotStrategyBase) Setup(mode TradeMode, exchanges ...interface{}) error
Setup Setups the exchanges
func (*SpotStrategyBase) TradeMode ¶ added in v1.2.4
func (s *SpotStrategyBase) TradeMode() TradeMode
type Stats ¶
type Stats struct {
Start time.Time `json:"start"`
End time.Time `json:"end"`
Duration time.Duration `json:"duration"`
RunDuration time.Duration `json:"run_duration"`
EntryPrice float64 `json:"entry_price"`
ExitPrice float64 `json:"exit_price"`
EntryEquity float64 `json:"entry_equity"`
ExitEquity float64 `json:"exit_equity"`
BaHReturn float64 `json:"bah_return"` // Buy & Hold Return
BaHReturnPnt float64 `json:"bah_return_pnt"` // Buy & Hold Return
EquityReturn float64 `json:"equity_return"`
EquityReturnPnt float64 `json:"equity_return_pnt"`
AnnReturn float64 `json:"ann_return"` // 年化收益率
MaxDrawDown float64 `json:"max_draw_down"` // 最大回撤
}
Stats Back testing Statistics
func (*Stats) PrintResult ¶
func (s *Stats) PrintResult()
type Strategy ¶
type Strategy interface {
Name() string
SetName(name string)
SetSelf(self Strategy) error
//Setup(mode TradeMode, exchanges ...Exchange) error
Setup(mode TradeMode, exchanges ...interface{}) error
IsStopped() bool
StopNow()
TradeMode() TradeMode
SetOptions(options map[string]interface{}) error
Run() error
OnInit() error
OnTick() error
OnExit() error
}
Strategy interface
type StrategyBase ¶
type StrategyBase struct {
Exchanges []Exchange
Exchange Exchange
// contains filtered or unexported fields
}
StrategyBase Strategy base class
func (*StrategyBase) GetOptions ¶ added in v1.1.4
func (s *StrategyBase) GetOptions() (optionMap map[string]*StrategyOption)
GetOptions Returns the options of strategy
func (*StrategyBase) IsStopped ¶ added in v1.2.7
func (s *StrategyBase) IsStopped() bool
func (*StrategyBase) Name ¶ added in v1.1.10
func (s *StrategyBase) Name() string
func (*StrategyBase) SetName ¶ added in v1.1.10
func (s *StrategyBase) SetName(name string)
func (*StrategyBase) SetOptions ¶ added in v1.1.4
func (s *StrategyBase) SetOptions(options map[string]interface{}) error
SetOptions Sets the options for the strategy
func (*StrategyBase) SetSelf ¶ added in v1.1.4
func (s *StrategyBase) SetSelf(self Strategy) error
SetSelf 设置 self 对象
func (*StrategyBase) Setup ¶
func (s *StrategyBase) Setup(mode TradeMode, exchanges ...interface{}) error
Setup Setups the exchanges
func (*StrategyBase) StopNow ¶ added in v1.2.7
func (s *StrategyBase) StopNow()
func (*StrategyBase) TradeMode ¶ added in v1.1.4
func (s *StrategyBase) TradeMode() TradeMode
type StrategyOption ¶ added in v1.1.4
type StrategyOption struct {
Name string `json:"name"`
Description string `json:"description"`
Type string `json:"type"`
Value interface{} `json:"value"`
DefaultValue interface{} `json:"default_value"`
}
StrategyOption 策略参数
type Trade ¶ added in v0.9.10
type Trade struct {
ID string `json:"id"` // ID
Direction Direction `json:"type"` // 主动成交方向
Price float64 `json:"price"` // 价格
Amount float64 `json:"amount"` // 成交量(张),买卖双边成交量之和
Ts int64 `json:"ts"` // 订单成交时间 unix time (ms)
Symbol string `json:"omitempty"`
}
Trade 成交记录
type WebSocket ¶ added in v0.9.9
type WebSocket interface {
SubscribeTrades(market Market, callback func(trades []Trade)) error
SubscribeLevel2Snapshots(market Market, callback func(ob *OrderBook)) error
//SubscribeBalances(market Market, callback func(balance *Balance)) error
SubscribeOrders(market Market, callback func(orders []Order)) error
SubscribePositions(market Market, callback func(positions []Position)) error
}
WebSocket 代表WS连接
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
deribit-data-to-db
command
|
|
|
mongodb-to-csv
command
|
|
|
examples
|
|
|
backtest
command
|
|
|
hbdm-ws
command
|
|
|
hbdmswap-ws
command
|
|
|
live
command
|
|
|
okex-futures-ws
command
|
|
|
okex-swap-ws
command
|
|








