wh9 公式类型分为3类,即基于K线数据、基于Tick逐笔数据、独立的算法交易模型
结构:定义数据区、定义环境设置、设置跨合约跨周期引用关键字、定义参数、定义变量、主程序。


源码
Data           -----------------------//1、定义数据区    
data0:"m2009";    
Setting      ----------------------- //2、定义环境设置    
DayTrade:True; //只用日内数据进行计算    
AddTimes:3;//最大可加仓次数为3次    
ImPort      -----------------------//3、设置跨合约跨周期引用关键字    
#ImPort [Hour,1,zt] As zt    
Params          -----------------------//4、定义参数    
Numeric N(5);    
Numeric M(10);    
Vars            -----------------------//5、定义变量    
Numeric Ma1;    
NumericSeries Ma2;    
Begin    
-----------------------//6、主程序    
End


1、Data:定义数据区
A.公式类型为基于K线数据、基于Tick逐笔数据或者为独立的算法交易模型都支持定义数据区;
B.使用部分函数需要在Data区定义合约,从而指定合约,Data区可定义多个合约,支持写入合约代码或文华码;
C.在函数前使用data0.的形式来调用,其中data0为合约名称,需要使用双引号标注;
D.若模型中Data区只定义了一个合约,则该函数可以不使用data0.的形式来调用,默认定义的唯一合约;若模型中Data区定义了多个合约,则该函数必须使用data0.的形式来调用;
E.定义数据区并对指定合约下单:


源码
Data    
data0:"m2009"; -----------------------//定义数据区,指定合约为豆粕2009    
Begin    
data0.A_SendOrder(Enum_Buy,Enum_Entry,2,data0.Price("open"));    
End            -----------------------//开多单


2、Setting:定义环境设置
A.定义环境设置,用于实现多样化的策略;
B.与Parmams、Vars结构并列,写入结构任意位置都可生效,不受模型从上至下计算的限制;
C.限制:同一环境设置函数只能写入一次;
D.设置启用自动持仓同步和自动出入金。


源码
Setting    
AutoFinancing:True;  -----------------------//启用自动出入金    
FinalSigging:2,0;     -----------------------//启用自动持仓同步(逐笔)


3、ImPort:设置跨合约跨周期引用关键字
A.支持设置跨合约、跨周期、跨合约跨周期、跨指标引用;
B.与Parmams、Vars结构并列,写入结构任意位置都可生效,不受模型从上至下计算的限制;
C.基于K线数据、基于Tick逐笔数据公式类型通用的函数,不支持加载在独立的算法交易模型使用;
D.函数语法同麦语言;
E.设置跨周期引用指标。


4、Params:定义参数
A.一个公式只能有一个Params关键字,放在公式开始部分,在定义变量之前;
B.参数类型:数值型(不能使用序列变量);
C.参数必须指定默认值;
D.参数不可以使用赋值符号=赋值;
E.独立的算法交易模型不支持定义参数;
F.参数定义并赋默认值。

源码
Params    
Numeric N(5);         -----------------------//定义参数N,默认值为5    
Begin    
Ma(Close,N);         -----------------------//表示5周期均线    
End

5、Vars:定义变量
A.一个公式只能有一个Vars关键字,放在公式开始部分,在定义变量之后,主程序开始之前;
B.变量类型:数值型、字符串型;
C.变量可不指定默认值,默认值为0(数值型)或空串(字符串型);
D.变量可以在主程序使用赋值符号=进行赋值;
E.变量定义与赋值:

源码
Vars    
Numeric N1;         -----------------------//定义变量N1    
Numeric N2;         -----------------------//定义变量N2    
String N3;          -----------------------//定义变量N3    
NumericArray N4;     -----------------------//定义变量N4    
Begin    
N1=3000;              -----------------------//整型赋值    
N2=88.888;           -----------------------//浮点型赋值    
N3=”股指期货”;     ---------------------//字符串型赋值    
N4[0] = 1;           -----------------------//数组型赋值    
N4[1] = 2;           -----------------------//数组型赋值    
N4[2] = 3;           -----------------------//数组型赋值    
End


6、主程序
A.格式为:
Begin
...
End

B.返回值当根K线变化;
C.模型从上至下、从左至右进行计算;
影响:
a.返回值写在指令前与写在指令后的区别
例:信号记录函数BKVOL
公式中写在开仓指令前,返回0;
公式中中写在开仓指令后返回开仓手数。     
b.多根K线计算的指标
例:


源码
If (AA > 0 && Ma(HHV(Close,5),5)) //需要多带带定义在条件外确保每根K线上都会计算    
//即应该编写为:    
HH=HHV(Close,5);    
If (AA > 0 && Ma(HH,5))


赞赏支持

免责声明:本站言论版权归原创作者所有,其原创性及文中陈述文字和内容仅代表作者个人观点,仅作参考;如果您对原创归属或转载有异议,请 举报文章 我们将补齐出处或者删除;转载本站内容请注明出处。