以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  使用360根k线计算的问题  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=100797)

--  作者:never827
--  发布时间:2016/7/12 8:25:07
--  使用360根k线计算的问题
1分钟模型,如果是k线的收盘价,上穿一根均线到下穿一根均线的周期,计算这个周期的hhv,要是赶上一个涨停,那么1分k肯定超360根了呀,这种情况我需要怎么处理,除了增加k线计算的根数,还有没有什么更好的办法。
M1:=EMA(CLOSE,P1);
M3:=EMA(CLOSE,P3);
大均:=max(m1,m3);
小均:=min(m1,m3);
上穿大值均:=cross(close,大均);
下穿小值均:=cross(小均,close);
收过大均:=SFILTER( 上穿大值均,下穿小值均 ),NOAXIS,LINETHICK0;
收过小均:=SFILTER( 下穿小值均,上穿大值均 ),NOAXIS,LINETHICK0;
每穿一回间隔周期:=BARSLAST(收过大均 or 收过小均)+1,LINETHICK0,NOAXIS;
//////////////////////////////////////////////////////////////////////////////////////////
间隔周期:=ref(每穿一回间隔周期,1),LINETHICK0,NOAXIS;
下穿均线时前高点:=hhv(high,间隔周期+1)LINETHICK0,NOAXIS;
上穿均线时前低点:=llv(low,间隔周期+1)LINETHICK0,NOAXIS;
前低点:=VALUEWHEN(收过大均,上穿均线时前低点),noaxis,linethick0;
前高点:=VALUEWHEN(收过小均,下穿均线时前高点),noaxis,linethick0;

上面的代码是表示k收盘每下穿均线时,取前高点,每上穿均线时,取前低点,牵扯到了k线计算的根数问题,比如上穿均线后直接涨停了,连续涨停3天,然后再下穿均线,那就是一千多根1分钟k线,肯定超360根了,我要是选择使用5000根k线计算数据,和选择使用360根k线计算数据,速度差多少?
请教一个取前高点更好的代码表达方式,既能在360根k线以内,又能把前高点求出来的方法。

--  作者:jinzhe
--  发布时间:2016/7/12 9:08:49
--  

数据稳定肯定是要通过数据来解决的,使用数据不够则必须要加大使用数据的量。

数据越多计算越慢

既想要数据多,又想要不影响计算速度,是不可能的


--  作者:never827
--  发布时间:2016/7/12 9:51:36
--  
明白老师说的,我还想问下,使用360根k线数据计算和使用5000根k线数据计算,都只是截一下使用数据计算的范围,真实计算中,未必用的上这些范围的数据,也就是说大部分时间都只是用一小部分数据进行计算,那么为什么使用5000根k线数据计算和使用360根k线数据计算相比,会有很大计算速度偏差呢?
--  作者:jinzhe
--  发布时间:2016/7/12 10:06:01
--  
因为ema计算出来的序列变量,就算不是最新的k线,在历史上也是有数据要计算的
--  作者:never827
--  发布时间:2016/7/12 10:29:05
--  
这样可以勉强搞定大部分
min(间隔周期,360)
突然感觉量化拼的是谁绕路绕的好

--  作者:jinzhe
--  发布时间:2016/7/12 10:38:49
--  
不清楚你代码里面写这是做什么的,但是如果360根数据不足以计算出所需要的结果,那么就需要人为的去调整当前k线图上显示的数据了
--  作者:never827
--  发布时间:2016/7/12 11:32:25
--  
不好意思老师,是我对软件不熟悉,刚看出来“使用指定数量的数据计算”这个选项可以不选,我想问如果不选的话,比如一分钟模型,系统就会把我本地存储的从2011年开始的全部1分钟数据全部来参与计算吗?
--  作者:jinzhe
--  发布时间:2016/7/12 13:35:41
--  
不会,你当前显示多少就计算多少