设为首页收藏本站

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

请教老师,关于NumericSeries [复制链接]

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
跳转到指定楼层
1#
发表于 2008-10-27 10:23:25 |只看该作者 |倒序浏览
老师,你好,
我的代码是这样的。
Vars
NumericSeries CurBuyState(0);
......
Begin
.......
If(QuoteDataExist == True)
        {
        If(A_BuyPosition == 0)
                CurBuy = 0;
        Else If((CurBuy == 0) && (A_BuyPosition > 0))
                CurBuy= 1;
         Else If((CurBuy == 1) && (A_BuyProfitLoss >= TotalProfitTarget))
                CurBuy = 2;
         Else
                CurBuy = CurBuy[1];
        }

Else
        CurBuy = CurBuy[1];

FileAppend("d:\\Log.txt","CurBuy is : "+Text(CurBuy));
.........
End       

问题是这样的:
当A_BuyProfitLoss >= TotalProfitTarget 满足时,我在Log.txt文件中发现CurBuy = 1。从不曾等于2
这到底是为什么呢?

谢谢

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
2#
发表于 2008-10-27 10:25:00 |只看该作者
老师,不好意思,代码有个地方没复制好。
重发一下代码
请教老师,关于NumericSeries


老师,你好,
我的代码是这样的。
Vars
NumericSeries CurBuy(0);
......
Begin
.......
If(QuoteDataExist == True)
        {
        If(A_BuyPosition == 0)
                CurBuy = 0;
        Else If((CurBuy == 0) && (A_BuyPosition > 0))
                CurBuy= 1;
         Else If((CurBuy == 1) && (A_BuyProfitLoss >= TotalProfitTarget))
                CurBuy = 2;
         Else
                CurBuy = CurBuy[1];
        }

Else
        CurBuy = CurBuy[1];

FileAppend("d:\\Log.txt","CurBuy is : "+Text(CurBuy));
.........
End        

问题是这样的:
当A_BuyProfitLoss >= TotalProfitTarget 满足时,我在Log.txt文件中发现CurBuy = 1。从不曾等于2
这到底是为什么呢?

谢谢

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2008-10-27 10:53:33 |只看该作者
不知道您是用在什么周期上?

你的代码逻辑看起来是没有问题。只是A_BuyProfitLoss是用Close来计算盈亏的,一样会出现讯号消失的问题。

像您这样的需求应该用全局变量。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
4#
发表于 2008-10-27 10:58:16 |只看该作者
谢谢老师,我的周期是1分钟。
如果将CurBuy定义成全局变量,就没有问题了,是吧?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
5#
发表于 2008-10-27 11:40:22 |只看该作者
用全局变量就不会出现讯号消失。至于是否能够解决您的问题,您自行测试看看

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
6#
发表于 2008-10-27 11:56:39 |只看该作者
好的,谢谢你,我已经改成用全局变量了,看看下午测试情况如何吧。

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
7#
发表于 2008-10-28 10:19:47 |只看该作者
老师,还是不对,代码是这样的,请看看哪里有问题。
Vars
NumericSeries CurBuy(0);
......
Begin
.......
If(QuoteDataExist == True)
        {
        CurBuy = GetGlobalVar(0);

        If(A_BuyPosition == 0)
                CurBuy = 0;
        Else If((CurBuy == 0) && (A_BuyPosition > 0))
                CurBuy= 1;
         Else If((CurBuy == 1) && (A_BuyProfitLoss >= TotalProfitTarget))
                CurBuy = 2;
         Else
                CurBuy = CurBuy;
        SetGlobalVar(0,CurBuy );
        }

FileAppend("d:\\Log.txt","CurBuy is : "+Text(CurBuy));
.........
End   



问题是这样的:
当A_BuyProfitLoss >= TotalProfitTarget 满足时,我在Log.txt文件中发现CurBuy = 1。从不曾等于2
这到底是为什么呢?

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
8#
发表于 2008-10-28 10:22:35 |只看该作者
老师请帮忙看看吧,实盘测试都花了不少学费了,呵呵

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
9#
发表于 2008-10-28 11:00:13 |只看该作者
看看下面的代码,我测试过,这样可以的

  1. Vars
  2.         Numeric curBuy(0);
  3.         Numeric TotalProfitTarget(100);
  4. Begin
  5.         If(BarStatus == 0)
  6.         {
  7.                 SetGlobalVar(0,0);
  8.         }else If(BarStatus == 2)
  9.         {
  10.                 curBuy = GetGlobalVar(0);
  11.                
  12.                 If(A_BuyPosition == 0)
  13.                         curBuy = 0;
  14.                 else if(curBuy == 0 && A_BuyPosition > 0 )
  15.                         curBuy = 1;
  16.                 else if(curBuy == 1 && A_BuyProfitLoss >= TotalProfitTarget)
  17.                         curBuy = 2;

  18.                 SetGlobalVar(0,curBuy);
  19.                 FileAppend("d:\\Log.txt","CurrentBar="+Text(CurrentBar)+"BarCount is : "+Text(BarCount));
  20.                 FileAppend("d:\\Log.txt","CurBuy is : "+Text(CurBuy)+",A_BuyPosition is : "+Text(A_BuyPosition));
  21.         }
  22. End
复制代码

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
2430
积分
143
帖子
41
主题
6
阅读权限
40
注册时间
2008-9-23
最后登录
2011-1-17
10#
发表于 2008-10-28 11:34:33 |只看该作者
谢谢老师,不过还是没明白为什么用
If(QuoteDataExist == True)

不行呢?

使用道具 举报

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

bottom

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

GMT+8, 2024-5-4 18:44

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部