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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 如何用好BARSLAST函数

   

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


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

主题:如何用好BARSLAST函数

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


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2020/2/25 16:51:24
如何用好BARSLAST函数  发帖心情 Post By:2020/2/25 17:10:47    Post IP:180.107.64.251[只看该作者]

烦请老师帮我把下面语句写成金字塔语言,我用了count和BARSLAST但是不会正确使用,所以写不成功,感谢老师帮助下!!!

K线最高价比上一根K线的最高价高记为1次,在某阶段内(不确定几根K线的也无所谓)不出现新低且出现了10次这种情况的k线最高价定义为A1;在A1之后某阶段内(不确定几根K线的也无所谓)不出现新高且出现了10次这种情况的k线最低价定义为B1。

谢谢老师!

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/2/25 17:25:29    Post IP:183.194.169.168[只看该作者]

A1,B1是一个阶段K线的高低价,还是满足条件时候的那个K的最高,最低价?



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
wenarm
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2020/2/25 17:29:19    Post IP:180.169.30.6[只看该作者]

不是很理解你的意思。建议你举一个具体的例子。上面表述中,(不确定几根K线的也无所谓)这个没法做,必须给出具体量,否者计算机没法计算。



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
stocksee8
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2020/2/25 16:51:24
  发帖心情 Post By:2020/2/25 18:03:51    Post IP:180.107.64.251[只看该作者]

谢谢老师关注答复,我的意思是找一个阶段内的高低点出来画个标记,比如有一阶段走势是非连续的出现了10次今天最高价比昨天最高价高的情况,然后最后一次之后没有更高的价格了,那最后那第10次的k线就是A1,然后A1之后有一阶段走势是非连续的出现了10次今天最低价比昨天最低价低的情况,然后最后一次之后没有更低的价格了,那最后那第10次的k线就是b1做个标记,我用count统计次数但是引用不成功,不会写,请老师帮助写个,谢谢!

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/2/26 10:02:11    Post IP:183.194.169.168[只看该作者]

VARIABLE:hct:=0,lct:=0,bg:=0;
hmark:=0;
lmark:=0;
hcount:count(h>ref(h,1),0);//总的h>ref(h,1)的次数
lcount:count(l<ref(l,1),0);

if h>ref(h,1)  and bg>=0 then hct:=hct+1;
if l<ref(l,1) and bg<=0 then lct:=lct+1;

if hct=10  then //每满足10次重置一次,并且开始反向统计
begin 
hmark:=1;
hct:=0;
bg:=-1;
end

if lct=10 then //每满足10次重置一次,且开始反向统计
begin 
lmark:=1;
lct:=0;
bg:=1;
end

DRAWICON(hmark,h,1);//a1 笑脸
DRAWICON(lmark,l,2);//b1 哭脸


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
stocksee8
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2020/2/25 16:51:24
  发帖心情 Post By:2020/2/26 12:37:18    Post IP:180.107.64.251[只看该作者]

非常感谢老师的编写指导,我是要找个阶段内的高低点,您这段代码正确的运行了非连续运行10次最高价刷新即高点hmark,然后开始统计非连续运行10次最低价刷新即低点lmark,但有个情况就是出现了hmark后还有高点(或者后面的低点比前面高点还要高),所以需要加个限定条件就是未来短期没更高(低)点了,
比如能不能加个限定条件1:如hmark的最高价是hmark和hmark前面的和后面的lmark之间的最高价,hct次数只要至少大于10就行,
如果不能编写这样的句子那换成:hmark(H,1)>refx(H,10),意思是hmark高点比未来10天内高点都高,但系统说我引用未来函数,比前面10天高加个TOPRANGE(HIGH)10;
老师您看看能不能帮我调整下
VARIABLE:hct:=0,lct:=0,bg:=0;
hmark:=0;
lmark:=0;
hcount:count(h>ref(h,1),0);//总的h>ref(h,1)的次数
lcount:count(l<ref(l,1),0);

if h>ref(h,1)  and bg>=0 then hct:=hct+1;
if l<ref(l,1) and bg<=0 then lct:=lct+1;

if hct>=10  then //每满足大于10次重置一次,并且开始反向统计
begin 
hmark:=1;
hct:=0;
bg:=-1;
end

if lct>=10 then //每满足大于10次重置一次,且开始反向统计
begin 
lmark:=1;
lct:=0;
bg:=1;
end
cond1:=hmark(high,0)>between(hmark,lmark);
cond2:=lmark(low,0)<between(hmark,lmark);
cond3:=close>hmark(high,0);
cond4:=close<lmark(low,0);
DRAWICON(hmark and con1,h,1);//a1 笑脸
    DRAWICON(lmark and con2,l,2);//b1 哭脸
开多:BUY(COND1 and cond3 and holding=0,1,MARKET);
平多:SELL(COND2 and cond4,1,MARKET);
开空:BUYSHORT(COND2 and cond4 and holding=0,1,MARKET);
平空:SELLSHORT(COND1 and cond3,1,MARKET);
//其他
当前持仓:HOLDING,COLORGRAY,LINETHICK0;
当前资产:ASSET,NOAXIS,COLORGRAY;
谢谢!

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/2/26 13:23:18    Post IP:183.194.169.168[只看该作者]

交易模型里面是不能有这种未来逻辑的。这个没办法。如果都能知道未来走势了,交易模型岂不是百分百赚钱了么。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
stocksee8
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2020/2/25 16:51:24
  发帖心情 Post By:2020/2/26 14:10:42    Post IP:180.107.64.251[只看该作者]

但我觉得这是对过去数据的整理统计,不涉及未来行情调用,意思是现在看过去比如100根已经存在的k线,我要在这100根里面找出来一个高低点,高点hmark是前后2个低点lmark之间的最高价,且高点前面至少有10次以上单日最高价高于昨天的情况出现,低点前面至少有10次以上单日最低价低于昨天,这个应该是个条件句,是个过去行情出现后的静态统计寻找,我觉得金字塔函数或语句应该能统计出这个,只是我不大会使用函数和语句,老师在看看是否能有语句表达这个想法?谢谢您!

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/2/26 14:40:15    Post IP:183.194.169.168[只看该作者]

不行的。
你想下如果hmark的位置在最新K上,这个就是一个会造成问题的未来了,因为你此时无法对未来的K情况做判断。
历史K是能做前后位置K情况的统计,用未来函数判断,但是这样你这个模型也就历史K有信号,最新K不会有信号,就是一个无法交易的模型了。
总之就是你这个相当于能给历史K做判断,然后给历史K一个交易信号,但是实际交易都发生在最新K上。




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
stocksee8
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:新手上路 帖子:5 积分:0 威望:0 精华:0 注册:2020/2/25 16:51:24
  发帖心情 Post By:2020/2/26 15:36:35    Post IP:180.107.64.251[只看该作者]

老师的话明白了,感谢老师的解释,那是我逻辑上有问题,去掉一个条件,不涉及当前k线以后的数据,只要求他比前面高(或者低)总可以了吧,相当于您前面编写的代码上在加1个可实现的限制条件,定义高点hmark是(条件1:前面出现的低点lmark之后的目前最高价(如果这个不能写就换成hmark的最高价是过去20根k线来的最高价),条件2:且lmark高点前面至少有10次以上单日最高价高于昨天最高价的情况出现,)
定义低点lmark是(条件3:前面出现的高点hmark之后的目前暂时最低价(如果这个不能写就换成lmark的最低价是过去20根k线来的最低价),条件4:且lmark低点前面至少有10次以上单日最低价低于昨天最低价的情况出现,然后我再拿这2个不涉及未来函数的hmark和lmark做模型,另外您前面的hmark:=0;是不是相当于设置了个开关?直接在交易模型里使用会说函数hmark未定义。
麻烦老师在前面代码上加上个条件1和条件3,谢谢了

 回到顶部