- 精华
- 20
- 在线时间
- 2981 小时
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
- 精华
- 20
- UID
- 4
- 积分
- 22709
- 帖子
- 4802
- 主题
- 64
- 阅读权限
- 255
- 注册时间
- 2007-7-20
- 最后登录
- 2024-1-15
|
5分钟调用30分钟MACD值的算法
1、新建一个用户函数,命名为HalfHourXAverage,返回值为数值型。代码如下:- Params
- NumericSeries Price(10);
- Numeric Length(10);
- Vars
- NumericSeries HalfHourNo;
- NumericSeries MinsIndex;
- BoolSeries First30Min(True);
- Numeric sFcactor;
- NumericSeries XAvgValue;
- Begin
- If(CurrentBar == 0)
- {
- First30Min = True;
- }Else
- {
- First30Min = First30Min[1];
- If(First30Min && (Minute/30)==0)
- {
- First30Min = False;
- }
- }
-
- HalfHourNo = Date*100 + Hour*2+IntPart(Minute/30);
- If(HalfHourNo!=HalfHourNo[1])
- {
- MinsIndex = 1;
- }Else
- {
- MinsIndex = MinsIndex[1] + 1;
- }
- sFcactor = 2 / ( Length + 1 );
- if (First30Min)
- {
- XAvgValue = Price;
- }else
- {
- XAvgValue = XAvgValue[MinsIndex] + sFcactor * ( Price - XAvgValue[MinsIndex] ) ;
- }
-
- Return XAvgValue;
- End
复制代码 2、新建一个技术指标,假设为test。代码如下:- Params
- Numeric FastLength(12);
- Numeric SlowLength(26);
- Numeric MACDLength(9);
- Vars
- NumericSeries MACDValue;
- NumericSeries AvgMACD;
- NumericSeries MACDDiff;
-
- Begin
- MACDValue = HalfHourXAverage( Close, FastLength ) - HalfHourXAverage( Close, SlowLength );
- AvgMACD = HalfHourXAverage(MACDValue,MACDLength);
- MACDDiff = MACDValue - AvgMACD;
-
- PlotNumeric("MACDValue",MACDValue);
- PlotNumeric("AvgMACD",AvgMACD);
- If (MACDDiff >= 0)
- PlotNumeric("MACDDiff",MACDDiff,Red);
- Else
- PlotNumeric("MACDDiff",MACDDiff,Green);
- PlotNumeric("零线",0);
- End
复制代码 |
|