以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (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就行