以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://weistock.com/bbs/index.asp) -- 公式模型编写问题提交 (http://weistock.com/bbs/list.asp?boardid=4) ---- 这个条件过滤如何表达? (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=61389) |
-- 作者:新手上路啊 -- 发布时间:2014/2/2 17:14:22 -- 这个条件过滤如何表达? 老师,我想在日内模型中加入一个这样的条件过滤: 连续两次开多(或开空)被止损后(如果是开多的话,中间有开多赢利的话就不算),下一次开多(有可能是当天或不是当天了,或是1、2天后的)的价格必须大于上一次开多时的开仓价格。 请教应如何表达?先谢了! |
-- 作者:新手上路啊 -- 发布时间:2014/2/3 10:51:08 -- 这条件看似简单,难度却不了,难点在于: 一是连续两次的统计表达; 二是日内模型,却有可能要调用昨天甚至前几天的相关数据,包括开平仓信息、上次被止损平仓的开仓价; 以开多为例:前天有1次开多是达到止损条件而平仓出场的,昨天也有1次开多是达到止损条件而平仓出场的, 中间无论是否出现N次开空的止赢止损都不影响条件成立,但如果有出现开多的,只要它是止赢或是正常收盘平仓等(只要不是被止损出场)的, 那止条件就不成立了。 恳请老师和各位高手指教!!! |
-- 作者:jinzhe -- 发布时间:2014/2/7 9:15:45 -- variable:n=0; if holding>0 and 多仓止损条件 then begin sell(1,0,market); n:=n+1; end if holding>0 and 其他平仓条件 then begin sell(1,0,market); n:=0; end
n=2就表示你的连续两次了,用全局变量来记录止损的次数,如果非止损平仓的那么就把全局变量重置为0 |
-- 作者:新手上路啊 -- 发布时间:2014/2/7 14:45:39 -- 新年好!感谢老师指点!虽然我的平仓条件较多,但这个确实也是解决思路来的。另外,我想加入一个时间限制:三日内,连续有连续两次开多被止损的,这个“三日内”如何表示好一点?谢了 |
-- 作者:jinzhe -- 发布时间:2014/2/7 14:56:58 -- variable:n=0; if holding>0 and 多仓止损条件 then begin sell(1,0,market); n:=n+1; end if holding>0 and 其他平仓条件 then begin sell(1,0,market); n:=0; end d1:valuewhen(n=1 and ref(n=0,1),date); d2:date; d2-d1<3 d1是第一次止损平仓的日期,d2是当前日期,相减后判断是否小于3就行 |