以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  [求助]请大师写个语句  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=175864)

--  作者:abcing
--  发布时间:2020/5/6 9:28:42
--  [求助]请大师写个语句
趋势打分机制:

1,如果当前K线的收盘价大于之前回溯周期内的某一根K线的收盘价时,记+1分,否则记-1分,
加总这些分数以获得当前K线的得分;
2,计算K线得分的均线;
3,若当前K线的收盘得分高于得分均线,则次日开盘时 开多或平空;反之,则开空或平多。

例如,
input:回溯周期(15,10,20,2);
如果当前k线收盘价大于 ref(close,1)、ref(close,2)……ref(close,回溯周期)这些数中任何一个则记+1分;
小于其中任何一个数记-1分;与其中数字相等的则不加不减。
加总这些得分,即是当前K线的趋势得分
    

--  作者:FireScript
--  发布时间:2020/5/6 9:45:44
--  
 “
如果当前k线收盘价大于 ref(close,1)、ref(close,2)……ref(close,回溯周期)这些数中任何一个则记+1分;
小于其中任何一个数记-1分”
很明显回溯周期内,是很可能找到同时满足+1 和-1条件的2个K的。只要当前K不是最大或者最小值即可。

--  作者:abcing
--  发布时间:2020/5/6 9:57:50
--  
不是,

例如,
回溯周期为5,
当前收盘价为close=10,回溯期里的5个收盘价为:7,8,6,5,11
则,
10<11,记-1分;
10>5,记+1分;
10>6,记+1分;
10>8,记+1;
10>7,记+1;
当前K线得分为:(-1)+(+1)+(+1)+(+1)+(+1)=3

--  作者:abcing
--  发布时间:2020/5/6 10:00:53
--  
应该是定义个全局变量,写个循环语句就行了,

但是for循环里提示不能出现ref函数,不知道怎么办

--  作者:FireScript
--  发布时间:2020/5/6 10:29:33
--  
肯定不能用循环和ref处理,会卡死
这种用HOD( , ) 函数吧。根据排序位置来处理。也就是获取当前C在N+1周期内的排名。
但是无法处理C相等的情况。

--  作者:abcing
--  发布时间:2020/5/6 10:35:25
--  
是的,排序无法处理相等收盘价,有没有解决办法?
谢谢

--  作者:wenarm
--  发布时间:2020/5/6 10:45:21
--  

没办法。


--  作者:FireScript
--  发布时间:2020/5/6 11:05:22
--  
 这个目前没有太好的办法了。
--  作者:abcing
--  发布时间:2020/5/6 11:14:28
--  
好的,谢谢