设为首页收藏本站

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

跨周期情况下的均线计算。 [复制链接]

Rank: 3Rank: 3

精华
1
UID
2048
积分
218
帖子
29
主题
8
阅读权限
40
注册时间
2008-8-1
最后登录
2016-8-2
41#
发表于 2008-10-23 23:33:35 |只看该作者
Pain!!!!!!!!!

使用道具 举报

Rank: 4

精华
0
UID
2741
积分
356
帖子
29
主题
6
阅读权限
50
注册时间
2008-11-7
最后登录
2016-7-11
42#
发表于 2008-12-30 12:17:49 |只看该作者
我试了一下不用函数的表示法,好像基本一致:
Params
        Numeric Length(10);
Vars
        Numeric MyOpen;
        Numeric MyHigh;
        Numeric MyLow;
        Numeric MyClose;
        NumericSeries MyAvgPrice;
        
        Numeric SumValue(0);
        Numeric SumValue1(0);
        Numeric Value1;
        Numeric i;
Begin
        MyOpen = DataConvert(Open,"min",5,"Open");
        MyHigh = DataConvert(High,"min",5,"High");
        MyLow = DataConvert(Low,"min",5,"Low");
        MyClose = DataConvert(Close,"min",5,"Close");
        MyAvgPrice = (MyOpen+MyHigh+MyLow+MyClose)*0.25;
        
        For i = Length-1 DownTo 0
        {
                Value1 = TransMinsData(MyAvgPrice,5,i);
                SumValue = SumValue + Value1;
                SumValue1 = SumValue1 + MyAvgPrice[5*i] ;  //换一种表示法

        }
        PlotNumeric("AvgPrice",SumValue/Length);
        PlotNumeric("AvgPrice1",SumValue1/Length);     //新线
End

请版主看一下有没有问题?

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
43#
发表于 2008-12-30 15:48:59 |只看该作者
应该还是有区别的,在5分钟未走完的过程中

使用道具 举报

Rank: 4

精华
0
UID
2741
积分
356
帖子
29
主题
6
阅读权限
50
注册时间
2008-11-7
最后登录
2016-7-11
44#
发表于 2008-12-30 16:53:09 |只看该作者
这样算走完了吧?

Params
        Numeric Mins(5);
        Numeric Length(10);
Vars
        Numeric MyOpen;
        Numeric MyHigh;
        Numeric MyLow;
        Numeric MyClose;
        NumericSeries MyAvgPrice;
        
        Numeric SumValue(0);
        Numeric i;
Begin
        if(IntPart(Minute%Mins)==0){
            MyOpen = DataConvert(Open,"min",Mins,"Open");
            MyHigh = DataConvert(High,"min",Mins,"High");
            MyLow = DataConvert(Low,"min",Mins,"Low");
            MyClose = DataConvert(Close,"min",Mins,"Close");
            MyAvgPrice = (MyOpen+MyHigh+MyLow+MyClose)*0.25;
         }
        else  MyAvgPrice=MyAvgPrice[1];
        
        For i = Length-1 DownTo 0
        {
                SumValue = SumValue + MyAvgPrice[i*Mins];
        }

        PlotNumeric("AvgPrice",SumValue/Length);
End

使用道具 举报

Rank: 4

精华
0
UID
3136
积分
331
帖子
61
主题
11
阅读权限
50
注册时间
2008-12-23
最后登录
2013-10-13
45#
发表于 2009-2-23 18:11:42 |只看该作者
亲娘嘞 自己捣鼓了2礼拜总算明白这个程序什么意思了 哎 真费劲

使用道具 举报

Rank: 4

精华
0
UID
3059
积分
269
帖子
72
主题
8
阅读权限
50
注册时间
2008-12-17
最后登录
2009-5-31
46#
发表于 2009-4-23 07:05:51 |只看该作者
48楼,也给大家分享一下你的成佛感言吧!
另外我想从日线调入小时线数据,准确说我想知道当日最高价最低价谁先产生的。
李晓东

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
5475
积分
138
帖子
10
主题
2
阅读权限
40
注册时间
2009-9-17
最后登录
2019-3-24
47#
发表于 2009-10-26 16:17:19 |只看该作者

回复 1# nopain 的帖子

我想问下这个函数TransMinsData是不是
取出前 minsago个 以nMinSet为周期的数据

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
7010
积分
145
帖子
13
主题
0
阅读权限
40
注册时间
2010-2-21
最后登录
2019-3-30
48#
发表于 2010-3-22 16:19:38 |只看该作者
原帖由 nopain 于 2008-4-6 19:02 发表
您上面的例子,应该执行i==1的分支。
即 j = 0;
nIndex = nIndex + BarCnt[0];
nIndex = 0 + 2;

按照老师的表述,那么返回值应该是 MinData[nIndex]= MinData[2];也不是1个5分钟前的数据啊?
当currentbar=12时,barcnt=3,那么:
nIndex = nIndex + BarCnt[0];
nIndex = 0 + 3; 返回值应该是 MinData[nIndex]= MinData[3];所取的值与currentbar=11取的值一样。
希望老师能详细讲解下。

使用道具 举报

初级大户

自由之身

Rank: 5Rank: 5

精华
0
UID
755
积分
1337
帖子
263
主题
71
阅读权限
60
注册时间
2007-11-14
最后登录
2019-12-1
49#
发表于 2010-4-23 23:56:24 |只看该作者
复制内容到剪贴板
代码:
Params
        NumericSeries Price(1);
        Numeric nMinSet(5);
        Numeric MinsAgo(2);
Vars
        NumericSeries barCnt;
        NumericSeries MinData;
        Numeric i;
        Numeric j;
        Numeric nIndex(0);
Begin
        If(IntPart(Minute%nMinSet)==0)
        {
                barCnt = 1;
        }Else
        {
                barCnt = barCnt[1] + 1;
        }
        MinData = Price;
               
        If(MinsAgo == 0)
        {
                return MinData;
        }Else
        {
                For i = 1 To MinsAgo
                {
                        If( i == 1)
                        {        
                                j = 0;
                        }Else
                        {
                                j = j + BarCnt[j];                                
                        }
                        If (j > CurrentBar ) Return InvalidNumeric;
                        nIndex = nIndex + BarCnt[j];
                }
                Return MinData[nIndex];
        }
End

nopain写的这个函数我编译保存后,以后我随意用到比如:2分钟周期图表上我调用10分钟图标的开高低收均价的13周期平均值时值需要在函数的括号里改为10 就行吗?
TransMinsData(MyAvgPrice,10,i);
我怎么在两分钟图标上引用的跟10分钟图标上的均值对比不上呢?

使用道具 举报

Rank: 4

精华
0
UID
14029
积分
282
帖子
43
主题
9
阅读权限
50
注册时间
2010-7-9
最后登录
2016-7-6
50#
发表于 2010-7-13 18:31:29 |只看该作者

回复 1# nopain 的帖子

不太懂,1分钟取5分钟均线,支架5个1分钟不就可以了吗?这有什么意义?新手学习中,感谢各位分享!

使用道具 举报

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

bottom

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

GMT+8, 2024-5-6 03:34

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部