欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件交易策略发布专区 → 金字塔数组使用的高级编程技巧

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有34524人关注过本帖树形打印复制链接

主题:金字塔数组使用的高级编程技巧

帅哥哟,离线,有人找我吗?
30kj
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:83 积分:30 威望:0 精华:0 注册:2012/12/10 16:45:31
  发帖心情 Post By:2013/12/9 22:20:13 [显示全部帖子]

以下是引用admin在2012/11/4 21:52:52的发言:

逐K线模式下数组转定义数组变量
   逐K线模式下数组之间的转换与序列模式有所不同,序列模式因为是只执行一次解析返回的是序列变量,因此可以完成直接的数组拷贝,而逐K线则每根K线都回去执行一遍公式的解析,因此在数组之间的转换上也有不同,在执行相互之间转换时,金字塔采用的是只处理数组最后数据的方法,即在逐K线解析时,自动扩充累加数组元素,我们举例如下:
   要求:分别计算阳线和阴线收盘价10个数字的平均价,该需求需要我们分别定义2个数组来保存各自不同的价格,逐K线模式下的这种运行机制便正好可以满足我们的这个需要
   RUNMODE:0;
VARIABLE:DOWN[]=0;//定义一个空的数组,计算下跌的阳线收盘价,注意这里一定要置空数组用来保存数据
VARIABLE:UP[]=0;//定义一个空的数组,计算上涨阳线收盘价,注意这里一定要置空数组用来保存数据

IF CLOSE > OPEN THEN
   UP:=CLOSE;//将上涨K线收盘价插入数组UP中
ELSE
   DOWN:=CLOSE;//将下跌K线收盘价插入DOWN数组中
  
A:MA(UP,10);
B:MA(DOWN,10);

//下面2行调试代码
DD:UBOUND(UP),NODRAW; //显示输出UP数组数据个数
SS:UBOUND(DOWN),NODRAW; //显示输出DOWN数组数据个数

注意:

通过上述的代码我们需要注意的是,UP和DOWN数组前面我们一定要置一个空的数组,这个空数组金字塔会在逐K线执行的时候去自动的填充我们的数据.

在逐K线模式下对数组的转换操作,应该避免在循环语句中使用,因为可能会导致循环对数组数据积累而导致计算出错

 [此贴子已经被作者于2012-11-15 1:22:13编辑过]


对于MA,这种处理是可以的,我试了一下EMA,发现EMA会按照k线的周期数进行计算,而不是按照实际的数组个数。麻烦解决下。

[此贴子已经被作者于2013/12/9 22:21:04编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
30kj
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:83 积分:30 威望:0 精华:0 注册:2012/12/10 16:45:31
  发帖心情 Post By:2013/12/17 14:05:42 [显示全部帖子]

怎么没有回复啊!!!
对于MA,这种处理是可以的,他可以统计数组里面的实际个数来计算。但是我试了一下EMA,发现EMA会按照实际经过的k线的周期数进行计算,而不是按照数组里面实际的个数。麻烦解决下。

 回到顶部