以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://222.73.7.161/bbs/index.asp)
--  策略编写求助区  (http://222.73.7.161/bbs/list.asp?boardid=11)
----  请各位老大看看  (http://222.73.7.161/bbs/dispbbs.asp?boardid=11&id=6772)

--  作者:食客
--  发布时间:2011/6/4 20:35:34
--  请各位老大看看

我写了个交易系统,但不知道有没有错的地方!请各位老大帮忙给看看!

我设计的思路是:只做股指的日内交易,且每次进出都是满仓操作,操作分为:平多开空 或 平空开多!如果开仓以后出现10点以上的亏损就进行强平,并定义为非交易性止损!非交易性止损一天中出现俩次,这天不再进行开仓!

 

VARIABLE:KD=0,KK=0,CZQ=1,KKS=0,KS1=0,KS2=0;

 

TTKD:平空开多;
TTKK:平多开空;


IF TIME>=090000 AND TIME<=151400 AND KD=0 AND CZQ=1 AND KKS<4 THEN BEGIN
 IF TTKD AND HOLDING<=0THEN BEGIN
  SELLSHORT(1,0,LIMIT,CLOSE);
  BUY(1,0,LIMIT,CLOSE);
  KD:=1;
  KK:=0;
 END
 
 IF TTKK AND HOLDING>=0 AND KK=0 AND CZQ=1 AND KKS<4 THEN BEGIN
  SELL(1,0,LIMIT,CLOSE);
  BUYSHORT(1,0,LIMIT,CLOSE);
  KK:=1;
  KD:=0;
 END

 IF C<=ENTERPRICE-50*MINDIFF AND HOLDING>0 THEN SELL(1,0,LIMIT,CLOSE) KS1=KS1+1;
 IF C>=ENTERPRICE+50*MINDIFF AND HOLDING<0 THEN SELLSHORT(1,0,LIMIT,CLOSE) KS2=KS2+1;
  KKS:=KS1+KS2;
END

IF TIME>=151400 THEN BEGIN
  SELLSHORT(1,0,LIMIT,CLOSE);
  SELL(1,0,LIMIT,CLOSE);
END

 

 


--  作者:guotx2010
--  发布时间:2011/6/5 23:03:28
--  
貌似可以,自己测试一下就知道了。
--  作者:食客
--  发布时间:2011/6/6 11:11:39
--  

谢谢老师的回答!

      现在有几个问题还想问问老师!其一:在实测中出现过漏单的现象,这有可能是哪些原因造成的?其二:我只用平空开多和平多开空做成序列型交易系统可以显示开平信号,可我用现在的琢K线型交易系统,显示的信号不全!这又是啥原因造成的?


--  作者:董小球
--  发布时间:2011/6/7 9:49:21
--  

漏单 有可能是你的报价未成交就撤单了,或者信号出现又消失了,建议你用走完K线的序列模式来运行试试!


--  作者:26327756l
--  发布时间:2011/6/7 9:54:26
--  

你的公式中变量声明的不太明白。

[此贴子已经被作者于2011-6-7 10:00:19编辑过]

--  作者:食客
--  发布时间:2011/6/12 13:07:32
--  把代码贴出来了!

VARIABLE:KD=0,KK=0,CZQ=1,KKS=0,KS1=0,KS2=0;

TTKD:=CROSS(CLOSE,MA(CLOSE,4));
TTKK:=CROSS(MA(CLOSE,4),CLOSE);

IF TIME>=091600 AND TIME<=151300 AND KD=0 AND CZQ=1 AND KKS<4 THEN BEGIN
 IF TTKD AND HOLDING<=0THEN BEGIN
  SELLSHORT(1,0,THISCLOSE);
  BUY(1,0,THISCLOSE);
  KD:=1;
  KK:=0;
 END
 
 IF TTKK AND HOLDING>=0 AND KK=0 AND CZQ=1 AND KKS<4 THEN BEGIN
  SELL(1,0,THISCLOSE);
  BUYSHORT(1,0,THISCLOSE);
  KK:=1;
  KD:=0;
 END

 IF C<=ENTERPRICE-30*MINDIFF AND HOLDING>0 THEN SELL(1,0,THISCLOSE) KS1=KS1+1;
 IF C>=ENTERPRICE+30*MINDIFF AND HOLDING<0 THEN SELLSHORT(1,0,THISCLOSE) KS2=KS2+1;
  KKS:=KS1+KS2;
END

IF TIME>=151400 THEN BEGIN
  SELLSHORT(1,0,THISCLOSE);
  SELL(1,0,THISCLOSE);
END

 

大家帮着给看看!为何不能正常显示?到底错在哪里了?
--  作者:admin
--  发布时间:2011/6/12 13:30:15
--  
请问正常显示应该是什么样效果的
--  作者:阿火
--  发布时间:2011/6/12 21:59:55
--  

KS1=KS1+1;
KS2=KS2+1;

很明显,这2个都是错的


--  作者:食客
--  发布时间:2011/6/12 23:20:50
--  
以下是引用admin在2011-6-12 13:30:15的发言:
请问正常显示应该是什么样效果的

我在序列计算模型下可以正常显示呀!


--  作者:食客
--  发布时间:2011/6/12 23:23:27
--  
以下是引用leevolvo在2011-6-12 21:59:55的发言:

KS1=KS1+1;
KS2=KS2+1;

很明显,这2个都是错的

该如何改呢?我的思路是在条件发生时变量KS1增加1!