以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  请帮我修改一下下单模式  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=74497)

--  作者:haizxj
--  发布时间:2015/1/15 13:23:45
--  请帮我修改一下下单模式

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
kd:=K>D and c>o ;//开多平空条件
pd:=c<o;

kk:=k<d and c<o;//开空平多条件
pk:=c>o;
if TISREMAIN(3)<>0   AND   kd then
BEGIN


tcancel(1,0);
tbuy(kd and  tholding=0,1,lmt,c-30*MINDIFF);

END


if TISREMAIN(1)<>0   AND kk  then
BEGIN


tcancel(1,0);

 tbuyshort (kk and tholding=0,1,lmt,c+30*MINDIFF);
END

 

if TISREMAIN(1)<>0   AND   pd  and tholding2<>0 and tholding=0 then
BEGIN


tcancel(1,0);

END


if TISREMAIN(3)<>0   AND pk  and tholding2<>0 and tholding=0  then
BEGIN


tcancel(1,0);


END


if PK  and TISREMAIN(0)=0 then BEGIN
  tsellshort( tholding<0,0,lmt,DYNAINFO(28));
  tbuy(kd and  tholding=0,1,lmt,c-30*MINDIFF);
END


if KD and TISREMAIN(0)=0 then BEGIN
  tbuy( tholding=0,1,lmt,c-30*MINDIFF);
END

IF  pd  and TISREMAIN(0)=0 then begin
   tsell( tholding>0 ,0,lmt,DYNAINFO(34));
  tbuyshort (kk and tholding=0,1,lmt,c+30*MINDIFF);
   END
 
IF KK  and TISREMAIN(0)=0 then begin
   tbuyshort (tholding=0,1,lmt,c+30*MINDIFF);
end


--  作者:jinzhe
--  发布时间:2015/1/15 13:36:09
--  

修改的需求是什么?


--  作者:haizxj
--  发布时间:2015/1/15 13:40:42
--  
正常撤单下单,跟你们李老师电话说过了
--  作者:FexTel
--  发布时间:2015/1/15 14:02:59
--  

RSV:=(CLOSE-LLV(LOW,9))/(HHV(HIGH,9)-LLV(LOW,9))*100;
K:=SMA(RSV,3,1);
D:=SMA(K,3,1);
kd:=K>D and c>o;//开多平空条件
pd:=c<o;
kd1:TISREMAIN(3)<>0 or TISREMAIN(2)<>0;

kk:=k<d and c<o;//开空平多条件
pk:=c>o;
kk1:TISREMAIN(4)<>0 or  TISREMAIN(1)<>0;

if kd1 AND  kd then
BEGIN

//MSGOUT(1,\'kd满足撤单\')
tcancel(1,0);
END

if TISREMAIN(1)<>0   AND kk  then
BEGIN

//MSGOUT(1,\'kk满足撤单\')
tcancel(1,0);
END

 
if TISREMAIN(1)<>0 AND pd then
BEGIN

//MSGOUT(1,\'pd满足撤单\')
tcancel(1,0);
END


if TISREMAIN(3)<>0 AND pk then
BEGIN

//MSGOUT(1,\'pk满足撤单\')
tcancel(1,0);
END


if kd  and TISREMAIN(0)=0 AND THOLDING<=0 then
BEGIN
  tsellshort(1,0,lmt,DYNAINFO(28));
  tbuy(1,1,lmt,c-30*MINDIFF);
END


IF kk and TISREMAIN(0)=0 AND THOLDING>=0 then
begin
  tsell(1,0,lmt,DYNAINFO(34));
  tbuyshort(1,1,lmt,c+30*MINDIFF);
END
//是否是平仓反手完全是依据策略条件来的
//请用户注意下自己的条件以及思路,不能一一对应的话是做不到平仓反手的哦


--  作者:haizxj
--  发布时间:2015/1/15 14:38:32
--  

以上程序模拟运行时

没有平多平空指令

 

发现持有空单时,发出平空信号时,并不平空

 

反之也是

[此贴子已经被作者于2015/1/15 14:39:16编辑过]

--  作者:FexTel
--  发布时间:2015/1/15 14:58:54
--  
if kd and TISREMAIN(0)=0 AND THOLDING<=0 then
BEGIN
tsellshort(1,0,lmt,DYNAINFO(28));
tbuy(1,1,lmt,c-30*MINDIFF);
END


IF kk and TISREMAIN(0)=0 AND THOLDING>=0 then
begin
tsell(1,0,lmt,DYNAINFO(34));
tbuyshort(1,1,lmt,c+30*MINDIFF);
END

 

//在里面加个输出语句,输出下TISREMAIN(0)的值


--  作者:haizxj
--  发布时间:2015/1/15 15:02:41
--  

李老师,将这个放在最后是否可以

 

if PK  and TISREMAIN(0)=0 then BEGIN
  tsellshort( tholding<0,0,lmt,DYNAINFO(28));
 
END

IF  pd  and TISREMAIN(0)=0 then begin
   tsell( tholding>0 ,0,lmt,DYNAINFO(34));
 
   END


--  作者:haizxj
--  发布时间:2015/1/15 15:05:08
--  
发现一放入就有问题出现了,多次买入
--  作者:haizxj
--  发布时间:2015/1/15 15:40:14
--  

这不是单纯的反手指令,

开多开空是一个条件,平多平空又是另一个条件

 


--  作者:haizxj
--  发布时间:2015/1/19 13:39:30
--  
已经解决,谢谢