以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 交易策略发布专区 (http://weistock.com/bbs/list.asp?boardid=10) ---- 金字塔数组使用的高级编程技巧 (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=30380) |
-- 作者:admin -- 发布时间:2012/11/4 21:52:52 -- 金字塔数组使用的高级编程技巧 做为一款专业的量化交易软件,对于统计学的支持自然必不可少,金字塔在2.90版升级以来增加了大量的统计函数,但是对数组的支持确比较有限,影响到了大量统计函数的使用,从2.931版升级以来,金字塔对数组的支持更进一步增强,本教程就是着手金字塔的数组使用,结合范例,对大家一一做细致的讲解,祝大家在看完这篇教程后,都能编出更加有力的程序化交易武器。 所谓数组,就是有序数据的集合 数组的定义: variable:B[3]=\'abc\'; //定义一个含3个元素的字符串型数组B,并把所有元素初始化为\'abc\'
重新定义数组的大小:
删除数组的数据:
序列模式下数组与序列数据的转换: //范例1: 序列变量转定义数组变量 //范例2: 定义数组变量转序列变量
逐K线模式下数组转定义数组变量 IF CLOSE > OPEN THEN //下面2行调试代码 注意: 通过上述的代码我们需要注意的是,UP和DOWN数组前面我们一定要置一个空的数组,这个空数组金字塔会在逐K线执行的时候去自动的填充我们的数据. 在逐K线模式下对数组的转换操作,应该避免在循环语句中使用,因为可能会导致循环对数组数据积累而导致计算出错
使用统计函数中数组使用的举例: 例一: 利用现有的 x 值与 y 值计算直线与 y 轴的截距。截距为穿过已知的 known_x\'s 和 known_y\'s 数据点的线性回归线与 y 轴的交点。当自变量为 0(零)时,使用 INTERCEPT 函数可以决定因变量的值。例如,当所有的数据点都是在室温或更高的温度下取得的,可以用 INTERCEPT 函数预测在 0°C 时金属的电阻。 实例: 已知 y 已知 x B[1]:=6; D:INTERCEPT( A,B ,5 );
例二: 已知 y 已知 x 代码如下: B[1]:=6; D:STEYX( a,b ,7 );
例三: 代码如下: //对数组数据进行初始化 //数据转换 //计算统计结果 [此贴子已经被作者于2012-11-15 1:22:13编辑过]
|
-- 作者:看透风景 -- 发布时间:2012/11/15 4:14:24 -- MARK!~~~ |
-- 作者:恋淡月映梅 -- 发布时间:2012/11/15 8:28:18 -- 很强大 。。 |
-- 作者:300qh -- 发布时间:2012/11/15 8:39:13 -- 很暴力,很黄 |
-- 作者:pancg -- 发布时间:2012/11/15 8:50:57 -- 真强 |
-- 作者:guotx2010 -- 发布时间:2012/11/15 8:51:44 -- 非常不错 |
-- 作者:Q1304230834 -- 发布时间:2012/12/17 0:06:53 -- 谢谢 |
-- 作者:30kj -- 发布时间:2013/12/9 22:20:13 -- 以下是引用admin在2012/11/4 21:52:52的发言:
逐K线模式下数组转定义数组变量 IF CLOSE > OPEN THEN //下面2行调试代码 注意: 通过上述的代码我们需要注意的是,UP和DOWN数组前面我们一定要置一个空的数组,这个空数组金字塔会在逐K线执行的时候去自动的填充我们的数据. 在逐K线模式下对数组的转换操作,应该避免在循环语句中使用,因为可能会导致循环对数组数据积累而导致计算出错 [此贴子已经被作者于2012-11-15 1:22:13编辑过] 对于MA,这种处理是可以的,我试了一下EMA,发现EMA会按照k线的周期数进行计算,而不是按照实际的数组个数。麻烦解决下。 [此贴子已经被作者于2013/12/9 22:21:04编辑过]
|
-- 作者:30kj -- 发布时间:2013/12/17 14:05:42 -- 怎么没有回复啊!!! 对于MA,这种处理是可以的,他可以统计数组里面的实际个数来计算。但是我试了一下EMA,发现EMA会按照实际经过的k线的周期数进行计算,而不是按照数组里面实际的个数。麻烦解决下。
|
-- 作者:raidsan -- 发布时间:2014/1/14 15:28:48 -- 这序列数组搞得真奇怪, VARIABLE :arr[]=0; 根本就不能自动分配数组空间, 后面用 arr[1] 访问就报越界 arr:=close; 这种方式也不成功, 变成单值了 (逐K线模式下) 只能用 arr:close,nodraw; 这种方式来申明并初始化数组, 后面才能用下标方式来使用
|