xyctp_test
Version:
ctp lib based on nodejs
111 lines (96 loc) • 3.58 kB
JavaScript
const { Trade } = require('../index');
class MyTrade extends Trade {
onFrontConnected() {
// super.onFrontConnected(...arguments);
let { user, td, conf } = this.ctp;
console.log('td ReqUserLogin : %s', td.reqUserLogin(user, this.ctp.nReqId()));
}
onRspUserLogin(data, rsp, nReqId, bIsLast) {
console.log('td onRspUserLogin : %s', data, rsp, nReqId, bIsLast);
let user = this.ctp.user;
// 投资者结算结果确认, 做完这一步才可以进行正常的交易
this.ctp.td.reqSettlementInfoConfirm({
brokerId: user.brokerId,
investorId: user.userId,
confirmDate: data.tradingDay,
confirmTime: data.shfeTime
}, this.ctp.nReqId());
// ctp.td.reqQryTradingAccount(user, ctp.nReqId());
//console.log('ReqQryTradingAccount=', ctp.td.reqQryTradingAccount(q, (new Date()).valueOf()/1000));
//sleep(2000);
//console.log('ReqQryInvestorPosition=', ctp.td.reqQryInvestorPosition(q, (new Date()).valueOf()/1000));
//console.log('ReqQryTrade=', ctp.td.reqQryTrade(q, (new Date()).valueOf()/1000));
//console.log('ReqQryOrder=', ctp.td.reqQryOrder(q, (new Date()).valueOf()/1000));
//console.log('ReqQryProduct=', ctp.td.reqQryProduct(q, (new Date()).valueOf()/1000));
//console.log('ReqQryInstrument=', ctp.td.reqQryInstrument(q, (new Date()).valueOf()/1000));
//console.log('-----before ReqQryContractBank-----')
// ctp.td.reqQryContractBank({
// bankId: '5',
// bankBranchId: '0000',
// brokerId: '4040',
// }, ctp.nReqId());
// console.log('-----after ReqQryContractBank-----')
//ReqFromBankToFutureByFuture
// ctp.td.reqFromFutureToBankByFuture({
// tradeCode: '202002',
// bankId: '5',
// BankBranchId: '0000',
// brokerId: '4040',
// bankAccount: '', // 是否必填, 不确定
// bankPassWord: '',
// accountId: user.userId,
// password: user.fundPassword,
// secuPwdFlag: '1',// 明文核对
// currencyId: 'CNY',
// tradeAmount: 2000
// }, ctp.nReqId());
// ctp.td.reqFromBankToFutureByFuture({
// tradeCode: '202001',
// bankId: '5',
// bankBranchId: '0000',
// brokerId: '4040',
// bankAccount: '', // 是否必填, 不确定
// bankPassWord: '',
// accountId: user.userId,
// password: user.fundPassword,
// secuPwdFlag: '1',// 明文核对
// currencyId: 'CNY',
// tradeAmount: 2000
// }, ctp.nReqId());
}
onRspUserLogout(data, rsp, nReqId, bIsLast) {
// super.onRspUserLogout(...arguments);
}
// 报单通知
onRtnOrder(data) {
// super.onRtnOrder(...arguments);
// console.log('onRtnOrder: %j', data)
}
// 成交通知
onRtnTrade(data) {
// super.onRtnTrade(...arguments);
// 在这里查资金状况, 根据判断发出通知和出金改密操作
// 平仓: OffsetFlag==3, 开仓: OffsetFlag==0
data.OffsetFlag != 0 && this.ctp.td.reqQryTradingAccount(this.ctp.user, this.ctp.nReqId());
}
onRspQryTradingAccount(data, rsp, nReqId, bIsLast) {
// super.onRspQryTradingAccount(...arguments);
}
onRspFromFutureToBankByFuture(data, rsp, nReqId, bIsLast) {
// super.onRspFromFutureToBankByFuture(...arguments);
}
onRspFromBankToFutureByFuture(data, rsp, nReqId, bIsLast) {
// super.onRspFromBankToFutureByFuture(...arguments);
// ctp.td.ReqTradingAccountPasswordUpdate({
// BrokerID: '4040',
// AccountID: '',
// OldPassword: '',
// NewPassword: '',
// CurrencyID: ''
// }, ctp.nReqId());
}
onRspTradingAccountPasswordUpdate(data, rsp, nReqId, bIsLast) {
// super.onRspTradingAccountPasswordUpdate(...arguments);
}
}
module.exports = MyTrade;