求助帖:用了循环语句,应用之后发生死机 [开拓者 TB]
- 咨询内容:
本帖最后由 ly_w1989 于 2016-3-9 23:51 编辑
TBL新手一枚,想写一个MACD指标面积公式,实际写的过程中发生死机现象 - TB技术人员:
MACD的面积公式的实际目标样子如图所示,这是我在通达信上实现后的样子
这是我写的半成品,没想到应用时直接发生了死机
- TB客服:
本帖最后由 ly_w1989 于 2016-3-9 23:48 编辑
- Params
- Numeric M1(12);
- Numeric M2(26);
- Numeric M3(9);
- Vars
- NumericSeries MACD;
- NumericSeries DIF;
- NumericSeries DEA;
- NumericSeries AREA;
- Numeric NUM;
- String STR;
- Begin
- DIF = EMA( Close, M1 ) - EMA( Close, M2 ) ;
- DEA = EMA(DIF,M3);
- MACD = (DIF-DEA)*2;
- PlotNumeric("DIF",DIF);
- PlotNumeric("DEA",DEA);
- If (MACD >= 0)
- PlotNumeric("MACD",MACD,0,Red);
- Else
- PlotNumeric("MACD",MACD,0,Green);
- PlotNumeric("零线",0);
- AREA=0;
- NUM=1;
- If(MACD[0]<=0 And MACD[1]>0)
- {
- While(MACD[NUM]>0)
- {
- AREA=AREA+MACD[NUM];
- NUM=NUM+1;
- }
- }
- STR=Text(AREA);
- PlotString ("面积",STR,MACD*1.3,Green);
- End
- Params
- 网友回复:
本帖最后由 ly_w1989 于 2016-3-9 23:59 编辑
上述代码用到了自定义函数EMA用法,参考的是同花顺和通达信的函数设定
前面22行代码是描述MACD公式的,经过测试没问题,后面是开始计算MACD面积的,用到了循环判断,编译时没问题,但一旦加载就会死机- //------------------------------------------------------------------------
- // 简称: EMA
- // 名称: 平滑移动平均
- // 类别: 用户函数
- // 类型: 用户函数
- // 输出: 数值型
- //------------------------------------------------------------------------
- Params
- Numeric X;
- Numeric N;
- Vars
- NumericSeries Num;
- Begin
- Num = (2*X+(N-1)*NUM[1])/(N+1);
- Return Num;
- End
- //------------------------------------------------------------------------
- 网友回复:
已经想了很久了,也切换了别的写法试过,但还是不行,希望大家帮帮我,拜托了
有思路,想编写各种指标公式,程序化交易模型,选股公式,预警公式的朋友
可联系技术人员 QQ: 511411198 进行 有偿 编写!(不贵!点击查看价格!)
相关文章
-
没有相关内容