以文本方式查看主题 - 金字塔客服中心 - 专业程序化交易软件提供商 (http://222.73.7.161/bbs/index.asp) -- 公式模型编写问题提交 (http://222.73.7.161/bbs/list.asp?boardid=4) ---- 问个数组问题 (http://222.73.7.161/bbs/dispbbs.asp?boardid=4&id=160884) |
|
-- 作者:hj007s -- 发布时间:2018/1/5 14:20:50 -- 问个数组问题 我想做个数组,在一个下跌走势中,MA5死叉MA10,会有好几个点,能否做个数组记录每个点的价格位置,并调用??? 比如说,第一个死叉在10块钱位置,跌下到9块钱反弹,9.3继续死叉(第二个点),然后我做个记录,并能在以后我调用10块钱,和9.3的价位?
|
|
-- 作者:FireScript -- 发布时间:2018/1/5 14:38:17 -- 只能记录金叉或者死叉的那个K的位置对应的开高低收。 而不是你说的记录刚好触发死叉的那个价格。这个不好做。
|
|
-- 作者:hj007s -- 发布时间:2018/1/5 14:52:05 -- 就是能记录那个位置K线是吧,是走完一根K线所对应信号的K线么?这样的话开仓时点就会晚了点,没办法做就是及时的么,就是如果用序列模式,哪怕出现信号频闪,那么也是可以的啊,就是记录当时触发的价格。 老师,要不,你先写个范例给我看下记录金叉或者死叉那根K线位置对应的高开低收价格序列数组应该怎么写,然后怎么调用? 尤其是一个下跌行情的走势,出现2个以上的时候如何去调用之前的
|
|
-- 作者:FireScript -- 发布时间:2018/1/5 15:28:40 -- 历史K上都是成形的数据,不存在触发死叉时的即时价格。 至于获取金叉死叉的位置可以用
BARSLAST(死叉);//上一次死叉位置 SUMBARS(死叉,N);//N个死叉的位置
这2个函数都可以
获取到位置之后 就可以使用ref函数去引用那个位置的开高低收价格了。没必要使用数组取去记录。 |
|
-- 作者:hj007s -- 发布时间:2018/1/5 15:53:35 -- 能写复杂一点么,就是可以调用并且查看,想参考一下, 非常感谢
|
|
-- 作者:FireScript -- 发布时间:2018/1/5 16:02:57 -- input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);//参数设置
macdjc:cross(diff,dea);//macd金叉 Lastsc:=BARSLAST(macdsc);//上一个死叉的K线位置 10dsc:=SUMBARS(macdsc,10);//最近的第10个死叉的位置 |
|
-- 作者:hj007s -- 发布时间:2018/1/5 16:18:18 --
|
|
-- 作者:FireScript -- 发布时间:2018/1/5 16:25:26 -- 因为之前只要有死叉lastsc就不可能是0了,除非你在当前图表最前面的某些K上,也就是历史上第一个死叉出现之前,这个值才可能是0.
上图我限制了K线数量,标记的位置就是第一个死叉之前的K。这时候那个lastsc就是0.
这个BARSLAST(macdsc)返回值是基于你当前K位置的,也就是你图表上十字光标的位置的那个K之前的第一个死叉。 |
|
-- 作者:hj007s -- 发布时间:2018/1/5 16:33:00 -- 那跟我的想法有点违背啊, 还是上个图 我的想法是在黄圈那儿记录,比如说就3个死叉,就记录3个死叉的K线的位置和价格(高开低收)
|
|
-- 作者:FireScript -- 发布时间:2018/1/5 16:43:03 -- 还有2句代码啊。
10dsc:=SUMBARS(macdsc,10);//最近的第10个死叉的位置 10dscOpen:ref(o,10dsc);//最近的第10个死叉位置的开盘价
这里参数10改成3就可以了。 你需要这三个死叉的位置的话,那就复制上面的代码 修改下参数。 1dsc:=SUMBARS(macdsc,1); 1dscOpen:ref(o,1dsc); 2dsc:=SUMBARS(macdsc,2); 2dscOpen:ref(o,2dsc);
如果你不扩充数据起始位置的话,历史上的K的金叉或者死叉肯定是固定的了。其次当前最新K的上的死叉信号可能会多次闪烁,这种在闪烁中的死叉信号没办法进行很好的记录。 |