以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  交易策略发布专区  (http://weistock.com/bbs/list.asp?boardid=10)
----  【悬赏】编写IF日内突破交易规则  (http://weistock.com/bbs/dispbbs.asp?boardid=10&id=4918)

--  作者:admin
--  发布时间:2011/1/20 16:29:24
--  【悬赏】编写IF日内突破交易规则
交易手数为1手(可以设置)

记录当天开盘后39分钟内的最高,最低价,最高价记为HH,最低价记为LL

开多:
最新价大于HH,以指定价(HH+20个跳动点(0.2为一个跳动点)),开多,
当成交后,设下止损价为HH减去50个跳动点
当有最新价达到HH加上50个跳动点时,止损价改为HH加4个跳动点
平仓1:最新价大于HH*1.03平仓,以指定价(最新价-50个跳动点)平仓
平仓2:到3点10分平仓。
开多止损或者平仓后,不再出现开多交易信号

开空:
最新价小于LL,以指定价(LL-20个跳动点(0.2为一个跳动点)),开空,
当成交后,设下止损价为LL加上50个跳动点
当有最新价达到LL减去50个跳动点时,止损价改为LL减去4个跳动点
平仓1:最新价小于LL*0.97平仓,以指定价(最新价+50个跳动点)平仓
平仓2:到3点10分平仓。
开空止损或者平仓后,不再出现开空交易信号
谢谢
[此贴子已经被作者于2011-1-20 16:30:02编辑过]

--  作者:luoying
--  发布时间:2011/1/20 16:33:22
--  

思路不错


--  作者:luoying
--  发布时间:2011/1/20 18:19:30
--  

写好了,用于1分钟周期,我觉得没问题,版主检查下吧!

不对的地方,请指正

 

股指突破模型

 

INPUT:NMIN(39,10,60,10);                                          //设置参数时间

INPUT:NOFFSET(20,2,50,2);                                         //设置参数滑点

INPUT:LOTS(1,1,100,1);                                            //设置参数仓位

INPUT:STOPSET(50,50,100,10);                                     //设置参数止损

VARIABLE:FLAG=0; //用于限制开仓次数

VARIABLE:STOP_P=0; //用于变动止损

CYC:=BARSLAST(DATE>REF(DATE,1))+1;                            //统计日内K线数

HH:=VALUEWHEN(TIME<=91500+NMIN*100,HHV(H,CYC));                           {在从开盘到设定时间(默认参数开盘39分)内保存当天最高价}

LL:=VALUEWHEN(TIME<=91500+NMIN*100,LLV(L,CYC));                      {在从开盘到设定时间(默认参数开盘39分)内保存当天最低价}

IF HIGH > HH AND HOLDING<=0  AND FLAG<>1 THEN  {如果最高价突破设定时间内的前高加设定偏移并且目前没有多单,那么}

BEGIN

         MYPRICE: = HH + NOFFSET*MINDIFF;       {预设进场价.既等于设定时间内的前高加设定偏移}

         IF C >= MYPRICE THEN                                                                                                   

         BEGIN

                   MYPRICE: = C;
                  
                   FLAG:=1;

                   SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);                                                      {如果有空单先平}

                   BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);   {如果没有多单则以开盘价开多LOTS手 }  
                  
                   IF C<=HH-STOPSET*MINDIFF THEN   SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);
                                                                                        
                   IF C>=HH+STOPSET*MINDIFF THEN  STOP_P:=4;
                  
                   IF C<=HH+STOP_P*MINDIFF THEN  SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);
                  
                   IF C>=HH*1.03 THEN  SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);                                                                                                                            
         END

END

IF LOW <= LL AND HOLDING>=0 AND FLAG<>3 THEN               {以下开空部分同上,只不过方向相反}

BEGIN

         MYPRICE: = LL - NOFFSET*MINDIFF;

         IF C <= MYPRICE THEN

         BEGIN

                   MYPRICE: = C;
                  
                   FLAG:=3;

                   SELL(HOLDING>0,0,LIMITR,MYPRICE);

                   BUYSHORT(HOLDING=0,LOTS,LIMITR,MYPRICE);
                  
                   IF C>=LL+STOPSET*MINDIFF THEN  SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);
                  
                   IF C<=LL-STOPSET*MINDIFF THEN  STOP_P:=4;
                  
                   IF C>=LL-STOP_P*MINDIFF THEN  SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);
                  
                   IF C<=LL*0.97 THEN  SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);    
                  
         END

END

IF TIME >= 151000 THEN                                                                 {收盘平仓}

BEGIN

         SELL(HOLDING>0,0,LIMITR,C-NOFFSET*MINDIFF);

         SELLSHORT(HOLDING<0,0,LIMITR,C+NOFFSET*MINDIFF);

END

[此贴子已经被作者于2011-1-20 18:30:32编辑过]

--  作者:luoying
--  发布时间:2011/1/20 18:28:05
--  
用于1分钟周期
--  作者:xian_0_9
--  发布时间:2011/1/20 19:08:44
--  

给了5个金币了。说明落英写对了?

管理员自己不会写么?不能吧?


--  作者:newbasic
--  发布时间:2011/1/20 19:19:53
--  
牛人
--  作者:阿火
--  发布时间:2011/1/20 20:42:24
--  
MYPRICE: = HH + NOFFSET*MINDIFF;       {预设进场价.既等于设定时间内的前高加设定偏移}

         IF C >= MYPRICE THEN       

BEGIN  

                   MYPRICE: = C;              
                   FLAG:=1;

                   SELLSHORT(HOLDING<0,0,LIMITR,MYPRICE);                                                      {如果有空单先平}

                   BUY(HOLDING=0,LOTS,LIMITR,MYPRICE);   {如果没有多单则以开盘价开多LOTS手 }  

                   ……

END

 

写得不对吧?要的是最新价>hh,就以hh+20*mindiff开仓的

 

 我来写一个

[此贴子已经被作者于2011-1-20 20:54:59编辑过]

--  作者:luoying
--  发布时间:2011/1/20 21:09:19
--  

不好意思 只能做成这样了

 

 

INPUT:NMIN(39,10,60,10);                                          //设置参数时间

INPUT:NOFFSET(20,2,50,2);                                         //设置参数滑点

INPUT:LOTS(1,1,100,1);                                            //设置参数仓位

VARIABLE:FLAG=0; //用于限制开仓次数

VARIABLE:STOPSET=50; //用于变动止损

CYC:=BARSLAST(DATE>REF(DATE,1))+1;                            //统计日内K线数

HH:=VALUEWHEN(TIME<=91500+NMIN*100,HHV(H,CYC));                           {在从开盘到设定时间(默认参数开盘39分)内保存当天最高价}

LL:=VALUEWHEN(TIME<=91500+NMIN*100,LLV(L,CYC));                      {在从开盘到设定时间(默认参数开盘39分)内保存当天最低价}

//开多仓

LONG:=HOLDING=0  AND  C > HH AND TIME>91500+NMIN*100 AND TIME<151000;;

//平多仓条件:
bline:=IF(holding>0,HHV(HIGH,TYPEBAR(1,1))-50*MINDIFF,L-50*MINDIFF);//多单移动止损线

PARTLINE(holding>0, bline, colorrgb(255,0,0));

SLONG:=(HOLDING>0 AND bline>=C) ; //OR (HOLDING>0 AND C>HH*1.03)


//开空仓

SHORT:=HOLDING=0 AND C < LL AND TIME>91500+NMIN*100 AND TIME<151000;

//平空仓条件:
sline:=IF(holding<0,LLV(LOW,TYPEBAR(1,3))+STOPSET*MINDIFF,L+STOPSET*MINDIFF);//空单移动止损线

PARTLINE(holding<0, sline, colorrgb(0,255,0));

SSHORT:=(HOLDING<0 AND sline<=C) ; //OR (HOLDING<O AND C<=LL*0.97)


                                

BUY(LONG,LOTS,LIMITR,C+NOFFSET*MINDIFF);   {如果没有多单则以开盘价开多LOTS手 }  

SELL(SLONG,HOLDING,LIMITR,C-NOFFSET*MINDIFF);


BUYSHORT(SHORT,LOTS,LIMITR,C-NOFFSET*MINDIFF);
                                                                
SELLSHORT(SSHORT,HOLDING,LIMITR,C+NOFFSET*MINDIFF); 

 

//收盘平仓

SELL(HOLDING>0 AND TIME>=151000,HOLDING,LIMITR,C-NOFFSET*MINDIFF);

SELLSHORT(HOLDING<0 AND TIME>=151000,HOLDING,LIMITR,C+NOFFSET*MINDIFF);


 


--  作者:zhphappy
--  发布时间:2011/1/20 21:31:42
--  

晕,我的规则发在海洋和TB怎么跑这里来了,呵呵,我最新改了一下,请同学帮忙再编一下,谢谢

 

 

IF日内交易规则

当天有效,1分钟周期。

基本原理:突破当天开盘后39分钟内的最高价最低价作多作空。

一天最多交易二次,一次作多,一次作空

交易手数为1手(可以设置)

记录当天开盘后39分钟内的最高,最低价,最高价记为HH,最低价记为LL

开多:

最新价大于HH,开多(超价20个跳动价位买入追买,保证成交)

当成交后,设下止损价为HH减去40个跳动点

当有最新价达到HH加上50个跳动点时,止损价改为HH加上4个跳动点

平仓1:最新价大于HH*1.03平仓,以指定价(最新价-50个跳动点)平仓

平仓2:到3点10分平仓。

开多止损或者平多后,不再出现开多交易信号

开空:

最新价小于LL,开空(超价20跳动个价位追卖,保证成交)

当成交后,设下止损价为LL加上40个跳动点

当有最新价达到LL减去50个跳动点时,止损价改为LL减去4个跳动点

平仓1:最新价小于LL*0.97平仓,以指定价(最新价+50个跳动点)平仓

平仓2:到3点10分平仓。

开空止损或者平空后,不再出现开空交易信号


--  作者:王锋
--  发布时间:2011/1/20 22:04:06
--  
总不能吃穿全靠别人伺候吧,已经帮你做了90%了剩下的自己学习一下看看自己能否进行改进