文华财经策略编写下单组件编写新增函数.docx
- 文档编号:9944323
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:23
- 大小:21.53KB
文华财经策略编写下单组件编写新增函数.docx
《文华财经策略编写下单组件编写新增函数.docx》由会员分享,可在线阅读,更多相关《文华财经策略编写下单组件编写新增函数.docx(23页珍藏版)》请在冰豆网上搜索。
文华财经策略编写下单组件编写新增函数
文华wh3中策略编写、下单组件编写新增函数汇总2
二.下单组件编写新增函数
1.引用数据函数
AvPrice(Code)
某合约当前均价。
用法:
AvPrice(Code)返回合约Code的当前均价,Code为某合约的合约代码
例:
VARavprice;//定义一个变量avpriceavprice=AvPrice("m1109");//price的值为合约m1109的当前均价
High(Code)
某合约当前最高价。
用法:
High(Code)返回合约Code的当前最高价,Code为某合约的合约代码
例:
VARhigh;//定义一个变量high
high=High("m1109");//high的值为合约m1109的当前最高价
Low(Code)
某合约当前最低价。
用法:
Low(Code)返回合约Code的当前最低价,Code为某合约的合约代码
例:
VARlow;//定义一个变量low
low=Low("m1109");//low的值为合约m1109的当前最低价
Position(Code,strContent)
某合约的盘口数据。
用法:
Position(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量。
例:
VARbid1;
bid1=Position("m1109","bid1");//bid1为豆粕1009的当前买1价
Price(Code)
某合约当前价格。
用法:
Price(Code)返回合约Code的当前价格,Code为某合约的合约代码
例:
VARprice;//定义一个变量price
price=Price("m1109");//price的值为合约m1109的当前价格
Volume(Code)
某合约当前成交量。
用法:
Volume(Code)返回合约Code的当前成交量,Code为某合约的合约代码
例:
VARvolume;//定义一个变量volume
volume=Volume("m1109");//volume的值为合约m1109的当前成交量
MinPrice
某合约最小变动价位。
用法:
MinPrice(Code)返回合约Code的最小变动价位,Code为某合约的合约代码
例:
VARminprice;//定义一个变量minprice
minprice=MinPrice("m1009");//minprice的值为合约m1009的最小变动价位
2.逻辑判断函数
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("m1109","min10",LastOrderTime(),Time("09:
00:
00"))合约为m1109,周期为10分钟情况下,如果最后一次下单时间与09:
00:
00在同一个周期
3.辅助函数
CurrentTime()
当前时间。
用法:
CurrentTime()返回当前时间
例:
VARCurTime;
CurTime=CurrentTime();//定义一个变量CurTime,CurTime的值为当前时间。
注意返回值是1970年1月1日至今的总秒数
DateToStr(nSec)
日期转换为字符串。
用法:
DateToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:
YY:
MM:
DD
例:
MessageOut(DateToStr(CurrentTime()));//输出当前日期
Exit()
退出程序。
用法:
Exit()退出程序。
例:
Exit();退出程序。
当组件设置为循环时,遇到Exit将停止循环,请谨慎使用。
当组件未设置为循环执行时,应该使用RETURN语句退出。
Itoa(Value)
数字转换为字符。
用法:
Itoa(Value)将Value转换成字符串,Value的为整形数值
例:
VARstr;str="数字"+Itoa(5);//str的值为"数字5"
MessageOut(Content)
输出容。
用法:
MessageOut(Content),输出Content的容。
注意:
Content可以是字符串也可以是数字
ReadGlobal(strName)
返回已注册的整形变量的值
用法:
ReadGlobal(strName);返回注册的strName的值,strName为已注册的整形变量的注册名称(字符串)。
如果strName未被注册过,返回0
例:
WriteGlabal("limit",20);
VARlimitValue;
limitValue=ReadGlobal("limit");limitValue的值为20。
ReadGlobalF(strNameF)
返回已注册的浮点型变量的值
用法:
ReadGlobalF(strNameF);返回注册的strNameF的值,strNameF为已注册的浮点型变量的注册名称(字符串),如果strNameF未被注册过,返回0.0f
例:
WriteGlabalF("Rate",0.5);
VARfRate;
fRate=ReadGlobal(Rate);fRate的值为0.5。
ReadGlobalStr(NameStr)
返回已注册的字符串变量的值
用法:
ReadGlobalStr(NameStr);返回注册的NameStr的值,NameStr为已注册的字符串变量的注册名称。
如果NameStr未被注册过,返回(空字符串)
例:
WriteGlabalStr("showStr","上升");
VARstr;
str=ReadGlobal(showStr);//str的值为"上升"。
Time(strTime)
转换字符串为时间。
用法:
Time(strTime)转换字符串strTime为时间(以总秒数表示),strTime的格式应为HH:
MM:
SS,其中0<=HH<24,0<=MM<60,0<=SS<60,如果不满足此条件,返回0
例:
time:
Time("09:
15:
00")
TimeToStr(nSec)
时间转换为字符串。
用法:
TimeToStr(nSec)把整形数值表示的时间nSec转换为字符串,nSec为时间的总秒数,返回的字符串格式为:
HH:
MM:
SS
例:
MessageOut(TimeToStr(CurrentTime())),输出当前时间
WriteGlabal(Name,Value)
注册一个整形变量。
用法:
WriteGlabal(Name,Value)。
Name为整形变量的注册名称(字符串),Value为整形变量的值
例:
WriteGlabal("Period",5)注册一个整形变量,注册名称为"Period",值为5。
WriteGlabal(NameF,ValueF)
注册一个浮点形变量
用法:
WriteGlabal(NameF,ValueF)。
NameF为浮点形变量的注册名称(字符串),ValueF为浮点形变量的值
例:
WriteGlabalF("Rate",0.5)注册一个浮点形变量,注册名称为"Rate",值为0.5。
WriteGlabalStr(NameStr,ValueStr)
注册一个字符串变量
用法:
WriteGlabalStr(NameStr,ValueStr)。
NameStr为字符串变量的注册名称(字符串),ValueStr为字符串变量的值
例:
WriteGlabalStr("showStr","上升")注册一个字符串变量,注册名称为"showStr",值为"上升"。
4.数学运算函数
ABS(Value)
取整形绝对值。
用法:
ABS(Value)返回Value的绝对值,Value是整形值
例:
VARX;
X=ABS(5);//X的值为5
ABSF(ValueF)
取浮点型的绝对值。
用法:
ABSF(ValueF)返回ValueF的绝对值,ValueF是浮点值
例:
VARX;
X=ABSF(-1.5);//X的值为1.5
5、指令状态函数
F_BuyPosition
模型某合约多头持仓。
用法:
F_BuyPosition()返回模型的多头持仓
例:
VARfmlBVol;
fmlBVol=F_BuyPosition();//定义一个变量fmlBVol,fmlBVol为模型的多头持仓。
F_SellPosition
模型某合约空头持仓。
用法:
F_SellPosition()返回模型的空头持仓
例:
VARfMLSVol;
fmlSVol=F_SellPosition();定义一个变量fmlSVol,fmlSVol为模型的空头持仓。
F_BuyAvgPrice
模型某合约多头持仓成本价。
用法:
F_BuyAvgPrice()返回模型多头持仓成本价
例:
VARprice;
price=F_BuyAvgPrice();定义一个变量price,price的值为值为模型多头持仓
F_SellAvgPrice
模型某合约空头持仓成本价。
用法:
F_SellAvgPrice()返回模型空头持仓成本价
例:
VARprice;
price=F_SellAvgPrice()定义一个变量price,price的值为模型空头持仓成本价
F_DealCode
取得当前模型的合约编码。
用法:
F_DealCode()返回模型所加载K图表的合约的合约编码(字符串)
例:
VARDealCode;
DealCode=F_DealCode();//变量DealCode的容为模型当前合约的合约编码.
F_Period
取得当前模型的周期。
用法:
F_Period()返回当前模型的周期(字符串)
例:
VARperiod;
period=F_Period();//变量period的容为当前模型所使用的周期.
F_InitBuyVol
取已经初始化的多头持仓。
用法:
F_InitBuyVol()返回模型初始化的多头持仓(整数).
例:
VARinitBuyVol;//定义一个变量记录初始多头持仓
initBuyVol=F_InitBuyVol();//取出初始多头持仓赋值给initBuyVol
F_InitSellVol
取已经初始化的空头持仓。
用法:
F_InitSellVol()返回模型初始化的空头持仓(整数).
例:
VARinitSellVol;//定义一个变量记录初始空头持仓
initSellVol=F_InitSellVol();//取出初始空头持仓赋值给initSellVol
F_FreshSig
刷新当前信号。
用法:
F_FreshSig()取一个新信号(如果模型已经发出了多个信号,取最早发出的信号,信号消失也是一种信号)返回1表示取到新信号,返回0表示失败即已经没有新信号可取。
取到新信号以后可以配合F_Sig,F_SigVol,F_SigValid,F_SigTime,F_SigPos使用
例:
IF(F_FreshSig())//如果取得了新的信号
F_Sig
取当前的信号(BK|SK|BP|SP|BPK|SPK)。
用法:
F_Sig()返回当前的信号是什么类型(BK|SK|BP|SP|BPK|SPK)例:
IF(F_Sig()==BPK&&F_SigValid()==1)//如果信号是BPK且不是信号消失状态
F_SigPrice
取当前信号发生时的价格。
用法:
F_SigPrice()取当前的信号发生时刻的价格.
例:
IF(F_SigPrice()>3500)//如果信号发生的价格大于3500
F_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当前模型某根K线的收盘价。
用法:
F_Close(n)返回倒数第n+1根K线的收盘价
例:
VARc;
c=F_Close(0);//c为最后一根K线收盘价F_Open当前模型某根K线的开盘价。
用法:
F_Open(n)返回倒数第n+1根K线的开盘价
例:
VARc;
c=F_Open(0);//c为最后一根K线开盘价F_High当前模型某根K线的最高价。
用法:
F_High(n)返回倒数第n+1根K线的最高价
例:
VARc;
c=F_High(0);//c为最后一根K线最高价F_Low当前模型某根K线的最低价。
用法:
F_Low(n)返回倒数第n+1根K线的最低价
例:
VARc;
c=F_Low(0);//c为最后一根K线最低价F_Volume当前模型某根K线的成交量。
用法:
F_Volume(n)返回倒数第n+1根K线的成交量
例:
VARc;
c=F_Volume(0);//c为最后一根K线成交量F_Opi当前模型某根K线的持仓量。
用法:
F_Opi(n)返回倒数第n+1根K线的持仓量
例:
VARc;
c=F_Opi(0);//c为最后一根K线持仓量F_Avprice
当前模型某根K线的均价。
用法:
F_Avprice(n)返回倒数第n+1根K线的均价
例:
VARc;
c=F_Avprice(0);//c为最后一根K线均价F_Variant当前模型某变量在某根K线上的值。
用法:
F_Variant(varname,n)返回模型中变量varname在倒数第n+1根K线的值
nvarname变量名类型为字符串
例:
//example.trd
...
MA5:
=MA(CLOSE,5);
...
//example.stg
VARma5;
ma5=F_Variant("MA5",0);//c收盘价5个周期简单平均移动的最后一根K线值
6.下单接口函数
LastOrderTime()
最后一次下单的时间。
用法:
LastOrderTime()返回最后一次下单的时间,以总秒数表示
例:
IF(LastOrderTime()-CurrentTime()>=300)如果距离上次下单时间超过5分钟
T_IsExchangeOpen查询合约所属交易所的状态。
用法:
T_IsExchangeOpen(Code)返回合约Code所属的交易所的开闭盘状态,开盘返回1,闭盘返回0,查询失败返回-1。
例:
VARStatus;
Status=T_IsExchangeOpen("m1009");//Status为合约m1009所属交易所当前的开闭盘状态。
当Status为1时,说明该交易所开盘;当Status为0时,说明该交易所闭盘;当Status为-1时,说明当前查询失败。
T_BuyPosition(Code)
交易系统某合约多头持仓。
用法:
T_BuyPosition(Code)返回交易系统中合约Code的多头持仓,Code为某合约的合约代码。
例:
VARBuyVol;
BuyVol=T_BuyPosition("m1109");//BuyVol为交易系统中合约代码为m1109的合约的多头持仓。
T_BuyAvgPrice(Code)
交易系统某合约多头持仓成本价。
用法:
T_BuyAvgPrice(Code)返回交易系统合约Code的多头持仓成本价,Code为某合约合约代码。
例:
VARBuyPrice;BuyPrice=T_BuyAvgPrice("m1109");//定义一个变量BuyPrice,BuyPrice的值为交易系统合约m1109多头持仓成本价
T_BuyProfitLoss(code)
交易系统某合约的多头盈亏。
用法:
T_BuyProfitLoss(code)返回交易系统合约code的多头盈亏
例:
VARBuyEarn;
BuyEarn=T_BuyProfitLoss("m1109");//定义一个变量BuyEarn,BuyEarn的值为交易系统合约m1109的多头盈亏
T_SellPosition(Code)
交易系统某合约空头持仓。
用法:
T_SellPosition(Code)返回交易系统中合约Code的空头持仓,Code为某合约的合约代码。
例:
VARSellVol;
SellVol=T_SellPosition("m1109");//SVol为交易系统中合约代码为m1109的合约的空头持仓。
T_SellAvgPrice(code)
交易系统某合约空头持仓成本价。
用法:
T_SellAvgPrice(code)返回交易系统合约code的空头持仓成本价,code为某合约合约代码。
例:
VARSellPrice;
SellPrice=T_SellAvgPrice("m1109");//定义一个变量SellPrice,SellPrice的值为交易系统合约m1109空头持仓成本价
T_SellProfitLoss(code)
交易系统某合约的空头盈亏。
用法:
T_SellProfitLoss(code)返回交易系统合约code的空头盈亏
例:
VARSellEarn;
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(字符串)
例:
VARorderID=T_Deal("m1109",0,0,5,2900);发出委托:
m1109买开5手限价2900
T_FreeMargin(Type)
可用资金。
用法T_FreeMargin(Type),返回可用资金。
Type(整数0,1)0期货1股票,返回可用资金数(小数)
例:
VARmargin;
margin=T_FreeMargin(0);//返回当前期货的可用资金数
T_Equity(Type)
权益。
用法T_Equity(Type),返回权益。
Type(整数0,1)0期货1股票,返回权益(小数)
例:
VARmargin;
margin=T_Equity(0);//返回当前期货的权益数
T_MaxOpen(Code,margin,bs)
某品种最大可开仓手数。
、
用法:
T_MaxOpen(Code,margin,bs),某品种最大可开仓手数。
Code(字符串):
合约编码,margin(小数):
保证金比例 bs(整数0,1):
0买1卖 返回该品种在当前可用资金,当前价格下的可开仓手数(整数)
例:
VARvol;
vol=T_MaxOpen("m1109",0.1,0);//变量vol为m1109的 在保证金比例为0.1下的可开仓手数
T_OrderState(OrderID)
查询委托状态。
用法:
T_OrderState(OrderID)根据委托唯一标识OrderID(字符串)查委托状态,返回值含义:
-1查询失败0挂单 1成交2被撤单 3部份成交4其它
例:
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撤单发出成功,返回其它失败
例:
IF(T_DeleteOrder
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 文华 财经 策略 编写 组件 新增 函数