金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 2822|回复: 6

HeikinAsh的附图写法

[复制链接]

6

主题

17

帖子

17

积分

Rank: 1

等级: 新手上路

注册:
2022-11-19
曾用名:
发表于 2023-10-29 21:51 | 显示全部楼层 |阅读模式
求助,
HA蜡烛线的四个价格计算方法如下∶
● HA收盘价=(原开盘价+原收盘价+原最高价+原最低价)/4
● HA开盘价=(上一交易日HA开盘价+上一交易日HA收盘价)/2
第一根 HA开盘价的计算方法为第一根K线的(C+O)/2
● HA最高价=MAX(原最高价,HA开盘价,HA收盘价)
● HA最低价=MIN(原最低价,HA开盘价,HA收盘价)

我的写法如下,但有错误,烦请纠正。
VARIABLE:HA_Close:=0, HA_Open:=0,HA_High:=0,HA_Low:=0;
HA_Close:=(O+C+H+L)/4;
if BARPOS=1 THEN BEGIN
HA_Open:=(C+O)/2;       
END
HA_Open:=(REF(HA_Open,1)+REF(HA_Close,1))/2;
HA_High:=max(max(h,HA_Open),HA_Close);
HA_Low:=min(max(l,HA_Open),HA_Close);
KLINE(HA_Open ,HA_High ,HA_Low ,HA_Close ,0 );
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-10-30 08:54 | 显示全部楼层
VARIABLE:HA_Close:=0, HA_Open:=0,HA_High:=0,HA_Low:=0;
HA_Close:=(O+C+H+L)/4;
HA_Open:=if(BARPOS=1,(C+O)/2,((REF(HA_Open,1)+REF(HA_Close,1))/2));
HA_High:=max(max(h,HA_Open),HA_Close);
HA_Low:=min(max(l,HA_Open),HA_Close);
KLINE(HA_Open ,HA_High ,HA_Low ,HA_Close ,0 );
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

21

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2023-10-30 08:58 | 显示全部楼层
全局变量是默认自动保存上次赋值时候的值,所以ref其实没必要的;非初始化K和初始K要完全区分开

variable:ha_close:=0, ha_open:=0,ha_high:=0,ha_low:=0;
ha_close:=(o+c+h+l)/4;
if barpos=1 then begin
ha_open:=(c+o)/2;      
end else  
begin
ha_open:=(ha_open+ha_close)/2;       
end  

ha_high:=max(max(h,ha_open),ha_close);
ha_low:=min(max(l,ha_open),ha_close);
kline(ha_open ,ha_high ,ha_low ,ha_close ,0 );
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

17

帖子

17

积分

Rank: 1

等级: 新手上路

注册:
2022-11-19
曾用名:
 楼主| 发表于 2023-11-9 19:51 | 显示全部楼层
谢谢二位!我同时在图上用这两个公式,发现生成的图有点差别。但我更改为下面的内容,希望显示出开高低收四个数值,显示 变量名***重复的错误,问题出在哪里了?

variable: ha_open:=0,ha_high:=0,ha_low:=0;
ha_close:(o+c+h+l)/4,linethick0;
if barpos=1 then begin
ha_open:(c+o)/2;      
end else  
begin
ha_open:(ha_open+ha_close)/2,linethick0;      
end  

ha_high:max(max(h,ha_open),ha_close),linethick0;
ha_low:min(max(l,ha_open),ha_close),linethick0;
kline(ha_open ,ha_high ,ha_low ,ha_close ,0 );
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-11-10 08:37 | 显示全部楼层
variable: ha_open:=0,ha_high:=0,ha_low:=0;
ha_close:(o+c+h+l)/4,linethick0;
if barpos=1 then begin
ha_open:(c+o)/2;      
end else  
begin
ha_open:=(ha_open+ha_close)/2,linethick0;      
end  

ha_high:max(max(h,ha_open),ha_close),linethick0;
ha_low:min(max(l,ha_open),ha_close),linethick0;
kline(ha_open ,ha_high ,ha_low ,ha_close ,0 );
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

6

主题

17

帖子

17

积分

Rank: 1

等级: 新手上路

注册:
2022-11-19
曾用名:
 楼主| 发表于 2023-11-10 19:53 | 显示全部楼层
可能我的表述不正确,请看下面的内容,我想在圈圈里显示ha_open,ha_close,ha_high,ha_low

另外,两个公式,箭头处明显不一样,为何?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号? 微信登录

x
回复

使用道具 举报

37

主题

1万

帖子

6万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2023-11-11 09:19 | 显示全部楼层
以2楼的代码为准。差异在于【HA开盘价=(上一交易日HA开盘价+上一交易日HA收盘价)/2】需求的代码你是按照当天的HA开盘价和收盘价算的。

需要显示变量,直接将他们赋值给单独的变量就行
aa:HA_Close;
BB:HA_Open;
CC:HA_High;
DD:HA_Low;
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 微信登录

本版积分规则

手机版|小黑屋|上海金之塔信息技术有限公司 ( 沪ICP备13035422号 )

GMT+8, 2025-8-1 20:57 , Processed in 0.109446 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表