代码如下,BPC[1]=BPC[barpos-1]
pERD:=20;
delta:=0.1;
Fraction:=0.25;
Price:=(h+l)/2;
ebeta :=Cos(360 / PERD),NODRAW;
gamma := 1 / Cos(720*delta/PERD);
alpha := gamma - SqRt(gamma*gamma - 1);
BPM:=0.5*(1-alpha)*(Price -REF(Price,2));
variable:BPC:=0;
if barpos>PERD then
BPC:=BPM+ebeta*(1+alpha)*BPC[1]-alpha*BPC[2];
te:BPC;
请问怎样修改成金字塔用的公式,有点奇怪,
我把BPC:=BPM+ebeta*(1+alpha)*BPC[1]-alpha*BPC[2];
改成BPC:=BPM+ebeta*(1+alpha)*BPC-alpha*BPC[barpos-2];
或者改成
XT:=REF(BPC,1);
if barpos>PERD then
BPC:=BPM+ebeta*(1+alpha)*BPC-alpha*XT;
或者改成
if (barpos<PERD and barpos>3) then
BPC:=BPM;
if barpos>PERD then
BPC:=BPM+ebeta*(1+alpha)*BPC-alpha*XT;
计算的结果都是不对的,请教版主帮忙指点一下
[此贴子已经被作者于2020/11/8 16:25:04编辑过]
不是很明白, 你这个BPC 到底是数组还是什么。
你源代码又到底是哪个软件商的代码?而且你贴的代码也不完整啊。
BPC[1]替换成ref(BPC,1)
BPC[2] 替换成ref(BPC,2)
那就没办法了。等效替换就是这样子改的。 你要么直接贴最原始的代码,你贴的是你改了一半的代码,我们是没办法知道最初的思路和逻辑到底是这样的,说不定是其他地方问题。
BPC[1] 表示上一个K的值,这种写法应该是TB上的吧。
我就增加了
variable:BPC:=0;这句话,没有其他改动了;
我想请问一下 BPC:=BPM+ebeta*(1+alpha)*BPC[1]-alpha*BPC[2];改成我们金字塔的带变量句子是怎样的
是
variable:BPC:=0
BPC:=BPM+ebeta*(1+alpha)*BPC-alpha*BPC[barpos-2];
还是怎样的,因为在 if then 语句中是不能用REF的,我知道可以把ref语句在if then之前定义,我想请教一下,我不在之前定义是怎么写的,感觉在这里我有点混乱
我测试的时候就发现这个值出现问题了,原公式后面的都是处理和引用这个公式结果的代码,全部发了,没必要了吧,那不是增加版主的工作吗
版主,我试过好多回在别的软件上能计算结果,转到金字塔就计算出来结果就是不对,不知道什么原因比如下面的算式,在金字塔就是算出来的计算过就是不对,这个应该是每个软件都差不多都有的公式吧,我也知道有修改好的,但是每次遇到类似的问题老是要找原因,很无奈,希望找到问题的根源在哪里
xROC:=100*(close-REF(close, 1))/REF(close, 1);
nvi:= iff(vol < vol[1], if(barpos>2,nvi[1], 0)+ xROC,if(barpos>2,nvi[1], 0));
我在金字塔把它改成
xROC:=100*(close-REF(close, 1))/REF(close, 1);
variable:Nvi0:= 0.0;
nvi0:= iff(vol < vol[barpos-1], if(barpos>2,nvi0[barpos-1], 0)+ xROC,if(barpos>2,nvi0[barpos-1], 0));
TE:nvi0;
[此贴子已经被作者于2020/11/15 17:23:19编辑过]