开拓者期货期权程序化系统交易论坛

标题: 请教老师,关于NumericSeries [打印本页]

作者: guoling    时间: 2008-10-27 10:23:25     标题: 请教老师,关于NumericSeries

老师,你好,
我的代码是这样的。
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
这到底是为什么呢?

谢谢
作者: guoling    时间: 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
这到底是为什么呢?

谢谢
作者: nopain    时间: 2008-10-27 10:53:33

不知道您是用在什么周期上?

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

像您这样的需求应该用全局变量。
作者: guoling    时间: 2008-10-27 10:58:16

谢谢老师,我的周期是1分钟。
如果将CurBuy定义成全局变量,就没有问题了,是吧?
作者: nopain    时间: 2008-10-27 11:40:22

用全局变量就不会出现讯号消失。至于是否能够解决您的问题,您自行测试看看
作者: guoling    时间: 2008-10-27 11:56:39

好的,谢谢你,我已经改成用全局变量了,看看下午测试情况如何吧。
作者: guoling    时间: 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
这到底是为什么呢?
作者: guoling    时间: 2008-10-28 10:22:35

老师请帮忙看看吧,实盘测试都花了不少学费了,呵呵
作者: nopain    时间: 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
复制代码

作者: guoling    时间: 2008-10-28 11:34:33

谢谢老师,不过还是没明白为什么用
If(QuoteDataExist == True)

不行呢?
作者: guoling    时间: 2008-10-28 11:40:34

另外再请教老师两个问题,
时间周期为1分钟
1。 在一分钟内的实时有效的最新的行情数据的BarStatus是否也是2,
还是说只有时间间隔与前一个BAR刚好为1分钟的当前BAR的BarStatus才是2

2。同一个超级图表中可以插入多个交易指令的,是吧?
作者: nopain    时间: 2008-10-28 12:01:41

QuoteDataExist除了要求BarStatus == 2,还有其他的条件。

您把BarStatus==2改成QuoteDataExist==true试试看。说不定也还是可以的
作者: nopain    时间: 2008-10-28 12:03:05

1、图上最后一个Bar的BarStatus==2.
2、可以的,但放到一个图上,之间就相互关联了
作者: guoling    时间: 2008-10-28 13:05:18

谢谢你,老师




欢迎光临 开拓者期货期权程序化系统交易论坛 (http://bbs.tb18.net/) Powered by Discuz! X2