- 注册时间
- 2013-9-23
- 在线时间
- 519 小时
- 最后登录
- 2022-4-4
- 阅读权限
- 200
管理员
MT4软件工程师
- 积分
- 6521
- 帖子
- 2771
- 主题
- 2761
|
TB编程教程 如何编写用户函数
一个用户函数由三部分组成,参数定义,变量定义,脚本正文。
语法如下:
- Params
- 参数定义语句;
- Vars
- 变量定义语句;
- Begin
- 脚本正文;
- End
复制代码
参数定义和变量定义部分在前面已经详细叙述过,脚本的正文部分将输入参数进行计算,得出函数的返回值,并通过Return返回。
例如,我们以Average为例,Average计算Price在Length周期内的平均值。Average调用Summation求和,并计算平均值,然后返回结果,脚本如下:
- Params
- NumericSeries Price(1);
- Numeric Length(10);
- Vars
- Numeric AvgValue;
- Begin
- AvgValue = Summation(Price, Length) / Length;
- Return AvgValue;
- End
复制代码
对于使用多个输出的情况,即使用引用参数的情况,我们以求N周期最大值为例进行描述,假定我们需要编写一个用户函数,该函数需要求出序列变量Price在最近Length周期内的最大值,并且要求出最大值出现的Bar和当前Bar的偏移值。脚本如下:
- Params
- NumericSeries Price(1);
- Numeric Length(10);
- NumericRef HighestBar;
- Vars
- Numeric MyVal;
- Numeric MyBar;
- Numeric i;
- Begin
- MyVal = Price;
- MyBar = 0;
- For i = 1 to Length - 1
- {
- If ( Price[i] > MyVal)
- {
- MyVal = Price[i];
- MyBar = i;
- }
- }
- HighestBar = MyBar;
- Return MyVal;
- End
复制代码
|
|