以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 请老师帮忙编写公式 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=173756) |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/28 21:15:23 -- 请老师帮忙编写公式 如果开盘价<=昨日收盘价,从9点30分开始判断涨幅,如果开盘价>昨日收盘价从9点31分开始判断涨幅。 |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/29 11:07:39 -- 研究一晚上,会了老师,删除吧帖子。。。 |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/29 11:53:48 -- 写得输出不对,还得麻烦老师帮下忙。。。 |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/29 14:02:18 -- 我的意思是9点31分开始判断区间涨幅,不是判断日K线涨幅比如10分钟的涨幅,我写了if(time>093100 and time<300000,((C-REF(C,10))/REF(C,10))*100>1,0);和 time>093100 and time<300000 and ((C-REF(C,10))/REF(C,10))*100>1;和 OPENMINUTES(TIME)>1 and ((C-REF(C,10))/REF(C,10))*100>1,输出都不对。
|
|
-- 作者:yukizzc -- 发布时间:2019/12/29 22:45:46 --
if valuewhen(todaybar=1,open)<=ref(close,todaybar) then cond:=1; if valuewhen(todaybar=1,open)>ref(close,todaybar) then cond:=0;
你这个涨幅是最新价和昨天收盘比较,还是0930以来的最高价和昨天收盘比较 |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/30 12:22:58 -- 1、老师这两个条件意思是不是这样?我理解的是if valuewhen(todaybar=1,open)<=ref(close,todaybar) then cond:=1;如果开盘价小于等昨天收盘价,则从9点31的前值算起? if valuewhen(todaybar=1,open)>ref(close,todaybar) then cond:=0;如果开盘价大于昨日收盘价则从9点31分的前值算起,输出为否定的?不知道这么理解对不对,那从9点31分开始的怎么计算? 2、(1)我用在1分钟周期里,我的意思是如果开盘大于昨日收盘价,从9点31分开始判断10分钟的区间涨幅为多少,也就是从9点31分开始到9点41分的区间涨幅。 (2)如果开盘价小于等于昨日收盘价从9点30分开始判断区间涨幅,也就是从9点30分到9点40分的区间涨幅。 |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/30 12:26:18 -- 再说的明白一点,因为股票有集合竞价,从9点30分开始判断,已经包含了集合竞价的涨幅,我的目的是要排除集合竞价的涨幅,也就是从9点31分开始算起,高开的排除在外。 |
|
-- 作者:yukizzc -- 发布时间:2019/12/30 13:32:48 -- cond就是用来判断是否大于昨收的一个条件 如果是1就表示小于昨收 vairable:ss=0; f valuewhen(todaybar=1,open)<=ref(close,todaybar) then cond:=1; if valuewhen(todaybar=1,open)>ref(close,todaybar) then cond:=0; if todaybar=1 then ss:=0; if cond=1 and time = 0941 then ss:=(c-ref(c,10))/ref(c,10); if cond=0 and time = 0942 then ss:=(c-ref(c,10))/ref(c,10); ans:ss;
|
|
-- 作者:FireScript -- 发布时间:2019/12/30 14:00:55 -- 1.是的。5楼的代码就是你理解的那个意思。五楼那个就是处理了下对“开盘价<=昨日收盘价”的判断。 2. 这样试下呢。 if valuewhen(todaybar=1,open)<=ref(close,todaybar) then cond:=1;
if valuewhen(todaybar=1,open)>ref(close,todaybar) then cond:=0; c1:=VALUEWHEN(TODAYBAR=1,c); c2:=VALUEWHEN(TODAYBAR=2,c); temp1:=if(cond,(c-c1)/c1,(c-c2)/c2); result:if(cond,VALUEWHEN(time=94000,temp1),VALUEWHEN(time=94100,temp1)); |
|
-- 作者:跟庄买进 -- 发布时间:2019/12/30 16:40:57 -- 可能是我没表述清楚,老师的意思是整体作为条件判断。 比如如果开盘大于昨天收盘价从9点31分开始计算至3点收盘10分钟之内的涨幅大于2的作为输出结果。也就是9点30分至9点31分这1分钟不计算这1分钟,排除在外。 如果开盘小于或者等于昨天收盘价,从9点30分开始计算至3点收盘,10分种之内出现过涨幅大于2的作为输出结果。 因为因为如果只写((C-REF(C,10))/REF(C,10))*100>2集合竞价高开的2%,后面没涨也计算在内了。我要的输出结果是实际10分钟之内有过涨幅大于2的输出。
|