如何在1分钟周期上取日线40日ATR值? - TradeBlazer公式 [开拓者 TB]
- 咨询内容:
如何在1分钟K线上取日K线40日ATR值呢?
请高手赐教!!! - TB技术人员:
如果要实现这个系统,首先需要至少41天的分钟数据,大概10000多一点。
然后通过HighD(),LowD,CloseD等函数计算ATR,不能直接用Average进行计算,需要自行计算平均值。
理论上是可以实现的,但是还是比较复杂的,我觉得比较简单的方法就是每天开盘前,把ATR作为参数输入。感谢NOPAIN先生回复.
- TB客服:
感谢NOPAIN先生回复.
我整理一下我的思路,您看看对不对.
首先从大的思路来讲,
一、先求昨ATR的函数,用到HighD\LowD\CloseD,
二、求平均ATR的函数,与跨周期情况下的均线计算这个案例类似,用FOR i=Lentgh to 0来顺序抽取对应ATR值求出平均数!!
不知道是不是以上这样!!
求1分钟K线上取日K线40日ATR值主要是用来做历史测试,实盘不需要这样,直接算出值代入就行,不用如此复杂!!
[ 本帖最后由 samwjwj 于 2008-10-28 20:46 编辑 ]编了一个,好象有点问题,NOPAIN先生帮助看看!!
- 网友回复:
一、 先求昨ATR
//------------------------------------------------------------------------
// 简称: MyATR
// 名称:
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
Numeric Lentgh(1);
Vars
Numeric HH;
Numeric LL;
Numeric CC;
Numeric MyATR
Begin
HH=HighD(Lentgh);
LL=LowD(Lentgh);
CC=CloseD(Lentgh+1);
MyATR= Max(Max(HH-LL,ABS(CC-LL)),ABS(HH-CC));
If(Day<>Day[1])
{
Return HH - LL;
}
Else
{
Return MyATR
}
End
二、 再求平均ATR
//------------------------------------------------------------------------
// 简称: AvgMyTrueRange
// 名称: 平均真实幅度用于一分钟
// 类别: 用户函数
// 类型: 用户函数
// 输出: 数值型
//------------------------------------------------------------------------
Params
Numeric Length(22);
Vars
Numeric i;
Numeric Value1;
Numeric SumValue(0);
Numeric AvgATR;
Begin
//以下求昨ATR的移动平均
For i = Length DownTo 1//循环,从现循环到前,length的长度
{
Value1 =MyATR(i);
SumValue = SumValue + Value1;
}
return AvgATR=SumValue/Length;
End
[ 本帖最后由 samwjwj 于 2008-10-28 22:17 编辑 ] - 网友回复:
我估计也应该是有问题, For循环里面的跨周期调用应该是不行的。
用笨办法看看行不行。先求5日的平均ATR,直接写5个试试,不用For语句。
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 262069696 进行 有偿 编写!(不贵!点击查看价格!)
- 上一篇:新人求助MACD编写的问题。 - TradeBlazer…
- 下一篇:没有了!
相关文章
-
指定的模型还没有相关内容!