设为首页收藏本站

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

求助:1分钟图形下计算30分钟ATR的程序 [复制链接]

Rank: 4

精华
1
UID
1078
积分
347
帖子
46
主题
7
阅读权限
50
注册时间
2008-1-15
最后登录
2023-5-19
跳转到指定楼层
1#
发表于 2008-4-9 18:28:46 |只看该作者 |倒序浏览
NOPAIN,程序我按照你写的1分钟图形显示5分钟均线的程序,描葫芦写了一个
但是很多不明白
也不能在1分钟图形下显示
您看看我都出了哪些问题?



// 简称: 30minatr
// 名称: 30分钟ATR
// 类别: 技术指标
// 类型: 其它类
// 输出:
//------------------------------------------------------------------------
Params
        Numeric Length(60);
Vars
        NumericSeries MyTrueHigh;
        NumericSeries MyTrueLow;
        NumericSeries MyAvgAtr;
        Numeric i;
Begin
        MyTrueHigh = DataConvert(Open,"min",30,"Open");
        MyTrueLow = DataConvert(High,"min",30,"High");
        MyAvgAtr = Average( MyTrueHigh - MyTrueLow ,Length);
        
        For i = Length-1 DownTo 0
        {
                MyAvgAtr = TransMinsData(MyAvgAtr,30,i);
        }
        PlotNumeric("MyAvgAtr",MyAvgAtr);
End


见笑了,编程太弱
比小强还强

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
2#
发表于 2008-4-9 21:29:14 |只看该作者
1、新建用户函数TransMinsData,返回值为数值型,代码如下:
  1. Params
  2.         NumericSeries Price(1);
  3.         Numeric nMinSet(5);
  4.         Numeric MinsAgo(2);
  5. Vars
  6.         NumericSeries barCnt;
  7.         NumericSeries MinData;
  8.         Numeric i;
  9.         Numeric j;
  10.         Numeric nIndex(0);
  11. Begin
  12.         If(IntPart(Minute%nMinSet)==0)
  13.         {
  14.                 barCnt = 1;
  15.         }Else
  16.         {
  17.                 barCnt = barCnt[1] + 1;
  18.         }
  19.         MinData = Price;
  20.                
  21.         If(MinsAgo == 0)
  22.         {
  23.                 return MinData;
  24.         }Else
  25.         {
  26.                 For i = 1 To MinsAgo
  27.                 {
  28.                         If( i == 1)
  29.                         {       
  30.                                 j = 0;
  31.                         }Else
  32.                         {
  33.                                 j = j + BarCnt[j];                               
  34.                         }
  35.                         If (j > CurrentBar ) Return InvalidNumeric;
  36.                         nIndex = nIndex + BarCnt[j];
  37.                 }
  38.                 Return MinData[nIndex];
  39.         }
  40. End
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
3#
发表于 2008-4-9 21:30:00 |只看该作者
2、新建技术指标,命名为My30MinsATR,代码如下:
  1. Params
  2.         Numeric Length(10);
  3. Vars
  4.         NumericSeries MyClose;
  5.         NumericSeries MyHigh;
  6.         NumericSeries MyLow;
  7.         Numeric AvgTrueHigh;
  8.         Numeric AvgTrueLow;
  9.         Numeric SumValue(0);
  10.         Numeric Value1;
  11.         Numeric i;
  12. Begin
  13.         MyClose = DataConvert(Close,"min",30,"Close");
  14.         MyHigh = DataConvert(High,"min",30,"High");
  15.     MyLow = DataConvert(Low,"min",30,"Low");

  16.         For i = Length-1 DownTo 0
  17.         {
  18.                 Value1 = Max(TransMinsData(MyClose,30,i+1),TransMinData(MyHigh,30,i));
  19.                 SumValue = SumValue + Value1;
  20.         }
  21.         AvgTrueHigh = SumValue/Length;
  22.        
  23.         SumValue = 0;
  24.         For i = Length-1 DownTo 0
  25.         {
  26.                 Value1 = Min(TransMinsData(MyClose,30,i+1),TransMinData(MyLow,30,i));               
  27.                 SumValue = SumValue + Value1;
  28.         }
  29.         AvgTrueLow = SumValue/Length;

  30.         PlotNumeric("My30MinATR",AvgTrueHigh-AvgTrueLow);
  31. End
复制代码

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
4#
发表于 2008-4-9 21:31:50 |只看该作者
3、在使用时需根据参数设置合适数量的分钟线,另外,该函数因为用到了循环语句,如果周期参数设置太大,计算时会比较慢。

使用道具 举报

Rank: 4

精华
1
UID
1078
积分
347
帖子
46
主题
7
阅读权限
50
注册时间
2008-1-15
最后登录
2023-5-19
5#
发表于 2008-4-10 23:37:54 |只看该作者
谢谢NOPAIN
编程速度好快
让我没有PAIN了
比小强还强

使用道具 举报

Rank: 3Rank: 3

精华
0
UID
4576
积分
184
帖子
19
主题
3
阅读权限
40
注册时间
2009-6-7
最后登录
2012-1-11
6#
发表于 2009-7-26 09:16:11 |只看该作者
nopain兄能否帮忙写一个5分钟上显示30分钟MACD的指标,无奈编程太次,看半天也写不出来, 先提前谢了,呵呵

使用道具 举报

Rank: 10Rank: 10Rank: 10

精华
20
UID
4
积分
22709
帖子
4802
主题
64
阅读权限
255
注册时间
2007-7-20
最后登录
2024-1-15
7#
发表于 2009-7-26 09:32:34 |只看该作者

使用道具 举报

Rank: 4

精华
0
UID
71013
积分
447
帖子
119
主题
6
阅读权限
50
注册时间
2011-10-12
最后登录
2011-12-19
8#
发表于 2011-10-14 14:10:43 |只看该作者
回复 2# nopain


   慢慢学习

使用道具 举报

Rank: 7Rank: 7Rank: 7

精华
0
UID
113242
积分
3506
帖子
97
主题
11
阅读权限
80
注册时间
2012-10-31
最后登录
2013-6-4
9#
发表于 2012-12-22 01:52:40 |只看该作者
nopain 发表于 2009-7-26 09:32
您应该看这个帖子:
http://www.tradeblazer.net/forum/viewthread.php?tid=2009

nopain您好,看了您写的TrasMinsData  公式还是有点不太明白,我有个疑问:
MyClose = DataConvert(Close,"min",30,"Close");

14.        MyHigh = DataConvert(High,"min",30,"High");

15.    MyLow = DataConvert(Low,"min",30,"Low");

求出的大周期下的最高、最低、和收盘价么?
若求大周期下前N根bar(偏移值为1)的最高价、最低、收盘价,又如何表达.

使用道具 举报

Rank: 1

精华
0
UID
122286
积分
15
帖子
12
主题
2
阅读权限
10
注册时间
2012-8-10
最后登录
2021-3-18
10#
发表于 2013-12-23 10:40:58 |只看该作者
请问老师用这种方法能写在1分钟图上取30分钟的SAR的值吗?请教老师能否将SAR写成跨周期的用户函数??谢谢,这个SAR的跨周期问题一直困扰的学生好久,以至于程序编辑中断,再次感谢!!!

使用道具 举报

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

bottom

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

GMT+8, 2024-5-9 05:39

Powered by Discuz! X2 LicensedChrome插件扩展

© 2011-2012 交易开拓者 Inc.

回顶部