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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 序列指标在逐K下实现

   

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


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

主题:序列指标在逐K下实现

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


加好友 发短信
等级:论坛游侠 帖子:149 积分:0 威望:0 精华:0 注册:2014/8/25 9:32:54
序列指标在逐K下实现  发帖心情 Post By:2018/7/25 14:27:37    Post IP:180.169.30.6[显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:mxcp.jpg
图片点击可在新窗口打开查看

 

公式原型如上图,要涉及到引用自身的前值,以及前值的前值,,,在图形上的表现类似于均线,见下面截图,,,

 

下面蓝色字是序列模式下的代码(by风度),,,

===================================

runmode:1;//序列模式
FC:=CLOSE;
LLTv:=CLOSE;
A:=2/(30+1);
for i=3 to datacount  do begin
LLTv[i]:=(a-a^2/4)*FC[I]+(a^2/2)*FC[I-1]-(a-3*a^2/4)*FC[I-2]+2*(1-a)*LLTv[i-1]-(1-a)^2*LLTv[i-2];
end
LLT:LLTV;

===================================


图片点击可在新窗口打开查看此主题相关图片如下:oc45n)c}%2@8c)f1bkir4u.png
图片点击可在新窗口打开查看

 

 

——————————————————————————

序列模式下是可以写得出来的,这个不说了,我的问题是,怎么在逐K线模式下写出表现一样的代码,

我试过全局变量、数组、barpos控制等等,很多时候编译的时候没问题,但是不能正常显示或直接导致金字塔死去,,,

 

所以,到底怎样在逐K线模式下写出这个公式呢?!!!


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


加好友 发短信
等级:论坛游侠 帖子:149 积分:0 威望:0 精华:0 注册:2014/8/25 9:32:54
  发帖心情 Post By:2018/7/25 15:08:34    Post IP:58.49.198.167[显示全部帖子]

以下是引用FireScript在2018/7/25 14:53:01的发言:
 逐K模式下用stkind去引用这个序列模式下的指标吧,引用的值是完全对齐的。按照那个原始思路 逐K上是无法实现这个公式的。逐K下循环次数太多,所以导致你说的卡死现象。
[此贴子已经被作者于2018/7/25 14:55:48编辑过]

 

 

我之前是有个引用的思路,可是引用的情况下,参数优化也会很慢很慢吧,,,


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


加好友 发短信
等级:论坛游侠 帖子:149 积分:0 威望:0 精华:0 注册:2014/8/25 9:32:54
  发帖心情 Post By:2018/7/25 21:37:19    Post IP:58.49.198.167[显示全部帖子]

以下是引用马良在2018/7/25 20:42:01的发言:
如果你只是引用模型而不涉及任何跨周期,请使用#.#用户函数引用模式,可以更有效率

 

 

请具体解释一下#.#用户函数,这个在哪里能找到说明

 

我的问题不是挎周期,而是要把代码中的参数“A”纳入优化,,,

[此贴子已经被作者于2018/7/25 21:38:25编辑过]

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


加好友 发短信
等级:论坛游侠 帖子:149 积分:0 威望:0 精华:0 注册:2014/8/25 9:32:54
  发帖心情 Post By:2018/7/28 1:41:12    Post IP:59.173.148.82[显示全部帖子]

以下是引用fly在2018/7/26 11:03:03的发言:
用户函数调用模式,方便客户进行模块化编程
用法:#公式名称.指标线(参数)#

用户函数调用模式,方便客户进行模块化编程
用法:#用户函数.指标线(参数)#
例如:#test01.B1(20,45)#,表示调用test01指标的B1输出线,参数为20和45
使用用户函数模式与跨周期调用模式方法方式类似,但是比扩周期引用更加节省内存,提高运行效率
所属函数组:控制语句

假设一楼公式名称为myllt
runmode:1;//序列模式
FC:=CLOSE;
LLTv:=CLOSE;
A:=2/(30+1);
for i=3 to datacount  do begin
LLTv[i]:=(a-a^2/4)*FC[I]+(a^2/2)*FC[I-1]-(a-3*a^2/4)*FC[I-2]+2*(1-a)*LLTv[i-1]-(1-a)^2*LLTv[i-2];
end
LLT:LLTV;   //被引用的一定要是“:”形式的指标线

在另一个公式里,如何调用并像指标线一样显示到图上呢?
LLT1:#myllt.LLT#    //myllt标线LLT所在公式名称
[此贴子已经被作者于2018/7/26 11:13:50编辑过]

 

 

问题有两个,

1、这种#x.y#的写法比stkind要好是吗?我之前没试过这种,是的,不用跨周期

 

2、我在公式一“o-lltfd”里用序列模式输出了llt,但是代码行里的那个A不是定值30,想变成一个参数,然后在公式二里用stkind调用,类似

STKINDI('','o-lltfd.llt(30)',0,DATAPERIOD)

如果在公式二里再设定一个参数,比如TT,来用做参数优化,就会发现,当tt=30的时候,

STKINDI('','o-lltfd.llt(tt)',0,DATAPERIOD)和上面的输出是不一致的,图形区别很大。

以至于目前这个参数我没法优化,,,我不知道用#x.y#会不会有类似的问题

 

 


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


加好友 发短信
等级:论坛游侠 帖子:149 积分:0 威望:0 精华:0 注册:2014/8/25 9:32:54
  发帖心情 Post By:2018/8/6 18:06:02    Post IP:59.173.148.94[显示全部帖子]

以下是引用FireScript在2018/7/30 9:19:27的发言:
 1.不跨周期的话,效率更高。

 2.你提到的stkind传参数的问题,是因为你传参数的方式不对。

参考:
若参数为数字变量,那么需要有个字符串转换的过程
s:=5;
m:=NUMTOSTR(s,0);//NUMTOSTR函数将数字转换到字符串,再带入变量中
vola:stkindi('if10','ATR.ATR('&m&')',0,6,-1);//计算IF10合约的日线周期指标ATR的ATR指标线,传递参数m值为5。
//第2个参数''里的是文本,由三部分组成:'ATR.ATR('和m还有')',这三部分由两个连接符号&连接起来,实现对数值参数的文本传输。

3.#x.y#  这种方式可以直接传数值参数不需要按照2方式进行字符串转换 如下:
INPUT:N(5,1,100,1);
RESULT

 

 

 

试过了,:#x.y(N)#;方式,写出语法没问题,图上表达也正常,但如果把N纳入参数优化,就有问题了,得不到正常的结果,假设N从10-100取值进行优化,测试出来的所有结果都是N=10的,,,在测试面板下,手动改N值也不行,第一次测试的N是多少,后面改什么都没用,只有退出测试面板再进入,结果才会有变化,,,


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


加好友 发短信
等级:论坛游侠 帖子:149 积分:0 威望:0 精华:0 注册:2014/8/25 9:32:54
  发帖心情 Post By:2018/8/7 21:10:49    Post IP:58.48.94.221[显示全部帖子]

以下是引用FireScript在2018/8/7 9:02:30的发言:
 刚测试了,可以参与优化的。另外你手动修改参数的时候是不是没有符合最小步长呢?

 

 

不是步长的问题,就是不能参与优化,也不能手动改,只有开始测试的第一个参数有效,

 

我不知道怎么把这个问题再现给你,,,

 

关闭测试面板再展开测试面板,然后改参数,仍然是第一次有效

[此贴子已经被作者于2018/8/7 21:12:36编辑过]

 回到顶部