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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 模仿均线写法出现的错误

   

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


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

主题:模仿均线写法出现的错误

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


加好友 发短信 原leevolvo
等级:版主 帖子:2160 积分:10563 威望:0 精华:11 注册:2010/11/3 11:21:19
  发帖心情 Post By:2011/1/6 10:56:02    Post IP:202.101.153.222[显示全部帖子]

把楼主的程序解读一下,如下:

VARIABLE:I=0,S=0;
VAR1:=close>open; //变量申明,代表阳线

IF NOT(ISLASTBAR) THEN EXIT;//最后一个周期才执行以下语句
FOR J=1 TO DATACOUNT DO BEGIN
 if close>open then begin //如果最后一个周期收阳线,则把所有阳线累加起来
  S:=S+VAR1[J];
 end;
 if close<open then begin;//如果最后一个周期收阴线,则s=0
  S:=0;
 end;
 MMM[j]:S;
END

所以结果要么是0,要么是所有阳线之和,是个很大的数值也就不足为怪了,肯定无线实现楼主想要的效果

 

 

如果这样:

VARIABLE:S=0;
VAR1:=close>open;

mmm:0;
//为了加快运算速度,只有最后一个周期时才循环计算
IF NOT(ISLASTBAR) THEN EXIT;
FOR J=1 TO DATACOUNT DO BEGIN
 if close[j]>open[j] then begin
  S:=S+VAR1[J];
 end;
 if close[j]<open[j] then begin;
  S:=0;
 end;
MMM[j]:=S;
END;

 

经过测试,完全符合楼主要求


[此贴子已经被作者于2011-1-6 10:57:44编辑过]

 回到顶部