将技术分析进行到底
提供专业的程序化交易解决方案

算法模型之常见问题

本文介绍在文华财经赢智8.2程序化交易平台上编写算法交易模型时经常遇到问题。


 

自定义函数有什么用?

自定义函数可以有参数,也可以没有。

自定义函数中可以定义只作用于该函数的局部变量。

自定义函数可以有返回值。也可以没有,对全局变量进行一系列的运算,最终返回到主函数中使用。

恰当的使用自定义函数,可以提高代码的可读性,简化冗余内容。

例如:

2002.1

运行结果如下:

2002.2

MOD()是没有返回值的自定义函数,用VOID声明。函数体内的b、c、e都是全局变量,所以既可以在MOD()函数中使用,也可以在主函数中使用。在编写复杂盘口模型时,可以将一些相对独立的代码写成一个自定义函数,这样能提高代码的可读性,便于测试。

ROUND()是有返回值的函数,用VAR声明,该函数带有一个参数f。diff是一个局部变量,只作用于ROUND()函数。该函数有返回值,可以对其他变量赋值。

 

如何指定数据类型?

盘口模型声明变量时不需要指定数据类型,后台会根据第一次赋值自动识别数据类型。

例如:

2002.3

运行结果如下:

2002.4

为什么a等于0,而b等于0.5呢?

因为1和2都是整型,所以计算的结果也是整型,2.0是浮点型,所以计算的结果就是浮点型。

 

用VAR声明变量与用GLOBAL_VAR声明有什么区别?

VAR定义的变量,在每次执行主函数前都被初始化默认值0,而GLOBAL_VAR定义的变量,可以继承前一次执行主函数后的值。

例如:

2002.5

运行结果如下:

2002.6

执行程序时,i被初始化为默认值0,而j继承了前一次执行后的值。

 

数组变量如何声明?有哪些使用?

声明数组变量的方式和声明普通变量时相同的,只是在声明数组变量时指定数组的长度。(最新版本可以不指定数组长度)

在对数组元素操作时,也要明确指定是哪个元素。数组元素序号可以是变量。

数组常与循环结合使用。

例如:

2002.7

运行结果如下:

2002.8

 

 

 

赞(0)
未经允许不得转载:文华程序化 » 算法模型之常见问题
分享到: (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

横冲直撞 一直到最远方