ctp

package module
v1.0.2 Latest Latest
Warning

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

Go to latest
Published: Mar 12, 2022 License: Apache-2.0 Imports: 11 Imported by: 0

README

basics

  1. make install

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func ConvertToString

func ConvertToString(text string, srcCode string, tagCode string) string

func CurDirectory

func CurDirectory() string

func Decimal

func Decimal(f float64, n int) float64

float64 保留几位小数点

func DoPrint

func DoPrint(env, msg string)

func Float64ToString

func Float64ToString(f float64) string

float64 转 string

func IntToString

func IntToString(i int) string

int 转 string

func PathExists

func PathExists(path string) (bool, error)

func StringToFloat64

func StringToFloat64(str string) float64

string 转 float64

func StringToInt

func StringToInt(str string) int

string 转 int

func TransInputOrder

func TransInputOrder(pOrder CThostFtdcInputOrderField) model.OrderInfo

报单响应

func TransOrderInfo

func TransOrderInfo(pOrder CThostFtdcOrderField) model.OrderInfo

获得报单结构体数据

func TransPositionInfo

func TransPositionInfo(mInstrumentInfo model.InstrumentInfo, pField CThostFtdcInvestorPositionField) model.Position

获得持仓结构体数据

func TrimSpace

func TrimSpace(str string) string

去掉左右两边空格

Types

type CBFuncName

type CBFuncName string
const (
	TradeInitFinish CBFuncName = "TradeInitFinish"

	CBFNError                    CBFuncName = "RspInfoError"
	CBFNConnected                CBFuncName = "OnConnected"
	CBFNDisConnected             CBFuncName = "OnDisConnected"
	CBFNRspLogin                 CBFuncName = "RspLogin"
	CBFNRspAuth                  CBFuncName = "RspAuth"
	CBFNRspSettlementInfoConfirm CBFuncName = "CBFNRspSettlementInfoConfirm"
	CBFNOnRspSubMarket           CBFuncName = "OnRspSubMarket"
	CBFNOnRspUnSubMarketData     CBFuncName = "OnRspUnSubMarketData"
	CBFNOnRtnDepthMarketData     CBFuncName = "OnRtnDepthMarketData" //tick

	CBFNOnRspQryInstrument CBFuncName = "OnRspQryInstrument"
	CBFNOnRspQryInstStatus CBFuncName = "OnRspQryInstStatus"

	CBFNOnRspQryTradingAccount   CBFuncName = "OnRspQryTradingAccount"
	CBFNOnRspQryOrder            CBFuncName = "OnRspQryOrder"
	CBFNOnRtnOrder               CBFuncName = "OnRtnOrder"
	CBFNOnRspQryInvestorPosition CBFuncName = "OnRspQryInvestorPosition"

	CBFNOnRtnTrade       CBFuncName = "OnRtnTrade"
	CBFNRspOrderInsert   CBFuncName = "RspOrderInsert"
	CBFNOnRspOrderAction CBFuncName = "OnRspOrderAction"
)

type Config

type Config struct {
	TradeFront []string
	QuoteFront []string
	BrokerID   string
	Password   string
	UserID     string
	AppID      string
	AuthCode   string
	Products   []string
}

type CtpQuote

type CtpQuote struct {
	Conf Config
	// 行情模块 api
	QuoteApi   CThostFtdcMdApi
	TradingDay string // 当前交易日期
	TradeMonth string // 当前交易月份
	RequestId  int    // 行情请求编号
	// 行情程序是否已登录过
	IsMdLogin bool
	Products  []string // 需要接收行情的品种(大写)

	CB map[CBFuncName]func(interface{}) //callback
	// contains filtered or unexported fields
}

func NewCtpQuote

func NewCtpQuote(env string, cfg Config, sPath string) *CtpQuote

func (*CtpQuote) GetMdRequestId

func (q *CtpQuote) GetMdRequestId() int

获得行情请求编号

func (*CtpQuote) Handler

func (q *CtpQuote) Handler(name CBFuncName, data interface{})

func (*CtpQuote) IsError

func (q *CtpQuote) IsError(pRspInfo CThostFtdcRspInfoField) bool

行情系统错误通知

func (*CtpQuote) OnFrontConnected

func (q *CtpQuote) OnFrontConnected()

当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。

func (*CtpQuote) OnFrontDisconnected

func (q *CtpQuote) OnFrontDisconnected(nReason int)

当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。 服务器已断线,该函数也会被调用。【api 会自动初始化程序,并重新登陆】

func (*CtpQuote) OnRspSubMarketData

func (q *CtpQuote) OnRspSubMarketData(pField CThostFtdcSpecificInstrumentField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

订阅行情应答

func (*CtpQuote) OnRspUnSubMarketData

func (q *CtpQuote) OnRspUnSubMarketData(pField CThostFtdcSpecificInstrumentField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

退订行情应答

func (*CtpQuote) OnRspUserLogin

func (q *CtpQuote) OnRspUserLogin(pRspUserLogin CThostFtdcRspUserLoginField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

登录请求响应

func (*CtpQuote) OnRtnDepthMarketData

func (q *CtpQuote) OnRtnDepthMarketData(pField CThostFtdcDepthMarketDataField)

深度行情通知

func (*CtpQuote) Register

func (q *CtpQuote) Register(name CBFuncName, cb func(interface{}))

func (*CtpQuote) ReqUserLogin

func (q *CtpQuote) ReqUserLogin()

行情用户登录

func (*CtpQuote) Start

func (q *CtpQuote) Start()

func (*CtpQuote) Stop

func (q *CtpQuote) Stop()

func (*CtpQuote) SubscribeMarketData

func (q *CtpQuote) SubscribeMarketData(InstrumentID []string) int

订阅行情

func (*CtpQuote) UnSubscribeMarketData

func (q *CtpQuote) UnSubscribeMarketData(InstrumentID []string) int

退订行情

type CtpTrade

type CtpTrade struct {
	Conf Config
	// 交易模块 api
	TraderApi    CThostFtdcTraderApi
	TradingDay   string // 当前交易日期
	TradeMonth   string // 当前交易月份
	RequestId    int    // 交易请求编号
	IsTraderInit bool   // 交易系统是否已经初始化了
	// 交易程序是否初始化完成(自动完成如下动作:交易账号登陆、结算单确认、查询合约、查询资金账户、查询用户报单、查询用户持仓 后算完成)
	IsTraderInitFinish bool
	// 交易程序是否已登录过
	IsTraderLogin bool

	Account     model.AccountInfo
	Instruments sync.Map //合约信息
	InstStatus  sync.Map //合约状态
	Orders      sync.Map //报单记录
	Positions   sync.Map //持仓记录

	Products  []string                         // 需要接收行情的品种(大写)
	LockOrder bool                             //订单状态需要刷新
	LockPos   bool                             //持仓需要刷新
	LockAcc   bool                             //账户需要刷新
	CB        map[CBFuncName]func(interface{}) //callback
	// contains filtered or unexported fields
}

Ctp客户端、交易模块

func NewCtpTrade

func NewCtpTrade(env string, cfg Config, sPath string) *CtpTrade

func (*CtpTrade) FreshAll

func (t *CtpTrade) FreshAll()

func (*CtpTrade) GetTraderRequestId

func (t *CtpTrade) GetTraderRequestId() int

获得交易请求编号

func (*CtpTrade) Handler

func (q *CtpTrade) Handler(name CBFuncName, data interface{})

func (*CtpTrade) IsError

func (t *CtpTrade) IsError(pRspInfo CThostFtdcRspInfoField) bool

func (*CtpTrade) OnErrRtnOrderAction

func (t *CtpTrade) OnErrRtnOrderAction(pField CThostFtdcOrderActionField, pRspInfo CThostFtdcRspInfoField)

报单操作错误回报

func (*CtpTrade) OnFrontConnected

func (t *CtpTrade) OnFrontConnected()

当客户端与交易后台建立起通信连接时(还未登录前),该方法被调用。

func (*CtpTrade) OnFrontDisconnected

func (t *CtpTrade) OnFrontDisconnected(nReason int)

当客户端与交易后台通信连接断开时,该方法被调用。当发生这个情况后,API会自动重新连接,客户端可不做处理。 服务器已断线,该函数也会被调用。【api 会自动初始化程序,并重新登陆】

func (*CtpTrade) OnHeartBeatWarning

func (t *CtpTrade) OnHeartBeatWarning(nTimeLapse int)

心跳超时警告。当长时间未收到报文时,该方法被调用。

func (*CtpTrade) OnRspAuthenticate

func (t *CtpTrade) OnRspAuthenticate(pField CThostFtdcRspAuthenticateField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

客户端认证响应

func (*CtpTrade) OnRspError

func (t *CtpTrade) OnRspError(pField CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

错误应答

func (*CtpTrade) OnRspOrderAction

func (t *CtpTrade) OnRspOrderAction(pField CThostFtdcInputOrderActionField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

报单操作请求响应

func (*CtpTrade) OnRspOrderInsert

func (t *CtpTrade) OnRspOrderInsert(pField CThostFtdcInputOrderField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

报单响应(综合交易平台交易核心返回的包含错误信息的报单响应)

func (*CtpTrade) OnRspQryInstrument

func (t *CtpTrade) OnRspQryInstrument(pField CThostFtdcInstrumentField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

请求查询合约响应

func (*CtpTrade) OnRspQryInvestorPosition

func (t *CtpTrade) OnRspQryInvestorPosition(pInvestorPosition CThostFtdcInvestorPositionField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

请求查询投资者持仓(汇总)响应

func (*CtpTrade) OnRspQryOrder

func (t *CtpTrade) OnRspQryOrder(pOrder CThostFtdcOrderField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

请求查询投资者报单响应

func (*CtpTrade) OnRspQryTradingAccount

func (t *CtpTrade) OnRspQryTradingAccount(pField CThostFtdcTradingAccountField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

请求查询资金账户响应

func (*CtpTrade) OnRspSettlementInfoConfirm

func (t *CtpTrade) OnRspSettlementInfoConfirm(pField CThostFtdcSettlementInfoConfirmField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

发送投资者结算单确认响应

func (*CtpTrade) OnRspUserLogin

func (t *CtpTrade) OnRspUserLogin(pField CThostFtdcRspUserLoginField, pRspInfo CThostFtdcRspInfoField, nRequestID int, bIsLast bool)

func (*CtpTrade) OnRtnOrder

func (t *CtpTrade) OnRtnOrder(pOrder CThostFtdcOrderField)

报单通知(委托单)

func (*CtpTrade) OnRtnTrade

func (t *CtpTrade) OnRtnTrade(pTrade CThostFtdcTradeField)

成交通知(委托单在交易所成交了)

func (*CtpTrade) OrderCancel

func (t *CtpTrade) OrderCancel(instID string, OrderSysID string) int

撤消报单

func (*CtpTrade) Register

func (t *CtpTrade) Register(name CBFuncName, cb func(interface{}))

func (*CtpTrade) ReqAuthenticate

func (t *CtpTrade) ReqAuthenticate()

客户端认证

func (*CtpTrade) ReqOrderClose

func (t *CtpTrade) ReqOrderClose(instId string, dir byte, price float64, volume int) int

平仓

func (*CtpTrade) ReqOrderOpen

func (t *CtpTrade) ReqOrderOpen(instrument string, dir byte, price float64, volume int) int

开仓

func (*CtpTrade) ReqQryInstrument

func (t *CtpTrade) ReqQryInstrument(instId, exchangeId, productId string) int

请求查询合约

func (*CtpTrade) ReqQryInvestorPosition

func (t *CtpTrade) ReqQryInvestorPosition() int

请求查询投资者持仓(汇总)

func (*CtpTrade) ReqQryOrder

func (t *CtpTrade) ReqQryOrder() int

请求查询投资者报单(委托单)

func (*CtpTrade) ReqQryTradingAccount

func (t *CtpTrade) ReqQryTradingAccount() int

请求查询资金账户

func (*CtpTrade) ReqSettlementInfoConfirm

func (t *CtpTrade) ReqSettlementInfoConfirm() int

投资者结算单确认

func (*CtpTrade) ReqUserLogin

func (t *CtpTrade) ReqUserLogin()

用户登录请求

func (*CtpTrade) Start

func (t *CtpTrade) Start()

func (*CtpTrade) Stop

func (q *CtpTrade) Stop()

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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