以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  金字塔软件问题提交  (http://weistock.com/bbs/list.asp?boardid=2)
----  [建议]关于STKINDI函数  (http://weistock.com/bbs/dispbbs.asp?boardid=2&id=2358)

--  作者:j888fff
--  发布时间:2010/8/4 1:08:27
--  [建议]关于STKINDI函数

在使用STKINDI函数时,引用指标的参数不能为变量,如想设为变量来优化参数,就会导致没有信号输出。

例如:STKINDI(\'1A0001\',\'MA.MA1(8,12,26,60)\',0,DATAPERIOD);

改成如下公式,检测能通过,但无信号输出。

STKINDI(\'1A0001\',\'MA.MA1(n1,n2,n3,n4)\',0,DATAPERIOD);

建议改良该函数。

 

 

 

 


--  作者:admin
--  发布时间:2010/8/4 1:44:39
--  [建议] 开发一个对象、方法以便自动清除后台交易里的监控记录

可以带参数的使用方法,请参考 "Ma.ma1"(n1,n2)等用法


--  作者:j888fff
--  发布时间:2010/8/4 15:43:45
--  

使用 "Ma.ma1"(n1,n2)方法通过。

但由于要引用前一根K线指标的值,非得单独另设个指标,略感麻烦些。


--  作者:股疯
--  发布时间:2010/8/6 8:17:32
--  
以下是引用j888fff在2010-8-4 15:43:45的发言:

使用 "Ma.ma1"(n1,n2)方法通过。

但由于要引用前一根K线指标的值,非得单独另设个指标,略感麻烦些。

麻烦的往往隐患少

 


--  作者:j888fff
--  发布时间:2010/8/11 12:23:33
--  
以下是引用admin在2010-8-4 1:44:39的发言:

可以带参数的使用方法,请参考 "Ma.ma1"(n1,n2)等用法

经过几天的测试,发现还是存在问题。

1.例,为解决在15分钟周期引用30分钟周期上一根K线的数据,先编技术指标:rm

公式内容:假设参数m,缺省5,最小1,最大100,步长1;参数n,缺省10,最小2,最大100,步长1。

mmr1:ref("ma.ma1"(m,n),1)  ;
mmr2:ref("ma.ma2"(m,n),1)  ;

 

再另编一交易指标:bb

公式内容:假设参数m,缺省5,最小1,最大100,步长1;参数n,缺省10,最小2,最大100,步长1。

mm30r1:="rm.mmr1#MIN30"(m,n)  ;

mm30r2:="rm.mmr2#MIN30"(m,n)  ;

aa: cross(mm30r1,mm30r2) ;

 

这时,如对bb指标进行参数优化,数据结果输出正常。比方最后选用了参数m为20,n为30。

但当把该bb交易指标信号显示到到图标上时,发现公式输出的数值,还是参数m为5,n为10的数值。(先切换到30分钟周期,再切回15分钟周期)。

原因为优化参数时,是优化了bb公式的参数,rm公式的参数优化不到。所以,bb交易系统用的还是原来的参数。

 

 

2.将bb交易系统做成预警IF08。

由于使用的是30分钟周期的数据,因此,在出现信号的时间应为:9:45 10:15 10:45 11:15 13:15 13:45 14:15 14:45 15:15

而实际上公式出现信号的时间几乎是按15分钟周期计算的。也就是说该在10:15分出的信号,出在了10:00 ,该在11:15分出的信号出在了11:00 ,因此在预警系统设置了走完一根K线才出信号时,造成了,bb指标信号在15分钟周期早出了一根K线,而预警系统则无信号提示出现。

如图:15分钟周期,白线尖峰是bb指标出的信号,时间在10:00,而按编制逻辑,应该是在10:15分才出的。时间到了10:15预警系统也没出信号。


[此贴子已经被作者于2010-8-11 12:45:01编辑过]

--  作者:wattwei
--  发布时间:2010/8/11 13:51:56
--  
 不错的问题,值得讨论。
1.原因为优化参数时,是优化了bb公式的参数,rm公式的参数优化不到。所以,bb交易系统用的还是原来的参数。
楼主的小周期的指标完全是调用的大周期的指标,不存在对小周期指标中其它公式的优化。要是有优化也是对引用的大周期公式的优化。是否有优化的效果,楼主可以将优化得出的参数写成常量,带入测试。如果得出效果好于未优化的缺省参数的情况,说明STKINDI支持变量参数传递,不然优化无效果。
2.
由于使用的是30分钟周期的数据,因此,在出现信号的时间应为:9:45 10:15 10:45 11:15 13:15 13:45 14:15 14:45 15:15
从公式中看出,rm中引用的是最晚到上一个30分钟K线(已完全形成)的数据,那么信号出现点应该是相对开盘,间隔时间30分钟的倍数,而且信号一旦出现要维持30分钟不变。这点同意楼主的分析。但是显示信号要出现在下一根15分钟K线,即使这个K线还未完全形成,于是出现了楼主观察到的情况。



[此贴子已经被作者于2010-8-11 13:57:29编辑过]

--  作者:j888fff
--  发布时间:2010/8/11 17:14:41
--  
以下是引用wattwei在2010-8-11 13:51:56的发言:
 不错的问题,值得讨论。
1.原因为优化参数时,是优化了bb公式的参数,rm公式的参数优化不到。所以,bb交易系统用的还是原来的参数。
楼主的小周期的指标完全是调用的大周期的指标,不存在对小周期指标中其它公式的优化。要是有优化也是对引用的大周期公式的优化。是否有优化的效果,楼主可以将优化得出的参数写成常量,带入测试。如果得出效果好于未优化的缺省参数的情况,说明STKINDI支持变量参数传递,不然优化无效果。
2.
由于使用的是30分钟周期的数据,因此,在出现信号的时间应为:9:45 10:15 10:45 11:15 13:15 13:45 14:15 14:45 15:15
从公式中看出,rm中引用的是最晚到上一个30分钟K线(已完全形成)的数据,那么信号出现点应该是相对开盘,间隔时间30分钟的倍数,而且信号一旦出现要维持30分钟不变。这点同意楼主的分析。但是显示信号要出现在下一根15分钟K线,即使这个K线还未完全形成,于是出现了楼主观察到的情况。



[此贴子已经被作者于2010-8-11 13:57:29编辑过]

 

第一个问题,通过使用如下方法解决:

mm30r1:="ma.ma1##MIN30"(m,n)  ;
mm30r2:="ma.ma2##MIN30"(m,n)  ;
aa: cross(mm30r1,mm30r2) ;

多加个#,就能引用上一根K线的数值了。多加两个##,就能引用上上根K线数值。

如此就不用分2个公式,同时经实地测试,参数优化通过。

 

第二个问题依然存在,期待早日解决。

[此贴子已经被作者于2010-8-11 17:15:41编辑过]

--  作者:j888fff
--  发布时间:2010/8/14 21:07:42
--  

管理员给回复下吧,第二个问题近期能给解决不?

烦请排上日程,不甚感激~


--  作者:admin
--  发布时间:2010/8/14 21:11:10
--  
第二个问题不属于常用操作,如果你有特殊需要,请考虑用VBA得自定义函数解决
--  作者:j888fff
--  发布时间:2010/8/14 23:47:47
--  

VBA不会啊,恳请哪位高手会的给解决下吧,万分感激~