
等级: 专业版
- 注册:
- 2022-1-11
- 曾用名:
|
请教:能不能用pel写出PEAGA函数
我需要看看请教:能不能用pel写出PEAGA函数的变化。尝试写出类似的函数,发现不正确,请老师指教
代码如下:
Xm表示转折的指标;X0转折的幅度(绝对值),retacepct表示转折的幅度;
//swingP记载转折点值,swingHP记载转折后的最高值
VARIABLE:swingP=0,swingHP=0,swingLP=0,retacepct=0,X0=10;
Xm :=CLOSE,NODRAW;//
if BARPOS=1 then retacepct:=(X0/Xm)*100;//固定的转折绝对值()与之间的转换幅度(转换)
//Sbar:=BARPOS-Sbar;
if BARPOS=1 then swingP:=Xm;
if BARPOS=1 then swingHP:=Xm;
if BARPOS=1 then swingLP:=Xm;
swingHP:=MAX(SwingHP,Xm);
swingLP:=MIN(swingLP,Xm);
//-------趋势成立:UpDn=1,趋势向上成立;UpDn=-1趋势向下成立--------------------
UpDn:=IF(swingHP>=swingP*(1+retacepct*0.01),1,VALUEWHEN(swingLP<=swingP*(1-retacepct*0.01),-1));
//-------趋势成立后的趋势转折:FUpDn=1,新趋势向上成立;新FUpDn=-1趋势向下成立--------------------
FUpDn:=IF(Xm>=swingLP*(1+retacepct*0.01),1,VALUEWHEN(Xm<=swingHP*(1-retacepct*0.01),-1));
//-------趋势成立后的趋势转折:FUpDn=1,新趋势向上成立;新FUpDn=-1趋势向下成立--------------------
//FUpDn:=IF(CLOSE>=swingLP*(1+retacepct*0.01),1,VALUEWHEN(CLOSE<=swingHP*(1-retacepct*0.01),-1));
if (Updn=1&&(Xm<=swingHP*(1-retacepct*0.01))) then BEGIN
swingP:=swingHP;
swingLP:=Xm;//0;//
swingHP:=Xm;//0;// end
if (Updn=-1&&(Xm>=swingLP*(1+retacepct*0.01))) then BEGIN
swingP:=swingLP;
swingLP:=Xm;//0;//
swingHP:=Xm;//0;//
end
PZ:swingHP,COLORMAGENTA;
TZ:swingLP,COLORMAGENTA;
|
|