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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]Heikin Ashi烛图

   

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


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

主题:[求助]Heikin Ashi烛图

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


加好友 发短信
等级:新手上路 帖子:8 积分:0 威望:0 精华:0 注册:2013/7/10 15:33:57
[求助]Heikin Ashi烛图  发帖心情 Post By:2013/7/10 15:48:07    Post IP:180.154.216.158[只看该作者]

有关heikin ashi烛图,请问如下代码:

HaClose:=(Open+High+Low+Close)/4;
IF BARSTATUS=1 THEN haOpen:=OPEN; ELSE 
haOpen:=(REF(haOpen,1)+REF(HaClose,1))/2 ;
HaHigh:=Max(High,Max(haOpen,HaClose));
HaLow:=Min(Low,Min(haOpen,HaClose));
kline(haOpen,HaHigh,HaLow,HaClose,1);

在金字塔里编译可以通过,但是显示不正常。应该如何修改,谢谢

图片点击可在新窗口打开查看此主题相关图片如下:stockgraphout2.jpg
图片点击可在新窗口打开查看

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/7/10 16:12:22    Post IP:116.226.232.180[只看该作者]

别人看你的代码是不知道你心理想什么需要什么的,你把你要想实现的逻辑原理也说一下


金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
cool2000
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:8 积分:0 威望:0 精华:0 注册:2013/7/10 15:33:57
  发帖心情 Post By:2013/7/10 17:07:13    Post IP:180.154.216.158[只看该作者]

关键点在于:

如果是第一根k线,则HaOpen等于第一根k线的open价,若不是第一根k线,则HaOpen等于前一根HaOpen价的一半加上HaClose价的一半,这里有一个递归调用的问题。

若是第一根K线:
HaOpen:=Open

若不是第一根k线:
HaOpen:=(REF(haOpen,1)+REF(HaClose,1))/2 ;

这就是要实现的想法,但是图显示不正常,不知道上面的代码到底对不对。

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/7/10 17:16:49    Post IP:116.226.232.180[只看该作者]

你的问题在于你用了序列模式,应该要用逐K线模式你的思路才能得到正确执行。

 

HaClose:=(Open+High+Low+Close)/4;
haOpen:=OPEN;
Opentmp:=REF(haOpen,1)+REF(HaClose,1);
IF BARSTATUS=1 THEN
begin
haOpen:=OPEN;
end
ELSE
begin
haOpen:=Opentmp/2 ;
HaHigh:=Max(High,Max(haOpen,HaClose));
HaLow:=Min(Low,Min(haOpen,HaClose));
end
kline(haOpen,HaHigh,HaLow,HaClose,1);

上面是帮你改好的代码

 

建议你仔细看看

深度理解金字塔公式系统的工作机理

http://www.weistock.com/bbs/dispbbs.asp?boardid=10&Id=29594

 

里面有这2种运行模式的不同的描述



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
王锋
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/7/10 17:21:16    Post IP:116.226.232.180[只看该作者]

代码又重新改了一下

 

HaClose:=(Open+High+Low+Close)/4;

IF BARSTATUS=1 THEN
begin
haOpen:=OPEN;
end
ELSE
begin
haOpen:=(haOpen[barpos-1]+HaClose[barpos-1])/2 ;
HaHigh:=Max(High,Max(haOpen,HaClose));
HaLow:=Min(Low,Min(haOpen,HaClose));
end
kline(haOpen,HaHigh,HaLow,HaClose,1);

由于REF不能在逐K线模式在IF语句中,可以使用数组的方式解决,这样改的代码就根你之前的逻辑一样了



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
cool2000
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:8 积分:0 威望:0 精华:0 注册:2013/7/10 15:33:57
  发帖心情 Post By:2013/7/10 17:33:43    Post IP:180.154.216.158[只看该作者]

多谢,让我再消化理解一下。

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


加好友 发短信
等级:新手上路 帖子:8 积分:0 威望:0 精华:0 注册:2013/7/10 15:33:57
  发帖心情 Post By:2013/7/10 17:54:29    Post IP:180.154.216.158[只看该作者]

haOpen:=(haOpen[barpos-1]+HaClose[barpos-1])/2 ;
这行发生数组越界操作错误,

编译通过,显示图形时发生数组越界操作错误

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


加好友 发短信
等级:罗宾汉 帖子:11808 积分:20695 威望:0 精华:10 注册:2009/8/18 8:15:13
  发帖心情 Post By:2013/7/10 18:27:43    Post IP:116.226.233.39[只看该作者]

我这里可以通过的,你估计是把代码改了吧。

 

金字塔的数组是从1开始的,如果你在代码的第一跟K线上就运行到数组这一行语句是肯定要越界的



金字塔—专业程序化软件提供商

金字塔-技术部

-----------------------------------------------------------------------------------------------------

工作时间:周一至周五 08:30 - 17:30   周末及法定节假日休息

Email:service@weistock.com
 回到顶部
帅哥哟,离线,有人找我吗?
cool2000
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:8 积分:0 威望:0 精华:0 注册:2013/7/10 15:33:57
  发帖心情 Post By:2013/7/10 21:31:51    Post IP:180.154.216.158[只看该作者]

代码没改,从5楼拷贝的,直接粘贴到公式编辑区,我的版本是2.9961,编译通过,加载到副图界面,



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


加好友 发短信
等级:新手上路 帖子:8 积分:0 威望:0 精华:0 注册:2013/7/10 15:33:57
[原创]和昨天相比今天增加或减少的合约  发帖心情 Post By:2013/7/10 21:37:20    Post IP:180.154.216.158[只看该作者]


图片点击可在新窗口打开查看此主题相关图片如下:s4.gif
图片点击可在新窗口打开查看




 回到顶部
总数 14 1 2 下一页