程序化交易易盛复习课程.docx
- 文档编号:7528000
- 上传时间:2023-01-24
- 格式:DOCX
- 页数:15
- 大小:20.70KB
程序化交易易盛复习课程.docx
《程序化交易易盛复习课程.docx》由会员分享,可在线阅读,更多相关《程序化交易易盛复习课程.docx(15页珍藏版)》请在冰豆网上搜索。
程序化交易易盛复习课程
程序化交易接口说明
程序化交易接口说明
序号
类别
原型
功能
1
数据类型
#defineNULL0
数据定义
PRICE_TYPE
价格定义
QUANTITY_TYPE
数量定义
DATA_TYPE
历史数据定义
DATA_PERIOD
周期定义
TRADE_CMD_TYPE
交易指令定义
TRADE_POSITION_TYPE
持仓方向定义
MARGININFO_TYPE
资金信息定义
ORDER_STATUS
交易状态定义
10
常用类
Time类
时间类
DataArray类
数组类
12
行情函数
GetSymbol函数
查询当前页面的合约代码
GetPrice函数
获取当前合约各种价格
GetQuantity函数
获取当前合约各种数量
GetData函数
获取指定合约的历史数据
16
交易函数
Print函数
输出函数
GetMarginInfo函数
获取资金信息
OrderStatus函数
查询指定订单状态
OrderType函数
查询指定订单类型
OrderOpenTime函数
查询指定订单开仓时间
OrderOpenPrice函数
查询指定订单开仓价格
OrderLots函数
查询指定订单下单数量
OrderComment函数
查询指定订单的用户注释
CommentModify函数
修改订单注释
OrderSymbol函数
查询指定订单的合约代码
NextOrdersNo函数
遍历订单函数
Open函数
开仓指令
Close函数
平仓指令
Cancel函数
撤单指令
Send函数
下单指令
1数据类型及常数定义
#defineNULL0
1.1PRICE_TYPE
enumPRICE_TYPE
{
PRICE_CLOSE=0,//最新价.
PRICE_OPEN,//开盘价.
PRICE_HIGH,//最高价.
PRICE_LOW,//最低价.
PRICE_BID,//申买价.
PRICE_ASK,//申卖价.
};
1.2QUANTITY_TYPE
enumQUANTITY_TYPE
{
QUANTITY_VOLUME=0,//成交量.
QUANTITY_POSITIONS,//持仓量.
QUANTITY_BID,//申买量.
QUANTITY_ASK,//申卖量.
};
1.3DATA_TYPE
enumDATA_TYPE
{
DATA_CLOSE=0,//收盘价.
DATA_OPEN,//开盘价.
DATA_HIGH,//最高价.
DATA_LOW,//最低价.
DATA_MEDIAN,//中间价(最高+最低)/2.
DATA_TYPICAL,//标准价,(最高+最低+收盘)/3.
DATA_WEIGHTED,//加权收盘价,(最高+最低+收盘+收盘)/4.
DATA_VOLUME,//成交量.
DATA_OPI,//持仓量.
};
1.4DATA_PERIOD
enumDATA_PERIOD
{
DATADEFAULT=0,
DATA_TICK=2,//分笔
DATA_SEC,//秒钟
DATA_SECX,//多秒钟
DATA_MIN1,//1分钟
DATA_MIN3,//3分钟
DATA_MIN5,//5分钟
DATA_MIN15,//15分钟
DATA_MIN30,//30分钟
DATA_MIN60,//60分钟
DATA_MIN120,//120分钟
DATA_MIN240,//240分钟
DATA_MINX,//多分钟
DATA_DAY,//日线
DATA_WEEK,//周线
DATA_MONTH,//月线
DATA_YEAR,//年线
DATA_DAYX//多日
};
1.5TRADE_CMD_TYPE
enumTRADE_CMD_TYPE
{
OP_BUY=1,//买入指令.
OP_SELL=3,//卖出指令.
};
1.6TRADE_POSITION_TYPE
enumTRADE_POSITION_TYPE
{
OP_OPEN=1,//开仓
OP_CLOSE=2,//平仓
OP_CLOSETODAY=3,//平今
};
1.7MARGININFO_TYPE
enumMARGININFO_TYPE
{
MT_TIN=1,//当日入金
MT_TOUT,//当日出金
MT_FEE,//手续费
MT_FREEZE,//冻结保证金
MT_MARGIN,//持仓保证金
MT_LIQUIDATAPROFIT,//平仓总盈亏
MT_FLOATPROFIT,//浮动总盈亏
MT_TLIQUIDATAPROFIT,//平仓本日盈亏
MT_TFLOATPROFIT,//浮动本日盈亏
MT_DAYPROFIT,//结算盈亏(按结算价算的当日盈亏,盯日总盈亏)
MT_YBALANCE,//上日结存
MT_YRIGHTANDBALANCE,//上日权益
MT_TBALANCE,//本日结存
MT_TRIGHTANDBALANCE,//本日权益
MT_YAVAILABLEFUND,//上日可用资金
MT_TAVAILABLEFUND,//本日可用资金
MT_RISKRATE,//风险率
MT_HOLDFUND,//持仓金额
MT_MCASHAVAILABLE,//交易所可用资金余额
MT_MFREEZE,//交易所冻结保证金
MT_MMARGIN,//交易所持仓保证金
MT_MRISKRATE,//交易所风险率
MT_PREMIUM//权利金
};
1.8ORDER_STATUS
enumORDER_STATUS//程序化交易订单状态
{
ORDER_UNKNOWN=-1,//未知状态
ORDER_INVALID,//无效订单
ORDER_QUEUE,//排队中
ORDER_PARTDEALING,//部分成交中
ORDER_PARTDEAL,//部分成交
ORDER_ALLDEAL,//全部成交
ORDER_LIQUIDATEQUEUE,//平仓中
ORDER_PARTLIQUIDATE,//部分平仓
ORDER_PARTLIQUIDATEING,//部分平仓中
ORDER_ALLLIQUIDATE//完全平仓
};
2常用类
2.1Time类
类定义
classTime
{
private:
//私有数据
tmm_tm;//时间属性
__int64m_time;//64位数字,从m_tm转化而来,当m_tm为19701/1/8:
00时,m_time=0;
public:
Time();
Time(__int64time);
Time(intnYear,intnMonth,intnDay,intnHour,intnMin,intnSec);
staticTimeGetNowTime();//得到当前客户端时间
intGetYear()constthrow();//得到当前客户端年时间
intGetMonth()constthrow();//得到当前客户端月时间
intGetDay()constthrow();//得到当前客户端日时间
intGetHour()constthrow();//得到当前客户端小时时间
intGetMinute()constthrow();//得到当前客户端分钟时间
intGetSecond()constthrow();//得到当前客户端秒时间
intGetDayOfWeek()constthrow();//得到当前客户端星期取值,其中0代表星期天,1代表星期一,以此类推
Timeoperator-(intnMinute);//减成员函数
Timeoperator+(intnMinute);//加成员函数
Time&operator-=(intnMinute);//减成员函数
Time&operator+=(intnMinute);//加成员函数
booloperator==(Timetime);//判断时间是否相等成员函数
booloperator!
=(Timetime);//判断时间是否不等成员函数
booloperator<(Timetime);//判断时间是否小于成员函数
booloperator>(Timetime);//判断时间是否大于成员函数
booloperator<=(Timetime);//判断时间是否小于等于成员函数
booloperator>=(Timetime);//判断时间是否大于等于成员函数
};
2.2DataArray类
classDataArray:
publicIDataArray
{
public:
DataArray();
DataArray(constDataArray&src);
virtualintGetSize();//取得数组元素个数
virtualboolIsEmpty();//判断是否为空数组
virtualvoidSetSize(intnSize);//设置数组个数
virtualvoidRemoveAll();//清空数组元素
virtualvoidSetAt(intnIndex,floatnewElement,__int64time);//对n个元素赋值
virtualfloat&GetAt(intnIndex);//取第n个元素
virtual__int64&GetTime(intnIndex);//取得第n个元素的生成时间
virtualfloat*GetData();//取数组指针
voidCopy(constDataArray&src);//复制数组
virtualfloat&operator[](intnIndex);//取第n个元素
virtualDataArray&operator=(constDataArray&src);//复制数组
protected:
floatm_fDefault;
float*m_pData;//theactualarrayofdata
__int64m_tDefault;
__int64*m_pTime;
intm_nSize;//#ofelements(upperBound-1)
intm_nMaxSize;//maxallocated
public:
~DataArray();
};
3Stock合约数据接口
3.1GetSymbol函数
函数原型:
intGetSymbol(char*Symbol,intMaxSize)
函数功能:
查询当前页面的合约代码,返回Symbol长度,默认为0。
参数说明:
⏹Symbol:
保存合约代码的字符串指针。
⏹MaxSize:
可以保存的最大长度。
示例:
⏹charsymbol[20];
⏹inttype=GetSymbol(symbol,20);
3.2GetPrice函数
函数原型:
floatGetPrice(PRICE_TYPEtype)
函数功能:
获取当前合约各种价格,价格类型的描述存储在PRICE_TYPE枚举类型中。
参数说明:
⏹type:
需要获取的价格类型。
价格类型的描述在PRICE_TYPE枚举类型中。
示例:
⏹floatbid=GetPrice(PRICE_BID);
⏹floatask=GetPrice(PRICE_ASK);
3.3GetQuantity函数
函数原型:
longGetQuantity(QUANTITY_TYPEtype)
函数功能:
获取当前合约各种数量,数量类型的描述存储在QUANTITY_TYPE枚举类型中。
参数说明:
⏹type:
需要获取的价格类型。
价格类型的描述在QUANTITY_TYPE枚举类型中。
示例:
⏹longbidvol=GetQuantity(QUANTITY_BID);
⏹longaskvol=GetQuantity(QUANTITY_ASK);
3.4GetData函数
函数原型:
longGetData(DataArray*data,DATA_TYPEtype,intnNum,
DATA_PERIODperiod,char*Symbol)
函数功能:
获取指定合约的历史数据,返回获取到历史数据的个数。
参数说明:
⏹data:
保存历史数据的数组指针。
获取到的历史数据将保存在该数组中。
⏹type:
需要获取的数据类型。
历史数据类型的描述在DATA_TYPE枚举类型中。
⏹nNum:
需要获取的数据个数,如果实际个数小于这个值,将返回实际个数,0表示全部数据。
⏹period:
需要获取数据的周期类型,历史数据类型的描述在DATA_PERIOD枚举类型中。
⏹Symbol:
需要获取数据的合约代码,默认为NULL,表示当前图表选择的合约。
示例:
⏹DataArrayclose;
⏹intn=GetData(&close,DATA_CLOSE,100,DATA_DAY,”SR001”);
4Trade交易指令接口
4.1Print函数
函数原型:
voidPrint(constchar*format,…)
函数功能:
打印信息到输出窗口,使用方法与C语言中printf函数相同。
参数说明:
⏹format:
任输出格式。
⏹…:
任意值,如有多个可用逗号分割。
示例:
⏹Print(”输出字符串%s”,”测试”);
⏹Print(”输出整数%d”,100);
4.2GetMarginInfo函数
函数原型:
floatGetMarginInfo(MARGININFO_TYPEtype)
函数功能:
获取当前用户资金信息,类型的描述存储在MARGININFO_TYPE枚举类型中。
参数说明:
⏹type:
需要获取的资金信息类型。
价格类型的描述在MARGININFO_TYPE枚举类型中。
示例:
⏹floatfund=GetMarginInfo(MT_TAVAILABLEFUND);
⏹floatfee=GetMarginInfo(MT_FEE);
4.3OrderStatus函数
函数原型:
intOrderStatus(intOrderNo)
函数功能:
查询指定订单状态,返回订单状态描述,订单状态描述在ORDER_STATUS枚举类型中。
参数说明:
⏹OrderNo:
需要查询的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹intstatus=OrderStatus(No);
4.4OrderType函数
函数原型:
intOrderType(intOrderNo)
函数功能:
查询指定订单类型,返回订单类型,返回1表示多单,3表示空单。
参数说明:
⏹OrderNo:
需要查询的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹inttype=OrderType(No);
4.5OrderOpenTime函数
函数原型:
intOrderOpenTime(intOrderNo)
函数功能:
查询指定订单开仓时间,返回订单开仓时间。
参数说明:
⏹OrderNo:
需要查询的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹inttime=OrderOpenTime(No);
4.6OrderOpenPrice函数
函数原型:
intOrderOpenPrice(intOrderNo)
函数功能:
查询指定订单开仓价格,返回开仓价格。
参数说明:
⏹OrderNo:
需要查询的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹floatprice=OrderOpenPrice(No);
4.7OrderLots函数
函数原型:
intOrderLots(intOrderNo)
函数功能:
查询指定订单下单数量,返回下单数量。
参数说明:
⏹OrderNo:
需要查询的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹intlots=OrderLots(No);
4.8CommentModify函数
函数原型:
intCommentModify(intOrderNo,char*Comment)
函数功能:
修改指定订单的用户注释,返回修改注释长度。
参数说明:
⏹OrderNo:
需要查询的订单编号。
⏹Comment:
保存注释的字符串指针。
示例:
⏹intNo=NextOrdersNo(0);
⏹inttype=CommentModify(No,”第一个程序化”);
4.9OrderComment函数
函数原型:
intOrderComment(intOrderNo,char*Comment,intMaxSize)
函数功能:
查询指定订单的用户注释,返回注释长度。
参数说明:
⏹OrderNo:
需要查询的订单编号。
⏹Comment:
保存注释的字符串指针。
⏹MaxSize:
可以保存的最大长度。
示例:
⏹intNo=NextOrdersNo(0);
⏹charcomment[100];
⏹inttype=OrderComment(No,comment,100);
4.10OrderSymbol函数
函数原型:
intOrderSymbol(intOrderNo,char*Symbol,intMaxSize)
函数功能:
查询指定订单的合约代码,返回合约代码长度。
参数说明:
⏹OrderNo:
需要查询的订单编号。
⏹Symbol:
保存合约代码的字符串指针。
⏹MaxSize:
可以保存的最大长度。
示例:
⏹intNo=NextOrdersNo(0);
⏹charsymbol[20];
⏹inttype=OrderSymbol(No,symbol,20);
4.11NextOrdersNo函数
函数原型:
intNextOrdersNo(intOrderNo)
函数功能:
遍历订单函数,返回下一个订单编号,返回值小于等于零表示该订单无后续订单。
参数说明:
⏹OrderNo:
需要查询的订单编号,小于等于零表示查询第一个订单编号。
示例:
⏹intNo1=NextOrdersNo(0);
⏹intNo2=NextOrdersNo(No1);
4.12Open函数
函数原型:
intOpen(TRADE_CMD_TYPECMD,floatPrice,intVolume,char*comment,char*symbol)
函数功能:
开仓指令,下单成功返回订单编号,返回值小于零表示开仓失败。
参数说明:
⏹CMD:
买卖方向,OP_BUY为买入开仓,OP_SELL为买出开仓。
⏹Price:
开仓价格。
⏹Volume:
开仓数量。
⏹comment:
用户注释,默认为空。
⏹symbol:
开仓合约代码,默认为当前图表选择品种。
示例:
⏹intNo=Open(OP_BUY,8000,5);
⏹intNo=Open(OP_SELL,3450,1,”comment”,”SR001”);
4.13Close函数
函数原型:
intClose(intOrderNo)
函数功能:
平仓指令,若下单成功则返回订单编号,否则返回零或负数。
参数说明:
⏹OrderNo:
需要平仓的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹intNo2=Close(No);
4.14Cancel函数
函数原型:
intCancel(intOrderNo)
函数功能:
撤单指令,若指令发送成功则返回订单编号,否则返回零或负数。
参数说明:
⏹OrderNo:
需要撤单的订单编号。
示例:
⏹intNo=NextOrdersNo(0);
⏹intNo2=Cancel(No);
4.15Send函数
函数原型:
intSend(TRADE_CMD_TYPECMD,TRADE_POSITION_TYPEPosition,
floatPrice,intVolume,char*symbol)
函数功能:
下单指令,下单成功返回订单ID,返回值小于零表示下单失败。
参数说明:
⏹CMD:
买卖方向,OP_BUY为买入,OP_SELL为买出。
⏹Position:
开平标志,OP_OPEN为开仓,OP_CLOSE为平仓。
⏹Price:
开仓价格。
⏹Volume:
开仓数量。
⏹symbol:
开仓合约代码,默认为当前图表选择品种。
示例:
⏹intID=Send(OP_BUY,OP_OPEN,8000,5);
⏹intID=Send(OP_SELL,OP_CLOSE,3401,1,”comment”,”SR001”);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序化 交易 复习 课程
![提示](https://static.bdocx.com/images/bang_tan.gif)