欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [求助]请问这个公式怎么修改才是对的

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有3391人关注过本帖树形打印复制链接

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

帅哥哟,离线,有人找我吗?
vakoth
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:166 积分:0 威望:0 精华:0 注册:2019/6/14 11:24:06
[求助]请问这个公式怎么修改才是对的  发帖心情 Post By:2020/11/8 16:23:48    Post IP:120.229.35.57[只看该作者]

代码如下,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编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/11/9 9:16:50    Post IP:58.246.57.26[只看该作者]

 不是很明白, 你这个BPC 到底是数组还是什么。
你源代码又到底是哪个软件商的代码?而且你贴的代码也不完整啊。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
vakoth
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:166 积分:0 威望:0 精华:0 注册:2019/6/14 11:24:06
  发帖心情 Post By:2020/11/9 22:03:01    Post IP:223.73.1.81[只看该作者]

代码是完整的,只剩下线色代码没有写上去了

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



 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/11/10 8:40:43    Post IP:58.246.57.26[只看该作者]

 BPC[1]替换成ref(BPC,1)
 BPC[2] 替换成ref(BPC,2)




命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
vakoth
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:166 积分:0 威望:0 精华:0 注册:2019/6/14 11:24:06
  发帖心情 Post By:2020/11/10 9:52:57    Post IP:120.229.8.87[只看该作者]

就是测试过不行才来问的


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/11/10 9:56:26    Post IP:58.246.57.26[只看该作者]

那就没办法了。等效替换就是这样子改的。 你要么直接贴最原始的代码,你贴的是你改了一半的代码,我们是没办法知道最初的思路和逻辑到底是这样的,说不定是其他地方问题。BPC[1] 表示上一个K的值,这种写法应该是TB上的吧。


命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
vakoth
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:166 积分:0 威望:0 精华:0 注册:2019/6/14 11:24:06
  发帖心情 Post By:2020/11/10 19:45:46    Post IP:120.229.8.87[只看该作者]

我就增加了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之前定义,我想请教一下,我不在之前定义是怎么写的,感觉在这里我有点混乱

 回到顶部
帅哥哟,离线,有人找我吗?
vakoth
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:166 积分:0 威望:0 精华:0 注册:2019/6/14 11:24:06
  发帖心情 Post By:2020/11/10 19:50:02    Post IP:120.229.8.87[只看该作者]

我测试的时候就发现这个值出现问题了,原公式后面的都是处理和引用这个公式结果的代码,全部发了,没必要了吧,那不是增加版主的工作吗

 回到顶部
帅哥哟,离线,有人找我吗?
yukizzc
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:21598 积分:0 威望:0 精华:1 注册:2010/7/31 16:35:30
  发帖心情 Post By:2020/11/10 23:00:14    Post IP:61.152.208.187[只看该作者]

variable:n=0;
n:=n+1;
d:n;
cc:ref(n,1);
c2:ref(n,2);


就这样定义好n,然后ref就是调用前面周期的n

 回到顶部
帅哥哟,离线,有人找我吗?
vakoth
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:166 积分:0 威望:0 精华:0 注册:2019/6/14 11:24:06
  发帖心情 Post By:2020/11/15 17:22:15    Post IP:223.73.1.28[只看该作者]

版主,我试过好多回在别的软件上能计算结果,转到金字塔就计算出来结果就是不对,不知道什么原因
比如下面的算式,在金字塔就是算出来的计算过就是不对,这个应该是每个软件都差不多都有的公式吧,我也知道有修改好的,但是每次遇到类似的问题老是要找原因,很无奈,希望找到问题的根源在哪里
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 1 2 下一页