biz Package
The biz package provides business logic layer functionality implementation.
Main Structures
LiveOrderMgr
Live order manager for managing orders in live trading. Inherits from OrderMgr
.
OrderMgr
Base order manager class that provides basic order management functionality.
Main fields:
Account
: Account nameBarMS
: Current candlestick timestamp (milliseconds)
IOrderMgr
Order manager interface that defines basic order management methods.
Main methods:
ProcessOrders
: Process order requestsEnterOrder
: Process entry ordersExitOpenOrders
: Process exit ordersExitOrder
: Process single order exitUpdateByBar
: Update order status based on candlestickOnEnvEnd
: Handle environment endCleanUp
: Clean up resources
IOrderMgrLive
Live order manager interface, inherits from IOrderMgr
.
Additional methods:
SyncExgOrders
: Synchronize exchange ordersWatchMyTrades
: Monitor account tradesTrialUnMatchesForever
: Continuously monitor unmatched tradesConsumeOrderQueue
: Consume order queue
ItemWallet
Single currency wallet.
Main fields:
Coin
: Currency code, not trading pairAvailable
: Available balancePendings
: Locked amounts during buy/sell, key can be order IDFrozens
: Long-term frozen amounts for short positions, key can be order IDUnrealizedPOL
: Public unrealized profit/loss for this currency, used in contracts, can offset margin for other ordersUsedUPol
: Used unrealized profit/loss (used as margin for other orders)Withdraw
: Withdrawn from balance, not available for trading
BanWallets
Account wallet manager.
Main fields:
Items
: Mapping from currency to walletAccount
: Account nameIsWatch
: Whether balance changes are being monitored
Trader
交易管理器,负责处理交易策略和订单执行。
主要方法:
OnEnvJobs
: 处理环境任务FeedKline
: 处理K线数据ExecOrders
: 执行订单
Public Methods
SetupComs
Initialize basic components.
Parameters:
args
: *config.CmdArgs - Command line arguments
Returns:
*errs.Error
- Error information
Implementation Details:
- Set error printing function
- Create context and cancellation function
- Initialize data directory
- Load configuration file
- Set up logging system
- Initialize core components, exchanges, ORM, and goods modules
- Mainly used for basic infrastructure initialization during system startup
SetupComsExg
Initialize exchange-related basic components.
Parameters:
args
: *config.CmdArgs - Command line arguments
Returns:
*errs.Error
- Error information
Implementation Details:
- Call
SetupComs
to complete basic initialization - Initialize exchange ORM module
- Mainly used for initialization when exchange functionality is needed
LoadRefreshPairs
Load and refresh trading pair information.
Parameters:
dp
: data.IProvider - Data provider interfaceshowLog
: bool - Whether to display logspBar
: *utils.StagedPrg - Progress bar object
Returns:
*errs.Error
- Error information
Implementation Details:
- Refresh trading pair list
- Calculate trading pair time period scores
- Load strategy tasks
- Process incomplete orders
- Subscribe to trading pairs that need preheating
- Used during system startup or periodic trading pair information updates
AutoRefreshPairs
Automatically refresh trading pair information.
Parameters:
dp
: data.IProvider - Data provider interfaceshowLog
: bool - Whether to display logs
Implementation Details:
- Automatically call
LoadRefreshPairs
- Handle refresh failure error logs
- Used for scheduled automatic trading pair information updates
InitOdSubs
Initialize order subscriptions.
Implementation Details:
- Collect strategies that need to monitor order changes
- Add order subscription callbacks for each account
- Notify relevant strategies when order status changes
- Used for real-time order status monitoring
AddBatchJob
Add batch job.
Parameters:
account
: string - Account nametf
: string - Time framejob
: *strat.StratJob - Strategy jobisInfo
: bool - Whether it's an information type
TryFireBatches
Try to trigger batch jobs.
Parameters:
currMS
: int64 - Current timestamp in milliseconds
Returns:
int
- Number of triggered jobs
ResetVars
Reset variables.
Implementation Details:
- Reset various global mappings and variables
- Including order managers, wallets, candlestick environments, etc.
- Used for cleaning up state during system restart or reset
InitDataDir
Initialize data directory.
Returns:
*errs.Error
- Error information
GetOdMgr
Get order manager.
Parameters:
account
: string - Account name
Returns:
IOrderMgr
- Order manager interface
GetAllOdMgr
Get all order managers.
Returns:
map[string]IOrderMgr
- Mapping of account names to order managers
GetLiveOdMgr
Get live order manager.
Parameters:
account
: string - Account name
Returns:
*LiveOrderMgr
- Live order manager
CleanUpOdMgr
Clean up order manager.
Returns:
*errs.Error
- Error information
RunDataServer
Run data server.
Parameters:
args
: *config.CmdArgs - Command line arguments
Returns:
*errs.Error
- Error information
InitLiveOrderMgr
Initialize live order manager.
Parameters:
callBack
: func(od *ormo.InOutOrder, isEnter bool) - Order callback function
Implementation Details:
- Create live order managers for each account
- Set order callback function
- Used for managing real-time trading orders
InitLocalOrderMgr
Initialize local order manager.
Parameters:
callBack
: func(od *ormo.InOutOrder, isEnter bool) - Order callback functionshowLog
: bool - Whether to display logs
VerifyTriggerOds
Verify trigger orders.
StartLiveOdMgr
Start live order manager.
LoadZipKline
Load candlestick data from ZIP file.
Parameters:
inPath
: string - Input pathfid
: int - File IDfile
: *zip.File - ZIP file objectarg
: interface{} - Additional parameters
Returns:
*errs.Error
- Error information
Implementation Details:
- Parse candlestick data from ZIP file
- Support multiple data formats
- Handle timestamps and price data
- Used for historical data import
LoadCalendars
Load calendar data.
Parameters:
args
: *config.CmdArgs - Command line arguments
Returns:
*errs.Error
- Error information
Implementation Details:
- Initialize basic components
- Read calendar data in CSV format
- Save calendar information grouped by exchange
- Used for managing trading calendars
ExportKlines
Export candlestick data.
Parameters:
args
: *config.CmdArgs - Command line argumentsprg
: utils.PrgCB - Progress callback function
Returns:
*errs.Error
- Error information
Implementation Details:
- Export candlestick data for specified trading pairs
- Support multiple time periods
- Support adjustment factor processing
- Used for data analysis and backup
PurgeKlines
Clean up candlestick data.
Parameters:
args
: *config.CmdArgs - Command line arguments
Returns:
*errs.Error
- Error information
Implementation Details:
- Delete candlestick data based on specified conditions
- Support filtering by trading pair and time period
- Requires user confirmation before execution
- Used for data cleanup and maintenance
ExportAdjFactors
Export adjustment factors.
Parameters:
args
: *config.CmdArgs - Command line arguments
Returns:
*errs.Error
- Error information
Implementation Details:
- Export price adjustment factor data
- Include start time, factor values, etc.
- Support timezone settings