以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  close和dynainfo的区别  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=71317)

--  作者:小米粥
--  发布时间:2014/10/24 8:58:02
--  close和dynainfo的区别
请问后台交易代码中的  close和dynainfo(7)用法一样么,如果我写上穿上轨用这两个哪一个呢?
--  作者:pyd
--  发布时间:2014/10/24 9:04:07
--  

都表示最新值,

但是dynainfo(7)没有历史值,例如ma(c,100)中不能用ma(dynainfo(7),100)。


--  作者:小米粥
--  发布时间:2014/10/24 9:26:01
--  
是不是如果不涉及到历史值,两者的值时完全一致的?他们的刷新频率也一样么?
--  作者:jinzhe
--  发布时间:2014/10/24 9:37:14
--  
如果真的是不涉及历史值,那么是没问题的
--  作者:小米粥
--  发布时间:2014/10/24 10:17:36
--  
MA20:=MA(CLOSE,20);
BUYCOND1:=DYNAINFO(7)>=MA20;
BUYCOND2:=CLOSE=HHV(CLOSE,3);
SELLCOND1:=DYNAINFO(7)<=MA20;
SELLCOND2:=CLOSE=LLV(CLOSE,3);
BUYCOND:=BUYCOND1 AND BUYCOND2;
SELLCOND:=SELLCOND1 AND SELLCOND2;
//开仓
IF BUYCOND AND THOLDING<=0 THEN
TBUY(1,1,LMT,CLOSE);
IF SELLCOND AND THOLDING>=O THEN
TBUYSHORT(1,1,LMT,CLOSE);
请版主帮我看一下我的代码 为什么可以开多但是不能开空呢(后面省略了止盈止损条件没贴)

--  作者:jinzhe
--  发布时间:2014/10/24 10:23:09
--  

代码顺序按照

平空

开多

平多

开空

来写


--  作者:小米粥
--  发布时间:2014/10/24 11:07:45
--  
TAVGENTERPRICEEX2(0 ,0 ,0 )和TAVGENTERPRICEEX2(0 ,0 ,1)是后台交易所用的开多价格和开空价格么?还是另有其他的函数表示?  我用监控器算出来的开平仓价格和我写的不一样
--  作者:pyd
--  发布时间:2014/10/24 11:13:28
--  

这两个函数分别是开多均价和开空均价,你根据监控器里的求平均值?

这两个函数的结果 和监控器里记录的结果贴下图


--  作者:小米粥
--  发布时间:2014/10/24 11:24:41
--  

有两个问题:

1、我的策略只开多平多,在开空条件满足的时候也不开空

2、我设置止赢4跳、止损2跳,但是监控器里面止盈止损都是4跳平仓

 
图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

代码如下:

MA20:=MA(CLOSE,20);
BUYCOND1:=DYNAINFO(7)>=MA20;
BUYCOND2:=CLOSE=HHV(CLOSE,3);
SELLCOND1:=DYNAINFO(7)<=MA20;//TENTERPRICE
SELLCOND2:=CLOSE=LLV(CLOSE,3);
BUYCOND:=BUYCOND1 AND BUYCOND2;
SELLCOND:=SELLCOND1 AND SELLCOND2;

//2跳固定止盈
IF DYNAINFO(7)-TENTERPRICE>4*MINDIFF THEN BEGIN
TSELL(THOLDING>0,TBUYHOLDINGEX(0,0 ,0 ),MKT,0,0,0);
END
IF TENTERPRICE-DYNAINFO(7)>4*MINDIFF THEN BEGIN
TSELLSHORT(THOLDING<0,TSELLHOLDINGEX(0,0,0),MKT,0,0,0);
END;
//2跳固定止损
IF TENTERPRICE-C>2*MINDIFF THEN BEGIN
TSELL(THOLDING>0,TBUYHOLDINGEX(0,0 ,0 ),MKT,0,0,0);
END
IF C-TENTERPRICE>2*MINDIFF THEN BEGIN
TSELLSHORT(THOLDING<0,TSELLHOLDINGEX(0,0,0),MKT,0,0,0);
END;

//开仓
IF BUYCOND AND THOLDING<=0 THEN
TBUY(1,1,LMT,CLOSE);
IF SELLCOND AND THOLDING>=O THEN
TBUYSHORT(1,1,LMT,CLOSE);



--  作者:jinzhe
--  发布时间:2014/10/24 11:29:24
--  

不要看交易结果,你要看的是触发时的结果。如果触发时价格正确,但是交易的时候下单成交价不满足需求,那么是正常的

你需要的是做调试,用debugfile把需要的信息比如当前价格,判断条件给输出一下,