设为首页收藏本站

 找回密码
 注册
楼主: zyxsir
打印 上一主题 下一主题

高点 [复制链接]

Rank: 5Rank: 5

精华
0
UID
32409
积分
896
帖子
224
主题
4
阅读权限
60
注册时间
2011-4-7
最后登录
2017-1-15
11#
发表于 2011-8-29 15:46:19 |只看该作者
你的条件里面用到了 K001,K001[1],K001[2] 三个数据进行判断KVALUE50的真假,
同时要求当日有效,可以理解为,如果K001是今天第三根bar或向后的bar,而且KVALUE50==TRUE的时候,KVALUE50在当前bar上有效。则
IF (KVALUE50==TRUE && DATE[1]==DATE[2] && DATE==DATE[1])
{ myhigh8 = IIF(HIGH>HIGH[1],HIGH,HIGH[1]);}
KISS顺势轻仓

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
12#
发表于 2011-8-30 13:05:22 |只看该作者
Params
    Numeric Length(9);                        
    Numeric SlowLength(3);        

Vars
    NumericSeries HighestValue;                                
    NumericSeries LowestValue;                                       
    NumericSeries K001;//正规K
    NumericSeries RSV001;
    BoolSeries Kvalue50(False);
    NumericSeries myhigh5;

NumericSeries mylow5;

Bool condbuy;

Bool condsell;

Begin
        HighestValue = HighestFC(High, Length);
        LowestValue = LowestFC(Low, Length);
        RSV001 = (Close-LowestValue)/(HighestValue-LowestValue)*100;//计算RSV
        K001 = SMA(RSV001,SlowLength,1);
        Kvalue50 = k001>=50 && k001[1]>=50 && k001[2]<50 ;
        If(Kvalue50==True&& DATE[1]==DATE[2] && DATE==DATE[1])   myhigh5 = IIF(HIGH>HIGH[1],HIGH,HIGH[1]);
         Kvalue50 = k001<50 && k001[1]<50 && k001[2]>=50 ;
        If(Kvalue50==True&& DATE[1]==DATE[2] && DATE==DATE[1] )   mylow5 = IIF(low<low[1],low,low[1]);

condbuy=close>myhigh5[1] && MarketPosition != 1;

condsell=close<mylow5[1] && MarketPosition != -1;

If(condbuy)  Buy(1,0);

If(condsell)  SellShort(1,0);

if (date!=date[1] && time==0.0915)  SetGlobalVar(0,0);
else
{
    if(condbuy==true && GetGlobalVar(0)!=1) //符合买入条件, 同时上次开仓方向不是多单
  {
     Buy(1,0);
     SetGlobalVar(0,1);  // 使用全局变量记录开仓方向
  }
   if(condsell==true && GetGlobalVar(0)!=-1)
  {
     SellShort(1,0);
     SetGlobalVar(0,-1);  // 使用全局变量记录开仓方向
  }
}
        If(Time >= 0.1505)

        {

                Sell(1,Open);

                BuyToCover(1,Open);

        }


END

附件: 你需要登录才可以下载或查看附件。没有帐号?注册
天道酬勤,随遇而安

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
13#
发表于 2011-8-30 13:21:10 |只看该作者
本帖最后由 zyxsir 于 2011-8-30 13:22 编辑

图上标示1处是8月14日5分钟图上出现k值>=50的两根k线,当后面的K线的收盘价大于他们的高点时买入开仓,在当天是正确的开仓点。
标示2处是8月15日的k线,此处不应该开仓,不能用标示1处的k线来判断,要等待今天出现 Kvalue50 = k001>=50 && k001[1]>=50 && k001[2]<50
标示3处满足了条件,后面开仓出是正确的If(Kvalue50==True&& DATE[1]==DATE[2] && DATE==DATE[1])   myhigh5 = IIF(HIGH>HIGH[1],HIGH,HIGH[1]);
condbuy=close>myhigh5[1] && MarketPosition != 1;
If(condbuy)  Buy(1,0);
标示4处不应该开平仓,正常开仓后,再观察后面的K值,当再出现一下条件反手
Kvalue50 = k001<50 && k001[1]<50 && k001[2]>=50 ;
        If(Kvalue50==True&& DATE[1]==DATE[2] && DATE==DATE[1] )   mylow5 = IIF(low<low[1],low,low[1]);
标示5处出现了Kvalue50 = k001<50 && k001[1]<50 && k001[2]>=50 ;但后面没收破低点,不用平仓,直到收盘平仓
天道酬勤,随遇而安

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
14#
发表于 2011-8-30 13:24:49 |只看该作者
还请kingforestcn帮一把,帮我彻底解决这个难题!谢谢!谢谢kingforestcn!!
天道酬勤,随遇而安

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
32409
积分
896
帖子
224
主题
4
阅读权限
60
注册时间
2011-4-7
最后登录
2017-1-15
15#
发表于 2011-8-30 17:27:15 |只看该作者
最好描述清楚你的开仓和平仓条件,这样太乱了。
KISS顺势轻仓

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
16#
发表于 2011-8-30 17:53:51 |只看该作者
在5分钟的k线图上,做日内交易
以kd的k值作为多空分界,如果当前k线对应的k值在50以下,出现连续2根k线的k值大于50时,取这两根K线的最高值myhigh5,当后面的k线收盘价大于myhigh5时买入开仓
买入开仓后,如果再出现连续2根k线的k值小于50时,取这2根k线的最低值mylow5,当当后面的k线收盘价小于mylow5时平仓后反手开空仓。
上面程序在执行时总是会参照以前的高低值发出买卖信号!让kingforestcn费神了,谢谢!
天道酬勤,随遇而安

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
32409
积分
896
帖子
224
主题
4
阅读权限
60
注册时间
2011-4-7
最后登录
2017-1-15
17#
发表于 2011-8-31 12:32:09 |只看该作者
下午给你搞好
KISS顺势轻仓

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
32409
积分
896
帖子
224
主题
4
阅读权限
60
注册时间
2011-4-7
最后登录
2017-1-15
18#
发表于 2011-8-31 13:18:37 |只看该作者
Params
    Numeric Length(9);                        
    Numeric SlowLength(3);        

Vars
    NumericSeries HighestValue;                                
    NumericSeries LowestValue;                                       
    NumericSeries K001;//正规K
    NumericSeries RSV001;
    NumericSeries Kvalue50(0);
        NumericSeries Kvalue51(0);
    NumericSeries myhigh5;
    NumericSeries BarsCounter(0);
        NumericSeries mycurrenttime;
        NumericSeries mylow5;
        NumericSeries sumtodayK50(0);
        NumericSeries sumtodayK51(0);
        NumericSeries sumsinceentryK50(0);
        NumericSeries sumsinceentryK51(0);
        NumericSeries condbuy(0);
        NumericSeries condsell(0);

Begin

                If (Date!=Date[1])
                {
                        BarsCounter=1;
                        mycurrenttime=Time;
                }
                else if (time!=mycurrenttime)
                { BarsCounter=BarsCounter[1]+1;
                  mycurrenttime=time;
                }
               
               
                if (date!=date[1])  SetGlobalVar(0,0);
                HighestValue = HighestFC(High, Length);
        LowestValue = LowestFC(Low, Length);
        RSV001 = (Close-LowestValue)/(HighestValue-LowestValue)*100;//计算RSV
        K001 = SMA(RSV001,SlowLength,1);
               
IF (DATE[1]==DATE[2] && DATE==DATE[1])
{       

                Kvalue50=IIF(k001>=50 && k001[1]>=50 && k001[2]<50,1,0);
             If(Kvalue50==1)   
                {
                        myhigh5 = IIF(HIGH>HIGH[1],HIGH,HIGH[1]);

                }
               
                Kvalue51=IIF(k001<50 && k001[1]<50 && k001[2]>=50,1,0);
        If(Kvalue51==1)  
                {
                        mylow5 = IIF(low<low[1],low,low[1]);

                }
               
                PlotNumeric("MyHigh5",myhigh5);
                PlotNumeric("mylow5 ",mylow5);
                sumtodayK50=Summation(Kvalue50,BarsCounter);
                sumtodayK51=Summation(Kvalue51,BarsCounter);
                if(BarsSinceEntry>0)
                {
                        sumsinceentryK50=Summation(Kvalue50,BarsSinceEntry);
                        sumsinceentryK51=Summation(Kvalue51,BarsSinceEntry);
                }
                else
                {
                        sumsinceentryK50=0;
                        sumsinceentryK51=0;
                }
                if (marketposition==0)
                {
                        condbuy=IIF(close>myhigh5 && sumtodayK50!=0,1,0);
                        condsell=IIF(close<mylow5 && SumtodayK51!=0,1,0);
                }
                else if (marketposition==1)
                {
                        condsell=IIF(close<mylow5 && sumsinceentryK51!=0,1,0);
                        condbuy=0;
                }
                else if (marketposition==-1)
                {
                        condbuy=IIF(close>myhigh5 && SumsinceentryK50!=0,1,0);
                        condsell=0;
                }
               


    if(condbuy[1]==1 && GetGlobalVar(0)!=1 && MarketPosition!=1) //符合买入条件, 同时上次开仓方向不是多单
  {
     Buy(1,OPEN);
     SetGlobalVar(0,1);  // 使用全局变量记录开仓方向
  }
   if(condsell[1]==1 && GetGlobalVar(0)!=-1 && MarketPosition!=-1)
  {
     SellShort(1,OPEN);
     SetGlobalVar(0,-1);  // 使用全局变量记录开仓方向
  }

        If(Time >= 0.1505)

        {

                Sell(1,Open);

                BuyToCover(1,Open);

        }

}
else
{                        Kvalue50=0;
                        Kvalue51=0;
                        condbuy=0;
                        condsell=0;
}
END
KISS顺势轻仓

使用道具 举报

Rank: 5Rank: 5

精华
0
UID
15934
积分
681
帖子
188
主题
70
阅读权限
60
注册时间
2010-9-9
最后登录
2021-9-1
19#
发表于 2011-8-31 15:11:55 |只看该作者
十分感谢kingforestcn,问题解决了,你解决问题的思路清晰,也很巧妙,也很受启发。盼望开拓者能请你做兼职管理员,你一定做得很好!也希望我的问题对你有所启发。再次表示感谢!
天道酬勤,随遇而安

使用道具 举报

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

bottom

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

GMT+8, 2024-5-21 00:53

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部