以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 如何用好BARSLAST函数 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=174576) |
|
-- 作者:stocksee8 -- 发布时间:2020/2/25 17:10:47 -- 如何用好BARSLAST函数 烦请老师帮我把下面语句写成金字塔语言,我用了count和BARSLAST但是不会正确使用,所以写不成功,感谢老师帮助下!!! K线最高价比上一根K线的最高价高记为1次,在某阶段内(不确定几根K线的也无所谓)不出现新低且出现了10次这种情况的k线最高价定义为A1;在A1之后某阶段内(不确定几根K线的也无所谓)不出现新高且出现了10次这种情况的k线最低价定义为B1。 谢谢老师!
|
|
-- 作者:FireScript -- 发布时间:2020/2/25 17:25:29 -- A1,B1是一个阶段K线的高低价,还是满足条件时候的那个K的最高,最低价? |
|
-- 作者:wenarm -- 发布时间:2020/2/25 17:29:19 -- 不是很理解你的意思。建议你举一个具体的例子。上面表述中,(不确定几根K线的也无所谓)这个没法做,必须给出具体量,否者计算机没法计算。 |
|
-- 作者:stocksee8 -- 发布时间:2020/2/25 18:03:51 -- 谢谢老师关注答复,我的意思是找一个阶段内的高低点出来画个标记,比如有一阶段走势是非连续的出现了10次今天最高价比昨天最高价高的情况,然后最后一次之后没有更高的价格了,那最后那第10次的k线就是A1,然后A1之后有一阶段走势是非连续的出现了10次今天最低价比昨天最低价低的情况,然后最后一次之后没有更低的价格了,那最后那第10次的k线就是b1做个标记,我用count统计次数但是引用不成功,不会写,请老师帮助写个,谢谢! |
|
-- 作者:FireScript -- 发布时间:2020/2/26 10:02:11 -- 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 -- 发布时间:2020/2/26 12:37:18 -- 非常感谢老师的编写指导,我是要找个阶段内的高低点,您这段代码正确的运行了非连续运行10次最高价刷新即高点hmark,然后开始统计非连续运行10次最低价刷新即低点lmark,但有个情况就是出现了hmark后还有高点(或者后面的低点比前面高点还要高),所以需要加个限定条件就是未来短期没更高(低)点了, 比如能不能加个限定条件1:如hmark的最高价是hmark和hmark前面的和后面的lmark之间的最高价,hct次数只要至少大于10就行, 如果不能编写这样的句子那换成:hmark(H,1)>refx(H,10),意思是hmark高点比未来10天内高点都高,但系统说我引用未来函数,比前面10天高加个TOPRANGE(HIGH)10; 老师您看看能不能帮我调整下
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 -- 发布时间:2020/2/26 13:23:18 -- 交易模型里面是不能有这种未来逻辑的。这个没办法。如果都能知道未来走势了,交易模型岂不是百分百赚钱了么。 |
|
-- 作者:stocksee8 -- 发布时间:2020/2/26 14:10:42 -- 但我觉得这是对过去数据的整理统计,不涉及未来行情调用,意思是现在看过去比如100根已经存在的k线,我要在这100根里面找出来一个高低点,高点hmark是前后2个低点lmark之间的最高价,且高点前面至少有10次以上单日最高价高于昨天的情况出现,低点前面至少有10次以上单日最低价低于昨天,这个应该是个条件句,是个过去行情出现后的静态统计寻找,我觉得金字塔函数或语句应该能统计出这个,只是我不大会使用函数和语句,老师在看看是否能有语句表达这个想法?谢谢您! |
|
-- 作者:FireScript -- 发布时间:2020/2/26 14:40:15 -- 不行的。 你想下如果hmark的位置在最新K上,这个就是一个会造成问题的未来了,因为你此时无法对未来的K情况做判断。 历史K是能做前后位置K情况的统计,用未来函数判断,但是这样你这个模型也就历史K有信号,最新K不会有信号,就是一个无法交易的模型了。 总之就是你这个相当于能给历史K做判断,然后给历史K一个交易信号,但是实际交易都发生在最新K上。 |
|
-- 作者:stocksee8 -- 发布时间:2020/2/26 15:36:35 -- 老师的话明白了,感谢老师的解释,那是我逻辑上有问题,去掉一个条件,不涉及当前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,谢谢了
|