麦语言自编下单组件函数列表.doc_第1页
麦语言自编下单组件函数列表.doc_第2页
麦语言自编下单组件函数列表.doc_第3页
麦语言自编下单组件函数列表.doc_第4页
麦语言自编下单组件函数列表.doc_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

麦语言自编下单组件函数列表目录自编下单组件支持的函数21.引用数据函数 (8)22.逻辑判断函数(1)33.辅助函数 (24)34.数学运算函数(6)85.指令状态函数(33)96.下单接口函数(36)157.套利函数(10)24自编下单组件支持的函数1.引用数据函数 (8)AvPrice(Code)某合约当前的均价某合约当前均价。用法:AvPrice(Code)返回合约Code的当前均价,Code为某合约的合约代码例:VAR avprice;/定义一个变量avpriceavprice=AvPrice(m1109); /price的值为合约m1109的当前均价High(Code)某合约当前最高价某合约当前最高价。用法:High(Code)返回合约Code的当前最高价,Code为某合约的合约代码例:VAR high;/定义一个变量highhigh=High(m1109); /high的值为合约m1109的当前最高价Low(Code)某合约当前最低价某合约当前最低价。用法:Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码例:VAR low;/定义一个变量lowlow=Low(m1109); /low的值为合约m1109的当前最低价MinPrice(Code)某合约最小变动价位某合约最小变动价位。用法:MinPrice(Code)返回合约Code的最小变动价位,Code为某合约的合约代码例:VAR minprice;/定义一个变量minpriceminprice=MinPrice(m1009); /minprice的值为合约m1009的最小变动价位Offers(Code,strContent)某合约的买卖盘报价或买卖量某合约的盘口数据。用法:Offers (Code,strContent) 返回某合约某种盘口数据Code为某合约的合约代码(字符串), strContent为所要取得内容,可选以下内容bid1,bid2,bid3,bid4,bid5,ask1,ask2,ask3,ask4,ask5,bidvol1,bidvol2,bidvol3,bidvol4,bidvol5,askvol1,askvol2,askvol3,askvol4,askvol5,分别表示买1-买5 卖1-卖5 买1量-买5量 卖1量-卖5量。例:VAR bid1;bid1= Offers (m1109,bid1);/bid1为豆粕1009的当前买1价Open(Code)某合约当前开盘价某合约当天开盘价。用法:Open(Code)返回合约Code的当天开盘价,Code为某合约的合约代码例:VAR open;/定义一个变量openopen=Open(m1405); /open的值为合约m1405的当天开盘价Price(Code)某合约当前价格某合约当前价格。用法:Price(Code)返回合约Code的当前价格,Code为某合约的合约代码例:VAR price;/定义一个变量priceprice=Price(m1109); /price的值为合约m1109的当前价格Volume(Code)某合约当前成交量某合约当前成交量。用法:Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码例:VAR volume;/定义一个变量volumevolume=Volume(m1109); /volume的值为合约m1109的当前成交量2.逻辑判断函数(1)SamePeriod(Code,PeriodStr,T1,T2)判断两个时间是否是同一个周期判断两个时间是否是同一个周期。用法:SamePeriod(Code,PeriodStr,T1,T2)如果T1,T2是同一个周期返回1,否则返回0,Code:合约的合约代码,PeriodStr可以取以下值的其中之一:min1,min3,min5,min10,min15,min30,1hour,3hour,8hour,1day,week,month,T1和T2是以总秒数表示的时间例:IF(SamePeriod(m1009,min10,LastOrderTime(),Time(09:00:00)合约为m1009,周期为10分钟情况下,如果最后一次下单时间与09:00:00在同一个周期内3.辅助函数 (24)CurrentTime()当前时间当前时间。用法:CurrentTime()返回当前时间(以总秒数表示)例:VAR CurTime; CurTime=CurrentTime(); /定义一个变量CurTime,CurTime的值为当前时间。注意返回值是1970年1月1日至今的总秒数CurrentServerTime取最后一笔行情的服务器时间取最后一笔行情上的服务器时间。用法:1、CurrentServerTime()取最后一笔行情上的服务器时间2、该函数仅适用于被绑定运行的下单组件,不适用于独立运行的下单组件例:VAR CurrentServerTime; CurrentServerTime=CurrentServerTime(); /定义一个变量CurrentServerTime,CurrentServerTime的值为最后一笔行情上的服务器时间。注意返回的是加载数据合约的最后一笔行情上的服务器时间。DateToStr(nSec)日期转换为字符串日期转换为字符串。用法:DateToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:YY:MM:DD例:MessageOut(DateToStr(CurrentTime() ) ); /输出当前日期DYNINFO(Code, Type)获取某合约的60秒速涨、现增仓、现涨获取某合约的60秒速涨、现增仓、现涨。用法:DYNINFO(Code, Type) Code:合约代码 Type:1,60秒速涨 2,现增仓 3,现涨例:MessageOut(DYNINFO(IF1309, 1); /输出股指1309的60秒速涨。Exit()退出程序退出程序。用法:Exit()退出程序。例:Exit(); 退出程序。当组件设置为循环时,遇到Exit将停止循环,请谨慎使用。当组件未设置为循环执行时,应该使用RETURN语句退出。说明:退出组件程序后,组件后续不再运行。GLOBAL_VAR定义全局变量GLOBAL_VAR 定义全局变量注:1、相当于原来注册、读取变量的写法2、可以自动识别 整形、浮点型、字符串类型3、函数参数中,不能使用GLOBAL_VAR类型变量例:GLOBAL_VAR A1;VOID MAIN() IF(A15) A1=A1+1; MessageOut(A1); 与下面的写法意思相同VAR A1;VOID MAIN() A1=ReadGlobal(A1); IF(A15) A1=A1+1; WriteGlobal(A1,A1); MessageOut(A1); Hour(time)小时取得当前时间的小时注:time的取值:可以为本机时间CurrentTime(),也可以为交易所时间CurrentServerTime()例:VAR hour; hour = Hour(CurrentTime();/定义一个变量hour,hour的值为当前本机时间的小时Itoa(Value)数字转换为自负数字转换为字符。用法:Itoa(Value)将Value转换成字符串,Value的为整形数值例:VAR str; str=数字+Itoa(5); /str的值为数字5MessageOut(Content)输出内容输出内容。用法:MessageOut(Content),输出Content的内容。注意:Content可以是字符串也可以是数字Minute(time)分钟取得当前时间的分钟注:time的取值:可以为本机时间CurrentTime(),也可以为交易所时间CurrentServerTime()例:VAR minute; minute = Minute(CurrentTime();/定义一个变量minute,minute的值为当前本机时间的分钟Month(time)月份取得当前时间的月份注:time的取值:可以为本机时间CurrentTime(),也可以为交易所时间CurrentServerTime()例:VAR month; month = Month(CurrentTime();/定义一个变量month,month的值为当前本机时间的月份Year(time)年份取得当前时间的年份注:time的取值:可以为本机时间CurrentTime(),也可以为交易所时间CurrentServerTime()例:VAR year; year = Year(CurrentTime();/定义一个变量year,year的值为当前本机时间的年份ReadGlobal(strName)读取注册变量(整形)返回已注册的整形变量的值用法:ReadGlobal(strName);返回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。如果strName未被注册过,返回0例:WriteGlabal(limit,20); VAR limitValue; limitValue=ReadGlobal(limit);limitValue的值为20。ReadGlobalF(strNameF)读取注册变量(浮点数)返回已注册的浮点型变量的值用法:ReadGlobalF(strNameF);返回注册的strNameF的值,strNameF为已注册的浮点型变量的注册名称(字符串),如果strNameF未被注册过,返回0.0f例:WriteGlabalF(Rate,0.5);VAR fRate;fRate=ReadGlobal(Rate);fRate的值为0.5。ReadGlobalStr(NameStr)读取注册变量(字符串)返回已注册的字符串变量的值用法:ReadGlobalStr(NameStr);返回注册的NameStr的值,NameStr为已注册的字符串变量的注册名称。如果NameStr未被注册过,返回(空字符串)例:WriteGlabalStr(showStr,上升);VAR str;str=ReadGlobal(showStr);/str的值为上升。Second(time)秒数取得当前时间的秒数注: time的取值:可以为本机时间CurrentTime(),也可以为交易所时间CurrentServerTime()例:VAR second;second = Second(CurrentTime();/定义一个变量second,second的值为当前本机时间的秒数Time(strTime)转换字符串为时间转换字符串为时间。用法:Time(strTime) 转换字符串strTime为时间(以总秒数表示),strTime的格式应为HH:MM:SS,其中0=HH24,0=MM60,0=SS3500) /如果当前信号发生时盘口对应的最新价格大于3500F_SigVol()取当前信号对应的手数取当前信号对应的手数。用法:F_SigVol() 取当前的信号对应的手数, 如果当前信号是BPK(5), 则返回5.例: IF(F_SigVol() = VarOpi) /如果信号的仓位等于变量VarOpi注:取当前信号对应的手数,并非默认下单手数。F_SigValid()当前信号类型当前信号是发出的,还是消失的用法:F_SigValid() 返回模型信号存在两种类型之一(信号发出,信号消失), 返回1表示信号发出, 返回0表示信号消失。例: IF(F_Sig()=BPK & F_SigValid()=1) /如果信号是BPK 且不是信号消失状态F_SigTime()当前信号的发出时间当前信号的发出时间。用法:F_SigTime() 返回当前信号的发出时间(以总秒数表示),例: IF(SamePeriod(m1009,min10,LastOrderTime(),F_SigTime() /如果取得新信号的时间与上次交易的时间是同一个周期注:返回当前信号的发出时间,并非委托下单时间。F_SigPos()当前信号在模型中是第几个有指令的语句当前信号在模型中是第几个有指令的语句。用法:F_SigPos() 如果当前信号是模型中第5个含信号的语句发出的,返回5例: IF(F_SigPos()=5) /如果当前信号是第5行发出的F_Close(n)当前模型某根K线的收盘价当前模型某根K线的收盘价。用法:F_Close(n)返回倒数第 n+1 根K线的收盘价 例:VAR c;c=F_Close(0);/c为最后一根K线收盘价F_Open(n)当前模型某根K线的开盘价当前模型某根K线的开盘价。用法:F_Open(n)返回倒数第 n+1 根K线的开盘价 例:VAR c;c=F_Open(0);/c为最后一根K线开盘价F_High(n)当前模型某根K线的最高价当前模型某根K线的最高价。用法:F_High(n)返回倒数第 n+1 根K线的最高价 例:VAR c;c=F_High(0);/c为最后一根K线最高价F_Low(n)当前模型某根K线的最低价当前模型某根K线的最低价。用法:F_Low(n)返回倒数第 n+1 根K线的最低价 例:VAR c;c=F_Low(0);/c为最后一根K线最低价F_Volume(n)当前模型某根K线的成交量当前模型某根K线的成交量。用法:F_Volume(n)返回倒数第 n+1 根K线的成交量 例:VAR c;c=F_Volume(0);/c为最后一根K线成交量F_Opi(n)当前模型某根K线的持仓量当前模型某根K线的持仓量。用法:F_Opi(n)返回倒数第 n+1 根K线的持仓量 例:VAR c; c=F_Opi(0);/c为最后一根K线持仓量F_Avprice(n)当前模型某根K线的均价当前模型某根K线的均价。用法:F_Avprice(n)返回倒数第 n+1 根K线的均价 例:VAR c; c=F_Avprice(0);/c为最后一根K线均价F_Variant(varname, n)当前模型某变量在某根K线上的值当前模型某变量在某根K线上的值。用法:F_Variant(varname, n) 返回模型中变量varname在倒数第 n+1 根K线的值nvarname 变量名 类型为字符串例:/example.trd.MA5:=MA(CLOSE,5); ./example.stgVAR ma5;ma5=F_Variant(MA5, 0);/c收盘价5个周期简单平均移动的最后一根K线值6.下单接口函数(36)T_OrderMatchAvPrice(OrderID)根据委托唯一标识OrderID获取成交均价根据委托唯一标识OrderID获取成交均价注:OrderID可参考T_Deal()函数例:GLOBAL_VAR BKID,N;VOID MAIN()VAR AvPrice; IF(N=0) BKID=T_Deal(RU0022,0,0,10,20400); N=1;AvPrice = T_OrderMatchAvPrice(BKID);MessageOut(AvPrice);LastOrderTime()最后一次下单的时间最后一次下单的时间。用法:LastOrderTime()返回最后一次下单的时间,以总秒数表示例:IF(LastOrderTime() - CurrentTime() = 300)如果距离上次下单时间超过5分钟 注:返回本组件最后一次下单的委托时间。(撤单不算)。T_IsExchangeOpen(Code)查询合约所属交易所的状态查询合约所属交易所的状态。用法:T_IsExchangeOpen(Code)返回合约Code所属的交易所的开闭盘状态,开盘返回1,闭盘返回0,查询失败返回-1。例:VAR Status; Status=T_IsExchangeOpen(m1009); /Status为合约m1009所属交易所当前的开闭盘状态。当Status为1时,说明该交易所开盘;当Status为0时,说明该交易所闭盘;当Status为-1时,说明当前查询失败。T_BuyPosition(Code)交易系统某合约多头持仓交易系统某合约多头持仓。用法:T_BuyPosition(Code)返回交易系统中合约Code的多头持仓,Code为某合约的合约代码。例:VAR BuyVol;BuyVol=T_BuyPosition(m1109); /BuyVol为交易系统中合约代码为m1109的合约的多头持仓。T_BuyRemainPosition(Code)交易系统某合约多头可用持仓交易系统某合约多头可用持仓。用法:T_BuyRemainPosition(Code)返回交易系统中合约Code的多头仓,Code为某合约的合约代码。例:VAR BuyRemainVol;BuyRemainVol=T_BuyRemainPosition(m1009); /BuyRemainVol为交易系统中合约代码为m1009的合约的多头可用持仓。T_SellRemainPosition(Code)交易系统某合约空头可用持仓交易系统某合约空头可用持仓。用法:T_SellRemainPosition(Code)返回交易系统中合约Code的空仓,Code为某合约的合约代码。例:VAR SellRemainVol;SellRemainVol=T_SellRemainPosition(m1009); /SellRemainVol为交易系统中合约代码为m1009的合约的空头可用持仓。T_SHBuyRemainPosition(code,Type)交易系统上海市场某合约多头可用持仓交易系统上海市场某合约多头可用持仓。用法:T_SHBuyRemainPosition(code,Type)返回上海市场交易系统中合约Code的多头可用持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓例:VAR BuyRemainVol; BuyRemainVol=T_SHBuyRemainPosition(ru1009,0); /BuyRemainVol为交易系统中合约代码为ru1009的合约的多头今仓可用持仓。T_SHSellRemainPosition(Code,Type)交易系统上海市场某合约空头可用持仓交易系统上海市场某合约空头可用持仓。用法:T_SHSellRemainPosition(Code,Type)返回上海市场交易交易系统中合约Code的空头可用持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓例:VAR SellRemainVol;SellRemainVol=T_SHSellRemainPosition(ru1009,0); /SellRemainVol为交易系统中合约代码为ru1009的合约的空头今仓可用持仓。T_SHBuyPosition(code,Type)交易系统上海市场某合约多头持仓交易系统上海市场某合约多头持仓。用法:T_SHBuyPosition(code,Type)返回上海市场交易系统中合约Code的多头持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓例:VAR BuyVol; BuyVol=T_SHBuyPosition(ru1009,0); /BuyVol为交易系统中合约代码为ru1009的合约的多头今仓持仓。T_SHSellPosition(Code,Type)交易系统上海市场某合约空头持仓交易系统上海市场某合约空头持仓。用法:T_SHSellPosition(Code,Type)返回上海市场交易交易系统中合约Code的空头持仓,Code为某合约的合约代码。Type:0 今仓 1 老仓例:VAR SellVol; SellVol=T_SHSellPosition(ru1009,0); /SellVol为交易系统中合约代码为ru1009的合约的空头今仓持仓。T_BuyAvgPrice(Code)交易系统某合约多头持仓成本价交易系统某合约多头持仓成本价。用法:T_BuyAvgPrice(Code)返回交易系统合约Code的多头持仓成本价,Code为某合约合约代码。例:VAR BuyPrice; BuyPrice=T_BuyAvgPrice(m1109);/ 定义一个变量BuyPrice,BuyPrice的值为交易系统合约m1109多头持仓成本价T_BuyProfitLoss(code)交易系统某合约的多头盈亏交易系统某合约的多头盈亏。用法:T_BuyProfitLoss(code)返回交易系统合约code的多头盈亏例:VAR BuyEarn;BuyEarn=T_BuyProfitLoss(m1109);/ 定义一个变量BuyEarn,BuyEarn的值为交易系统合约m1109的多头盈亏T_SellPosition(Code)交易系统某合约空头持仓交易系统某合约空头持仓。用法:T_SellPosition(Code)返回交易系统中合约Code的空头持仓,Code为某合约的合约代码。例:VAR SellVol;SellVol=T_SellPosition(m1109);/ SVol为交易系统中合约代码为m1109的合约的空头持仓。T_SellAvgPrice(code)交易系统某合约空头持仓成本价交易系统某合约空头持仓成本价。用法:T_SellAvgPrice(code)返回交易系统合约code的空头持仓成本价,code为某合约合约代码。例:VAR SellPrice;SellPrice=T_SellAvgPrice(m1109);/ 定义一个变量SellPrice,SellPrice的值为交易系统合约m1109空头持仓成本价T_SellProfitLoss(code)交易系统某合约的空头盈亏交易系统某合约的空头盈亏。用法:T_SellProfitLoss(code)返回交易系统合约code的空头盈亏例:VAR SellEarn;SellEarn=T_SellProfitLoss(m1109) 定义一个变量SellEarn,SellEarn的值为交易系统合约m1109的空头盈亏T_Deal(Code,bs,kp,vol,price)发出委托发出委托。用法:T_Deal(Code,bs,kp,vol,price),发出委托。Code(字符串):合约编码,bs(整数0,1):0 买 1 卖 ,kp(整数0,1,2):0 开 1平 2平今 Vol(整数):下单手数,Price(整数或小数):下单价格,0为市价 返回唯一委托标识OrderID(字符串)例:VAR orderID=T_Deal(m1109, 0, 0, 5, 2900); 发出委托:m1109 买开5手 限价2900T_FreeMargin(Type)可用资金可用资金。用法T_FreeMargin(Type), 返回可用资金。Type(整数 0, 1) 0期货 1股票,返回可用资金数(小数)例:VAR margin;margin=T_FreeMargin(0); /返回当前期货帐户的可用资金数T_Fee(Type)取交易里的手续费取交易里的手续费。用法T_Fee(Type),返回交易里的手续费。Type(整数 0, 1 2) 0期货 1股票 2外盘,返回权益(小数) 例:VAR margin; margin=T_Fee(0);/返回交易中的手续费。T_Equity(Type)权益权益。用法T_Equity(Type), 返回权益。Type(整数 0, 1) 0期货 1股票,返回权益(小数)例:VAR margin;margin=T_Equity(0); /返回当前期货帐户的权益数T_InitialEquity(type)期初权益取期初权益注:type的取值:0 内盘 1股票2外盘例:MessageOut(T_InitialEquity(0);T_MaxOpen(Code, margin, bs)某品种最大可开仓手数某品种最大可开仓手数。用法:T_MaxOpen(Code, margin, bs),某品种最大可开仓手数。Code(字符串):合约编码,margin(小数):保证金比例bs(整数0,1):0 买 1 卖返回该品种在当前可用资金,当前价格下的可开仓手数(整数)例:VAR vol;vol=T_MaxOpen(m1109, 0.1, 0); /变量vol为m1109 的在保证金比例为0.1 下的可开仓手数T_OffsetProfitLoss(Type)平仓盈亏平仓盈亏。用法:T_OffsetProfitLoss(Type)返回平仓盈亏。Type(整数 0,1,2) 0期货 1股票 2外盘,返回平仓盈亏(小数) 例:VAR margin; margin=T_OffsetProfitLoss( );/返回平仓盈亏。T_OrderState(OrderID)查询委托状态查询委托状态。用法:T_OrderState(OrderID)根据委托唯一标识OrderID(字符串)查委托状态,返回值含义:-1查询失败 0挂单1成交 2被撤单3部份成交 4 表示委托发送成功了,还没有回来应答,不能进行操作,需要等应答回来再进行其它操作。7、委托失败,即委托列表状态中的“废单”例:IF(T_OrderState(X)=0) 如果委托X是挂单T_OpenOrder(Code,Type)查询挂单数量查询挂单数量。用法:T_OpenOrder(Code,Type)返回未成交委托数量,Code:交易编码,Type:0所有方向;1买开;2卖平;3卖开;4买平例:IF(LastOrderTime() - CurrentTime = 300 & T_OpenOrder(ru1009,1)0) T_OpenOrder(ru1009,1) /如果距离上次下单超过5分钟,且存在买开挂单,撤掉剩余买开委托合约X的未成交委托数量T_DeleteOrder(OrderID)委托撤单委托撤单。用法:T_DeleteOrder(OrderID)根据委托唯一标识orderID(字符串)撤单,返回0表示可以撤单,并发出撤单委托;返回-1表示撤单失败或者已经成交不能进行撤单;返回-5 表示查询失败;例:IF(T_DeleteOrder(orderID)!=0)/如果撤单失败IF(T_DeleteOrder(orderID)=-1)/如果撤单失败或者已经成交不能进行撤单注:OrderID可参考T_Deal()函数T_DeleteOrderByCode(Code,Type)委托撤单(通过合约代码)委托撤单(通过合约代码)。用法:T_DeleteOrderByCode(Code,Type)委托撤单。Code:合约代码(字符串)Type:0所有方向;1买开;2卖平;3卖开;4买平 返回0撤单发出成功,返回其它失败例:T_DeleteOrderByCode(ru1009,2)撤单橡胶1009的卖平委托T_DeleteOrderAll()撤掉所有未

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论