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


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

   

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


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

主题:序列指标在逐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线模式下写出这个公式呢?!!!


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/7/25 14:53:01    Post IP:180.169.30.6[只看该作者]

 逐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 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编辑过]

 

 

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


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


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

 没有对参数优化有多大影响的。相比之下,逐K下做那个循环带来的消耗更影响体验的。 我试了,跨周期引用那个指标的输出效果是一模一样的。


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


加好友 发短信
等级:管理员 帖子:1516 积分:229 威望:0 精华:0 注册:2012/3/30 12:40:56
  发帖心情 Post By:2018/7/25 20:42:01    Post IP:223.104.5.167[只看该作者]

如果你只是引用模型而不涉及任何跨周期,请使用#.#用户函数引用模式,可以更有效率

 回到顶部
帅哥哟,离线,有人找我吗?
oroute
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | 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编辑过]

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


加好友 发短信
等级:管理员 帖子:26632 积分:0 威望:0 精华:7 注册:2015/4/9 14:59:07
  发帖心情 Post By:2018/7/26 10:25:18    Post IP:180.169.30.6[只看该作者]

用户函数调用模式,方便客户进行模块化编程
用法:#用户函数.指标线(参数)#

示例:myllt:#Formula2.LLT#    //Formula2代表你序列下llt的公式名称



编程无捷径,技巧靠积累。
 回到顶部
帅哥哟,离线,有人找我吗?
fly
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:5082 积分:17642 威望:0 精华:6 注册:2010/7/15 9:05:58
  发帖心情 Post By:2018/7/26 11:03:03    Post IP:180.169.30.6[只看该作者]

用户函数调用模式,方便客户进行模块化编程
用法:#公式名称.指标线(参数)#

用户函数调用模式,方便客户进行模块化编程
用法:#用户函数.指标线(参数)#
例如:#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编辑过]


金字塔—专业程序化交易量化投资平台

客户服务部

-----------------------------------------------------------

欢迎您参加我公司的技术培训,具体培训需求请发邮件到

service@weistock.com

您的宝贵建议或者投诉,请发往邮箱:weiwei@weistock.com

 回到顶部
帅哥哟,离线,有人找我吗?
oroute
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | 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#会不会有类似的问题

 

 


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


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

 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)#;


命数如织,当如磐石。
 回到顶部
总数 14 1 2 下一页