金字塔决策交易系统

 找回密码
 

微信登录

微信扫一扫,快速登录

搜索
查看: 5087|回复: 17

请老师帮写一个分时线指标

[复制链接]

22

主题

79

帖子

89

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
发表于 2021-12-8 00:10 | 显示全部楼层 |阅读模式
请老师帮写一个指标:以今日为T日,T-4日开盘后至当前如股价下跌到0.91*(T-4日开盘价)及以下,则指标等于分时线T-4日开盘后至股价下跌到0.91*(T-4日开盘价)这段时间内的高点,如股价下跌不到0.91*(T-4日开盘价)则指标等于T-4日开盘后至现在的分时线高点。

回复

使用道具 举报

34

主题

9212

帖子

5万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
wenarm
发表于 2021-12-8 08:14 | 显示全部楼层
你这个表述中,两种状态都是要取分时高价,不就是最近5天内的分时均线的高点吗?

BAR:SUMBARS(TODAYBAR=1,5);
XX:hhv(close,bar);
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

22

主题

79

帖子

89

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-8 09:10 | 显示全部楼层
我没表达清楚第一种状态,补充一下: 股价下跌到0.91*(T-4日开盘价)时记录开仓至该时间内高点,之后股价无论升降都不再记录。第二种状态不需要考虑了,请忽略。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-8 09:19 | 显示全部楼层
下破T-4日的开盘价,可能有很多次的吧。你这个是取从T-4到当前的第一次?
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

22

主题

79

帖子

89

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-8 09:29 | 显示全部楼层
是的,是取从T-4开盘到当前的第一次。麻烦老师了。
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-8 14:52 | 显示全部楼层
这个目前正常方式实现不了。能定位到满足条件的位置,但是从T-4开始到这个满足条件位置的最高价无法计算。ref函数的机制目前无法把T位置计算的长度带到这个满足条件位置的K上计算最高价。





金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

20

主题

1万

帖子

1万

积分

Rank: 8Rank: 8

等级: 超级版主

注册:
2021-5-18
曾用名:
FireScript
发表于 2021-12-8 15:24 | 显示全部楼层
[PEL] 复制代码
VARIABLE:ary1[5]:=0,ary2[5]:=0,ary3[5]:=0;//三个数组分别记录最近的五个开盘价,以及BARPOS位置。以及满足条件后的最高价
//下标从1-5 位置由近到远

//全部更新
if TODAYBAR=1 then 
begin 
	
for i=5 downto 1 do 
begin 

if i>1 then  
begin
ary1[i]:=ary1[i-1];
ary2[i]:=ary2[i-1];
ary3[i]:=ary3[i-1];
end 

if i=1 then 
begin 
ary1[i]:=o*0.91;//更新开盘价
ary2[i]:=BARPOS;//更新位置
ary3[i]:=0;
end 
end 


end 

for j=1 to 5 do 
begin 
temp:=hhv(h,BARPOS-ary2[j]+1);
if c<=ary1[j] and ary3[j]=0 then 
begin
ary3[j]:=temp;
end 
		
end 



v1:ary1[5],NODRAW;
result:ary3[5],NODRAW;//可能存在为0 情况,这是因为价格一路走高的话是可能不满足条件。然后随着K线移动T-4的位置也会重新更新了。




上面这个方式可行。但是用到了循环和数组,所以用户能看懂可以使用。否则仅供参考吧。需要加载在1分钟上,且至少包含五日的数据。

V1是T-4开盘价*0.91  result是到满足条件为止的最高价
截图202112081523131134.png


这是相对今天位置的T-4位置。很显然,后面价格是跌破了6.10的。所以最高价 就是2号最开始几个K的最高价了。
截图202112081524182125.png
金字塔提供一对一VIP专业技术指导服务,技术团队实时响应您的日常使用问题与策略编写。联系电话:021-20339086
回复

使用道具 举报

22

主题

79

帖子

89

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-8 16:13 | 显示全部楼层
能定位到满足条件的位置就可以了。请您把实现这功能的语句发给我,其他的我再想办法。
回复

使用道具 举报

22

主题

79

帖子

89

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-8 16:17 | 显示全部楼层
OK,谢谢了。
回复

使用道具 举报

22

主题

79

帖子

89

积分

Rank: 4

等级: 专业版

注册:
2021-5-20
曾用名:
 楼主| 发表于 2021-12-9 10:45 | 显示全部楼层
您好,我把代码改成6天,并且补充了金杯汽车最近6天的1分钟数据,加载到金杯汽车1分钟线主图,观察到v1和RESULT一直是0,没变化,请问我差哪些步骤没做。代码如下所示
VARIABLE:ary1[6]:=0,ary2[6]:=0,ary3[6]:=0;//三个数组分别记录最近的五个开盘价,以及BARPOS位置。以及满足条件后的最高价
//下标从1-5 位置由近到远

//全部更新
if TODAYBAR=1 then
begin
     
for i=6 downto 1 do
begin

if i>1 then
begin
ary1[i]:=ary1[i-1];
ary2[i]:=ary2[i-1];
ary3[i]:=ary3[i-1];
end

if i=1 then
begin
ary1[i]:=o*0.91;//更新开盘价
ary2[i]:=BARPOS;//更新位置
ary3[i]:=0;
end
end


end

for j=1 to 6 do
begin
temp:=hhv(h,BARPOS-ary2[j]+1);
if c<=ary1[j] and ary3[j]=0 then
begin
ary3[j]:=temp;
end
         
end



v1:ary1[6],NODRAW;
result:ary3[6],NODRAW;
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-29 12:02 , Processed in 0.214657 second(s), 24 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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