设为首页收藏本站

 找回密码
 注册
查看: 2772|回复: 6
打印 上一主题 下一主题

新手才学,麻烦哪位管理和大侠编写 [复制链接]

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
跳转到指定楼层
1#
发表于 2011-12-14 11:59:58 |只看该作者 |倒序浏览
1.当K先向上突破80,再次向下突破80,卖平开

2.当卖平开,仓后画一条止损线:5日最高价,以此价固定不变直到下一个条件信号出现

3.当收盘价突破止损线,反手平仓开多,在此之后出现的(K先突破80,再次向下突破80)都视为无效,而是用收盘价跌破10日均线作为条件平多仓。



1.当K先向下跌破20,再次向上突破20,买平开

2.当买平开,仓后画一条止损线:5日最低价,以此价固定不变直到下一个条件信号出现

3.当收盘价跌破止损线,反手平仓开空,在此之后出现的(K先向下跌破20,再次向上突破20),都视为无效,而是用收盘价突破10日均线作为条件平空仓。

我编的怎么没信号?
Params
Numeric N(11);
Numeric P1(3);
Numeric P2(3);
numeric lots(1);

Vars
Numeric Trend(0);//开仓标记,-1空单,1多单
Numeric mySAR0(0); //反手持仓标记,0无反手持仓。1为反手持仓
Numeric valueH(0); //传递止损点的中间变量
Numeric valueL(0);
NumericSeries  myRSV;
NumericSeries kx;
NumericSeries DX;
BoolSeries myB;
BoolSeries myS;
BOOL B_stop;
BOOL S_stop;
  Numeric mystopH;
Numeric mystopL;
NumericSeries myH;
  NumericSeries myL;
  Bool stopB;
  Bool stopS;
  BoolSeries CON1;
  BoolSeries CON2;
  BoolSeries CON3;
  BoolSeries CON4;
Begin
// 过滤集合竞价
If((BarType==1 or BarType==2) && BarStatus == 2 && date!=date[1] && high==low) return;
If(BarType==0 && BarStatus == 2 && CurrentTime<=0.09 && high==low) return;


If  ( Date!=Date[1] && CurrentBar>=2) ;

{
myRSV=SummationFC(CLOSE-LowestFC(LOW,N))/SummationFC(HighestFC(HIGH,N)-LowestFC(LOW,N))*100;
Kx= AverageFC(myRSV,P1);
DX= AverageFC(Kx,P2);

myH=Highest(H,5);
myL=Lowest(L,5);
//原始开仓信号
myB=CrossUnder(myRSV,20);
myS=CrossOver(myRSV,80);
}

IF(MarketPosition!=-1&&myS  && mysar0==0)

{
Trend= -1; //空标志
SetGlobalVar(3,TREND);
}else
IF(MarketPosition!=1&&myB &&mysar0==0)
{
Trend= 1; //多标志
SetGlobalVar(4,TREND);
                 }
if( Time > 0.0910 && Time<0.1450)   
CON1=CrossUnder(myRSV,80)&& TREND==GetGlobalVar(3)  && mysar0==0 ;
if (CON1[1])   //  原始空平开信号,SAR0标记为0
{
SellShort(LOTS,OPEN-MinMove*PriceScale);
     valueH:=myH;
         SetGlobalVar(1, valueH);
     mySAR0=0;

  Commentary("条件1开空");
}ELSE       

CON2=CrossOver(myRSV,20) && TREND==GetGlobalVar(4) && mysar0==0;
     if (CON2[2])//  原始买平开信号,SAR0标记为0
     {
     BUY(LOTS,OPEN+MinMove*PriceScale);
     valueL=myL;
         SetGlobalVar(2,  valueL);
     mysar0=0;
   
         Commentary("条件1开多");
}
valueH:=GetGlobalVar(1); //止损点取5日高点
valueL:=GetGlobalVar(2); //止损点取5日低点
mystopH:=valueH; // 设定空单止损点
mystopL:=valueL; // 设定多单止损点

//止损反手信号
B_stop:=CrossOver(C[1],mystopH);  //空头止损并反手
S_stop:=CrossOver(mystopL,C[1]);  //多头止损并反手
stopB:=CrossOver(C[1],Average(C[1],10));//反手的空单平仓
stopS:=CrossOver(Average(C[1],10),C[1]);//反手的多单平仓
//进入策略逻辑的条件转换
CON3=( MarketPosition==1  &&S_stop && mySAR0==0 )  ;
if (CON3 ) // (多单标记 且 无反手持仓),多头止损并反手,SAR0标记为1

{
     SellShort(LOTS,OPEN-MinMove*PriceScale);
     mySAR0=1;


}ELSE


if  (MarketPosition==-1 and stopB )  //反手空单平仓,SAR0归0

{
  BuyToCover(LOTS,OPEN+MinMove*PriceScale);
  
   mysar0=0;

   }ELSE

CON4=MarketPosition==-1 and B_stop  && mySAR0==0 ;
   if (CON4 )  // (空单标记 且 无反手持仓),空头止损并反手,SAR0标记为1

{
     BUY(LOTS,OPEN+MinMove*PriceScale);
   
     mySAR0=1;
       
   }  ELSE

   


   if (MarketPosition==1 and mysar0==1 &&  stopS ) //反手仓多单平仓,SAR0归0
{
     SELL(LOTS,OPEN-MinMove*PriceScale);
     mySAR0=0;
   }Else
If((Date[-1]!=InvalidInteger && Date!=Date[-1])||(Date[-1]==InvalidInteger && Date < CurrentDate))
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }Else
If(Date==CurrentDate && Time==0.1455 && CurrentTime>=0.1459)
    {
        Sell(0,Close);
        BuyToCover(0,Close);
    }

end










\
一事无成

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
2#
发表于 2011-12-14 13:01:07 |只看该作者
LZ看的是不是日线啊。。。。日线的话,时间就是 0 ,条件就都悲剧了
期货IT

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
3#
发表于 2011-12-14 13:02:52 |只看该作者
不是,是分钟线
一事无成

使用道具 举报

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
4#
发表于 2011-12-14 13:17:42 |只看该作者
CON1=CrossUnder(myRSV,80)&& TREND==GetGlobalVar(3)  && mysar0==0 ;
这里的CrossUnder(myRSV,90)换成myS貌似就有信号了,LZ既然用了变量,就用到底嘛,不过为什么我还不清楚。。。。
期货IT

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
5#
发表于 2011-12-14 13:20:42 |只看该作者
MYS是上穿80.CrossUnder(myRSV,80) 是下穿80,就是先上穿80后,再下穿80
一事无成

使用道具 举报

初级大户

酱油

Rank: 5Rank: 5

精华
0
UID
37561
积分
1108
帖子
395
主题
9
阅读权限
60
注册时间
2011-5-4
最后登录
2014-11-3
6#
发表于 2011-12-14 13:48:37 |只看该作者
额,那个。。。trend=-1,了,就是上穿了,怎么可能满足既上穿,又下穿。。。。
LZ的意思肯定是上穿之后再下穿,这样的话代码不能这么写。。。。
TREND==GetGlobalVar(3)这个判断条件。。。。。改成GetGlobalVar(3)==-1就好了嘛。。。
期货IT

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
38411
积分
669
帖子
160
主题
17
阅读权限
60
注册时间
2011-5-8
最后登录
2023-10-4
7#
发表于 2011-12-14 15:09:42 |只看该作者
谢谢,很多逻辑搞不清
一事无成

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

bottom

静态版|手机版|联系我们|交易开拓者 ( 粤ICP备07044698   

GMT+8, 2024-5-5 12:00

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部