简称: SMA
// 名称: 求移动平均
// 类别: 用户函数
// 类型: 内建函数
// 输出: 布尔型
//------------------------------------------------------------------------
Params
NumericSeries Price(1);
Numeric Length(10);
Numeric Weight(1);
Vars
NumericSeries SMAValue;
Begin
If (CurrentBar == 0)
{
SMAValue = Price;
}Else
{
SMAValue = (SMAValue[1]*(Length-Weight)+Price*Weight)/Length;
}
Return SMAValue;
End
请高手将上面开拓者的函数转换成multicharts的函数,谢谢!
****************************************
inputs: price(NumericSeries),lens(NumericSimple),weight(NumericSimple);
if currentbar=1 then testSMA=price
else begin
if lens=0 then testSMA=0
else
testSMA= (testSMA[1]*(lens-weight)+price*weight)/lens;
end;
******************************************
谢谢版主的帮助!我将函数编译后
inputs: price(NumericSeries),lens(NumericSimple),weight(NumericSimple);
variables:testSMA(price);
if currentbar=1 then testSMA=price
else begin
if lens=0 then testSMA=0
else
testSMA= (testSMA[1]*(lens-weight)+price*weight)/lens;
end;
上面是SMA函数的脚本
然后计算KD指标的K值。指标脚步如下:
input: Length(9),
SlowLength(3),
SmoothLength(3);
Vars:
HighestValue(0),
LowestValue(0),
Kvalue(0),
Dvalue(0),
RSV(0);
Begin
HighestValue = HighestFC(High, Length);
LowestValue = LowestFC(Low, Length);
RSV = (Close-LowestValue)/(HighestValue-LowestValue)*100;
Kvalue = SMA(RSV,SlowLength,1);
Dvalue = SMA(Kvalue,SmoothLength,1);
Plot1(Kvalue,"K");
plot2(Dvalue,"D");
plot3(20,"Ref1");
plot4(50,"Ref2");
Plot5(80,"Ref3");
End
计算的k值和d值都是0,请版主帮助再修改一下,辛苦了,十分感激!
*******************************************
在程序里改一句 if HighestValue-LowestValue<>0 then
RSV = (Close-LowestValue)/(HighestValue-LowestValue)*100;
你的代码加载以后会提示浮点运算异常,加这句后K,D值显示正常。请验证一下。
**********************************************
问题解决!十分感谢!
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。