Rss & SiteMap

金字塔客服中心 - 专业程序化交易软件提供商 http://www.weistock.com/bbs/

专业程序化软件提供商
共14 条记录, 每页显示 10 条, 页签: [1] [2]
[浏览完整版]

标题:[求助]请问这个公式怎么修改才是对的

1楼
vakoth 发表于:2020/11/8 16:23:48
代码如下,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编辑过]
2楼
FireScript 发表于:2020/11/9 9:16:50
 不是很明白, 你这个BPC 到底是数组还是什么。
你源代码又到底是哪个软件商的代码?而且你贴的代码也不完整啊。

3楼
vakoth 发表于:2020/11/9 22:03:01
代码是完整的,只剩下线色代码没有写上去了

上面的第一句
BPC[1]=BPC[barpos-1] 我只是为了说明BPC[1]代表的含义,BPC[1]=BPC[barpos-1]这句不是代码,抱歉我没说清楚


4楼
FireScript 发表于:2020/11/10 8:40:43
 BPC[1]替换成ref(BPC,1)
 BPC[2] 替换成ref(BPC,2)


5楼
vakoth 发表于:2020/11/10 9:52:57
就是测试过不行才来问的

6楼
FireScript 发表于:2020/11/10 9:56:26
那就没办法了。等效替换就是这样子改的。 你要么直接贴最原始的代码,你贴的是你改了一半的代码,我们是没办法知道最初的思路和逻辑到底是这样的,说不定是其他地方问题。BPC[1] 表示上一个K的值,这种写法应该是TB上的吧。
7楼
vakoth 发表于:2020/11/10 19:45:46
我就增加了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之前定义,我想请教一下,我不在之前定义是怎么写的,感觉在这里我有点混乱
8楼
vakoth 发表于:2020/11/10 19:50:02
我测试的时候就发现这个值出现问题了,原公式后面的都是处理和引用这个公式结果的代码,全部发了,没必要了吧,那不是增加版主的工作吗
9楼
yukizzc 发表于:2020/11/10 23:00:14
variable:n=0;
n:=n+1;
d:n;
cc:ref(n,1);
c2:ref(n,2);


就这样定义好n,然后ref就是调用前面周期的n
10楼
vakoth 发表于:2020/11/15 17:22:15
版主,我试过好多回在别的软件上能计算结果,转到金字塔就计算出来结果就是不对,不知道什么原因
比如下面的算式,在金字塔就是算出来的计算过就是不对,这个应该是每个软件都差不多都有的公式吧,我也知道有修改好的,但是每次遇到类似的问题老是要找原因,很无奈,希望找到问题的根源在哪里
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编辑过]
共14 条记录, 每页显示 10 条, 页签: [1] [2]


Powered By Dvbbs Version 8.3.0
Processed in .07813 s, 3 queries.