以文本方式查看主题

-  金字塔客服中心 - 专业程序化交易软件提供商  (http://weistock.com/bbs/index.asp)
--  公式模型编写问题提交  (http://weistock.com/bbs/list.asp?boardid=4)
----  求实现方法  (http://weistock.com/bbs/dispbbs.asp?boardid=4&id=188181)

--  作者:jcyluck
--  发布时间:2021/5/8 9:51:47
--  求实现方法
以RB00的60分钟线为例:
5月6日有6根K线,分别是 10,11,14,15,22,23点
5月7日有6根K线,分别是 10,11,14,15,22,23点

假设从7号10点开始要计算一个均值,求实现方法:
7号10点时的均值为:(7号10点+6号23点)/2
7号11点时的均值为:(7号11点+7号10点+6号23点+6号22点)/4
7号14点时的均值为:(7号14点+7号11点+7号10点+6号23点+6号22点+6号15点)/6

也就是从此发出信号的那根K线向前倒推求均值。
第一根K线求发出信号后的第一根和发出信号前的最后一根 的均值。
第二根K线求发出信号后的两根和发出信号前的最后两根 的均值。
第三根K线求发出信号后的三根和发出信号前的最后三根 的均值。

FOR函数不支持在函数中使用MA,而发出信号后的K线根数是一个变量,可能有上百根之多,请问怎么实现?
谢谢。

--  作者:FireScript
--  发布时间:2021/5/8 10:23:14
--  
 “
也就是从此发出信号的那根K线向前倒推求均值。
第一根K线求发出信号后的第一根和发出信号前的最后一根 的均值。
第二根K线求发出信号后的两根和发出信号前的最后两根 的均值。
第三根K线求发出信号后的三根和发出信号前的最后三根 的均值。
这个逻辑没看懂啊。没办法从里面抽出它的普适性的逻辑。

--  作者:jcyluck
--  发布时间:2021/5/8 21:47:49
--  
比如:
MAV:=MA(C,10);
IND:BARSLAST(C>MAV),NODRAW;

如果当前K线收盘跌破MAV时,IND 即为当前K线的索引值,第一根为1,第二根为2,第三根为3。
第一根为1时,需要计算,第一根K线和前一根K线共2根的均值。(即上面的:7号10点时的均值为:(7号10点+6号23点)/2
第二根为2时,需要计算,第一根K线,第二根K线和前一根K线,前二根K线共4根的均值。(7号11点时的均值为:(7号11点+7号10点+6号23点+6号22点)/4)
第三根为3时,需要计算,第一根K线,第二根K线第三根K线和前一根K线,前二根K线前三根K线共6根的均值。(7号14点时的均值为:(7号14点+7号11点+7号10点+6号23点+6号22点+6号15点)/6)
。。。。。


--  作者:FireScript
--  发布时间:2021/5/10 9:27:13
--  
你这个应该 这样直接就行了吧。

MAV:=MA(C,10);
IND:BARSLAST(cross(MAV,c)),NODRAW;//跌破用cross来表述

result:ma(c,2*IND);