设为首页收藏本站

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

基础表达式搞不懂 [复制链接]

Rank: 1

精华
0
UID
118631
积分
45
帖子
20
主题
4
阅读权限
10
注册时间
2013-4-27
最后登录
2013-6-9
跳转到指定楼层
1#
发表于 2013-5-9 16:49:51 |只看该作者 |倒序浏览
求N天前收盘价
Params
        Numeric daysAgo(2);
Vars
        NumericSeries barCnt;
        NumericSeries dayClose;
        Numeric i;
        Numeric j;
        Numeric nIndex(0);
        Numeric CBIndex;
Begin
        CBIndex = CurrentBar;
        If(CBIndex == 0 || Date != Date[1])
        {
                barCnt = 1;
        }Else
        {
                barCnt = barCnt + 1;
        }
        dayClose = Close;
               
        If(daysAgo == 0)
        {
                return dayClose;
        }Else
        {
                For i = 1 To daysAgo
                {
                        If( i == 1)
                        {       
                                j = 0;
                        }Else
                        {
                                j = j + BarCnt[j];                               
                        }
                        If (j > CBIndex )
                                Return InvalidNumeric;
                        nIndex = nIndex + BarCnt[j];
                }
                Return dayClose[nIndex];
        }
End
}这句是什么意思 barCnt也没有初值啊 j=j+barcnt 【j】这个J代表什么含义  整个句子又什么意思  
Else
        {
                barCnt = barCnt + 1;
这句是什么意思

Rank: 6Rank: 6

精华
0
UID
116229
积分
2373
帖子
2247
主题
18
阅读权限
70
注册时间
2013-3-4
最后登录
2019-3-24
2#
发表于 2013-5-10 11:15:42 |只看该作者
本帖最后由 ample 于 2013-5-10 11:16 编辑

NumericSeries barCnt;
barcnt是一个序列值,后续的序列值会继承上一个值,如果没有新的改变的话
  If(CBIndex == 0 || Date != Date[1])
        {
                barCnt = 1;
        }Else
        {
                barCnt = barCnt + 1;
        }
这里就是给barcnt赋初值了,给图表中的第一根bar和每天的第一根Bar的barcnt赋值为1,之后barcnt的值就在前一个值的基础上增加1.

for循环里的语句实际上就是为了得到N天前的收盘价,需要回溯多少个bar

使用道具 举报

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

bottom

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

GMT+8, 2024-5-19 14:13

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部