设为首页收藏本站

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

请老师帮忙解决问题,我的日内系统问题出在哪里? [复制链接]

Rank: 2

精华
0
UID
424
积分
53
帖子
9
主题
3
阅读权限
30
注册时间
2007-9-26
最后登录
2019-4-26
跳转到指定楼层
1#
发表于 2008-12-28 14:04:10 |只看该作者 |倒序浏览
系统原理:
开多条件:同时满足成交量大于5天和30天的均量线,收盘价大于前8根k线之中得最高价开仓
平仓条件:1、收盘价小于前1根k线得最低价平仓
               2、收盘价小于最高价与最低价之和的1/2也平仓
问题在于没满足条件系统出现信号,请老师帮忙解决,谢谢!
我编的代码如下:
          Params
        Numeric Length1(5);
        Numeric Length2(10);
        Numeric Length3(30);
Vars   
        NumericSeries VolMA1;
        NumericSeries VolMA2;
        NumericSeries VolMA3;
Begin
    VolMA1=AverageFC(Vol, Length1);
    VolMA2=AverageFC(Vol, Length2);
        VolMA3=AverageFC(Vol, Length3);
        If(Time > 0.090500 && Time < 0.145500) // 时间在9:05分之后,14:55之前
        {
                If(MarketPosition == 0)
                {
                        If(C>h[8]  And vol>volma1 And Vol>volma3) // 开多仓
                        {
                                Buy(1,c);
                                Return;
                        }
                       
                        If(C<l[8] And vol>volma1 And Vol>volma3) // 开空仓
                        {
                                SellShort(1,c);
                                Return;
             }
                 }         
            If(MarketPosition == 1  And C<l[1] ) // 平多仓
                {
                        Sell(0,c);
                }
               
                If(MarketPosition == -1 And C>h[1]  ) // 平空仓
                {
                        BuyToCover(0,c);
                }
                If(MarketPosition == 1 And c<(h+L)/2) // 平多仓
                {
                        Sell(0,c);
                }
               
                If(MarketPosition == -1 And c>(h+l)/2) // 平空仓
                {
                        BuyToCover(0,c);
                }
        }
        If(Time >= 0.145500) // 时间在14:55之后
        {
                If(MarketPosition == 1)
                {
                        Sell(0,c);
                }Else If(MarketPosition == -1)
                {
                        BuyToCover(0,c);
                }
        }


End

Rank: 2

精华
0
UID
424
积分
53
帖子
9
主题
3
阅读权限
30
注册时间
2007-9-26
最后登录
2019-4-26
2#
发表于 2008-12-28 14:14:08 |只看该作者
highest(h,8)和high[8]有什么区别?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2008-12-28 14:31:31 |只看该作者
以日线举例:
highest(h,8)是最近8天的最高价的最大值
high[8]是8天前的最高价

使用道具 举报

Rank: 2

精华
0
UID
424
积分
53
帖子
9
主题
3
阅读权限
30
注册时间
2007-9-26
最后登录
2019-4-26
4#
发表于 2008-12-28 14:37:23 |只看该作者
请教老师,为何上述代码我用highest(h,8)代替high[8]无法显示信号

使用道具 举报

Rank: 4

精华
1
UID
714
积分
581
帖子
126
主题
23
阅读权限
50
注册时间
2007-11-10
最后登录
2015-12-1
5#
发表于 2008-12-29 11:40:11 |只看该作者
我也显示不出来,奇怪了,软件的BUG?切换了下周期,然后TB就消失退出了
森林中最不缺的是猎物,对猎人来说最珍贵的是子弹
[fly]人生没有彩排,每一场都是现场直播[/fly]

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
6#
发表于 2008-12-29 12:09:00 |只看该作者
您的写法问题比较多,还有信号消失的问题,帮您重新改了一下。第二个平仓条件没有加。

代码如下:
  1. Params
  2.         Numeric Length1(5);
  3.         Numeric Length2(30);
  4. Vars   
  5.         Numeric VolMA1;
  6.         Numeric VolMA2;
  7.         Numeric HighestValue;
  8.         Numeric LowestValue;
  9.        
  10.         Numeric MinPoint;
  11.         Numeric MyPrice;
  12. Begin
  13.         MinPoint = MinMove*PriceScale;
  14.     VolMA1=AverageFC(Vol, Length1);
  15.     VolMA2=AverageFC(Vol, Length2);
  16.         HighestValue = Highest(High[1],8);
  17.         LowestValue = Lowest(Low[1],8);

  18.         If(Time > 0.090500 && Time < 0.145500) // 时间在9:05分之后,14:55之前
  19.         {
  20.                 If(MarketPosition == 0)
  21.                 {
  22.                         If(High > HighestValue  And vol > volma1 And Vol > volma2) // 开多仓
  23.                         {
  24.                                 MyPrice = HighestValue + MinPoint;
  25.                                 If(Open > MyPrice) MyPrice = Open;
  26.                                 Buy(1,MyPrice);
  27.                                 Return;
  28.                         }
  29.                   
  30.                         If(Low < LowestValue And vol > volma1 And Vol > volma2) // 开空仓
  31.                         {
  32.                                 MyPrice = LowestValue - MinPoint;
  33.                                 If(Open < MyPrice) MyPrice = Open;
  34.                                 SellShort(1,MyPrice);
  35.                                 Return;
  36.                         }
  37.                 }  
  38.       
  39.                 If(MarketPosition == 1 And L<L[1]) // 平多仓
  40.                 {
  41.                         MyPrice = L[1] - MinPoint;
  42.                         If(Open < MyPrice) MyPrice = Open;
  43.                         Sell(0,MyPrice);
  44.                 }
  45.                   
  46.                 If(MarketPosition == -1 And h>h[1]  ) // 平空仓
  47.                 {
  48.                         MyPrice = h + MinPoint;
  49.                         If(Open > MyPrice) MyPrice = Open;
  50.                         BuyToCover(0,MyPrice);
  51.                 }
  52.         }

  53.         If(Time >= 0.145500) // 时间在14:55之后
  54.         {
  55.                 Sell(0,Open);
  56.                 BuyToCover(0,Open);
  57.         }
  58. End
复制代码

使用道具 举报

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

bottom

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

GMT+8, 2024-5-19 18:39

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部