//图表交易,15分钟周期,固定间隔2秒
//不设止损,通过浮动止损来止盈:当浮盈达到浮动止损跟踪值的2倍时,浮动止损启动
//日内仓和隔夜仓有不同的平仓条件;
VARIABLE:CANGWEI=0,TRADEDATE=0,TRADETIME=0; //全局变量:CANGWEI=1表示日内仓,CANGWEI=2表示隔夜仓;TRADEDATE用于保存开仓日期,TRADETIME用于保存开仓时间
TRAIL:=10; //浮动止损跟踪值为常量
ABB:=(TIME0-TIMETOT0(DYNAINFO(207))<=3) OR NOT(ISLASTBAR);
//多单浮动止损
HH:=HHV(H,ENTERBARS+1); //自开仓以来最高价
IF HOLDING>0 AND (HH-ENTERPRICE)/TRAIL>=2 THEN SELL(DYNAINFO(7)<(ENTERPRICE+INTPART((HH-ENTERPRICE)/TRAIL-2)*TRAIL),HOLDING,MARKET);
//空单浮动止损价
LL:=LLV(L,ENTERBARS+1); //自开仓以来最低价
IF HOLDING<0 AND (ENTERPRICE-LL)/TRAIL>=2 THEN SELLSHORT(DYNAINFO(7)>(ENTERPRICE-INTPART((ENTERPRICE-LL)/TRAIL-2)*TRAIL),HOLDING,MARKET);
//老仓判断:
IF CANGWEI=1 AND HOLDING<>0 AND
((CURRENTDATE-TRADEDATE=0 AND TRADETIME<180000 AND CURRENTTIME>180000) OR //当前日期与成交日期一致,成交时间为日盘时段,当前为夜盘时段;
(CURRENTDATE-TRADEDATE=1 AND TRADETIME<180000) OR //成交日期为昨日,成交时间为日盘时段
(CURRENTDATE-TRADEDATE=1 AND TRADETIME>180000 AND CURRENTTIME>180000) OR //成交日期为昨日,成交时间为夜盘时段,当前为夜盘时段
(CURRENTDATE-TRADEDATE>1)) //当前日期与成交日期相差2天以上,周末夜盘如何处理还没想好
THEN CANGWEI:=2;
//平多
IF ((CANGWEI=1 AND 今仓平多条件) OR (CANGWEI=2 AND 老仓平多条件)) AND ABB THEN SELL(HOLDING>0,HOLDING,MARKET);
//平空
IF ((CANGWEI=1 AND 今仓平空条件) OR (CANGWEI=2 AND 老仓平空条件)) AND ABB THEN SELLSHORT(HOLDING<0,HOLDING,MARKET);
//开多
IF 开多条件 AND HOLDING<=0 AND ABB THEN
BEGIN
SELLSHORT(HOLDING<0,HOLDING,MARKET);
BUY(1,1,MARKET);
CANGWEI:=1; //开仓后标记日内仓
TRADEDATE:=CURRENTDATE; //记录开仓日期
TRADETIME:=CURRENTTIME; //记录开仓时间
END;
//开空
IF 开空条件 AND HOLDING>=0 AND ABB THEN
BEGIN
SELL(HOLDING>0,HOLDING,MARKET);
BUYSHORT(1,1,MARKET);
CANGWEI:=1;
TRADEDATE:=CURRENTDATE;
TRADETIME:=CURRENTTIME;
END;
编译没有问题的话就可以进行测试了
编译过了,没有问题。不过现在模拟账户不是不能用吗,所以想确认:
1、HH:=HHV(H,ENTERBARS+1) 是用来表示自开仓以来的最高价
2、CURRENTDATA,CURRENTTIME 可以用来数学计算
3、想请教一下,周末隔夜仓有没有好的判断方法
1.是
2.可以
3.判断当前的持仓是不是上个礼拜开的意思吗?
1.是
2.可以
3.判断当前的持仓是不是上个礼拜开的意思吗?
周五的夜盘,对于下周一来说,也属于日内的仓位,但如果用 CURRENTDATE-TRADEDATE>1表示就变成隔夜仓位了,因为日期之间间隔了周6和周日2天。不知道有没有好的解决办法?
还有请教一下,金字塔模拟用不了,开户的期货公司也没有模拟账户,所以想找家有模拟账户的期货公司再开个户好进行测试。不过好像哪里看到过,CTP的模拟账户不好用,有这个说法吧?
另外,模拟帐户和仿真账户有什么区别?
谢谢!
用date<>valuewhen(开仓条件,date)来判断,不想等就是不同天了
方针和模拟是不同的交易柜台,是不一样的,用哪个模拟一下看用户的需求了
用date<>valuewhen(开仓条件,date)来判断,不想等就是不同天了
方针和模拟是不同的交易柜台,是不一样的,用哪个模拟一下看用户的需求了
DATE是指金字塔时间还是北京时间?
我想要区分的,是今天开的仓位(昨日21:00-今天15:00),和昨天及以前开的仓位(昨天15:00以前),这种情况下DATE能起作用吗?
仿真和模拟,是不是理解为仿真-软件,模拟-账户?
1date的取值是看你用的是哪个时间坐标,用哪个坐标就返回对应坐标的值
2不是,都是模拟的交易帐号,具体的可以去自己的期货公司问一下
1date的取值是看你用的是哪个时间坐标,用哪个坐标就返回对应坐标的值
2不是,都是模拟的交易帐号,具体的可以去自己的期货公司问一下
如果是4月8日23:00开仓,从日线上看是4月9日,从15分钟周期上是4月8日。
如果图表用的是15分钟周期,这时返回的DATE是4月8日还是9日?