欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → 问个数组问题

   

欢迎使用金字塔普通技术服务论坛,您可以在相关区域发表技术支持贴。
我司技术服务人员将优先处理 VIP客服论坛 服务贴,普通区问题处理速度慢,请耐心等待。谢谢您对我们的支持与理解。    


  共有4005人关注过本帖树形打印复制链接

主题:问个数组问题

帅哥哟,离线,有人找我吗?
hj007s
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:212 积分:0 威望:0 精华:0 注册:2017/10/26 16:40:54
问个数组问题  发帖心情 Post By:2018/1/5 14:20:50    Post IP:121.8.107.170[只看该作者]

我想做个数组,在一个下跌走势中,MA5死叉MA10,会有好几个点,能否做个数组记录每个点的价格位置,并调用???
比如说,第一个死叉在10块钱位置,跌下到9块钱反弹,9.3继续死叉(第二个点),然后我做个记录,并能在以后我调用10块钱,和9.3的价位?

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/1/5 14:38:17    Post IP:180.169.30.6[只看该作者]

只能记录金叉或者死叉的那个K的位置对应的开高低收。 而不是你说的记录刚好触发死叉的那个价格。这个不好做。

 

 



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hj007s
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:212 积分:0 威望:0 精华:0 注册:2017/10/26 16:40:54
  发帖心情 Post By:2018/1/5 14:52:05    Post IP:121.8.107.170[只看该作者]

就是能记录那个位置K线是吧,是走完一根K线所对应信号的K线么?这样的话开仓时点就会晚了点,没办法做就是及时的么,就是如果用序列模式,哪怕出现信号频闪,那么也是可以的啊,就是记录当时触发的价格。

老师,要不,你先写个范例给我看下记录金叉或者死叉那根K线位置对应的高开低收价格序列数组应该怎么写,然后怎么调用?
尤其是一个下跌行情的走势,出现2个以上的时候如何去调用之前的

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/1/5 15:28:40    Post IP:180.169.30.6[只看该作者]

历史K上都是成形的数据,不存在触发死叉时的即时价格。 至于获取金叉死叉的位置可以用

 

BARSLAST(死叉);//上一次死叉位置

SUMBARS(死叉,N);//N个死叉的位置

 

这2个函数都可以

 

获取到位置之后 就可以使用ref函数去引用那个位置的开高低收价格了。没必要使用数组取去记录。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hj007s
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:212 积分:0 威望:0 精华:0 注册:2017/10/26 16:40:54
  发帖心情 Post By:2018/1/5 15:53:35    Post IP:121.8.107.170[只看该作者]

能写复杂一点么,就是可以调用并且查看,想参考一下,
非常感谢

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/1/5 16:02:57    Post IP:180.169.30.6[只看该作者]

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);//参数设置


DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

macdjc:cross(diff,dea);//macd金叉
macdsc:cross(dea,diff);//macd死叉

Lastsc:=BARSLAST(macdsc);//上一个死叉的K线位置
LastscOpen:ref(o,Lastsc);//上一个死叉的开盘价

10dsc:=SUMBARS(macdsc,10);//最近的第10个死叉的位置
10dscOpen:ref(o,10dsc);//第10个死叉位置的开盘价



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hj007s
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:212 积分:0 威望:0 精华:0 注册:2017/10/26 16:40:54
  发帖心情 Post By:2018/1/5 16:18:18    Post IP:121.8.107.170[只看该作者]

input:p(26,20,100,8),s(12,5,40,4),m(9,2,60,6);//参数设置


DIFF : EMA(CLOSE,S) - EMA(CLOSE,P);
DEA  : EMA(DIFF,M);
MACD1 : 2*(DIFF-DEA), COLORSTICK;

macdjc:cross(diff,dea);//macd金叉
macdsc:cross(dea,diff);//macd死叉

Lastsc:=BARSLAST(macdsc);//上一个死叉的K线位置
LastscOpen:ref(o,Lastsc);//上一个死叉的开盘价

10dsc:=SUMBARS(macdsc,10);//最近的第10个死叉的位置
10dscOpen:ref(o,10dsc);//第10个死叉位置的开盘价



我在这个代码那里加上了if lastsc<>0 then DRAWTEXT(1,low,'S');

结果主图叠加全部是S?怎么会???


 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/1/5 16:25:26    Post IP:180.169.30.6[只看该作者]

因为之前只要有死叉lastsc就不可能是0了,除非你在当前图表最前面的某些K上,也就是历史上第一个死叉出现之前,这个值才可能是0.

 

 


图片点击可在新窗口打开查看此主题相关图片如下:1.png
图片点击可在新窗口打开查看

 

上图我限制了K线数量,标记的位置就是第一个死叉之前的K。这时候那个lastsc就是0. 

 

这个BARSLAST(macdsc)返回值是基于你当前K位置的,也就是你图表上十字光标的位置的那个K之前的第一个死叉。



命数如织,当如磐石。
 回到顶部
帅哥哟,离线,有人找我吗?
hj007s
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:论坛游侠 帖子:212 积分:0 威望:0 精华:0 注册:2017/10/26 16:40:54
  发帖心情 Post By:2018/1/5 16:33:00    Post IP:121.8.107.170[只看该作者]

那跟我的想法有点违背啊,
还是上个图

我的想法是在黄圈那儿记录,比如说就3个死叉,就记录3个死叉的K线的位置和价格(高开低收)
如果是盘中出现的话能记录的话最好,我是希望盘中出现的话做记录的(这涉及到序列模式?
图片点击可在新窗口打开查看此主题相关图片如下:1234551231.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
FireScript
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2018/1/5 16:43:03    Post IP:180.169.30.6[只看该作者]

还有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的上的死叉信号可能会多次闪烁,这种在闪烁中的死叉信号没办法进行很好的记录。



命数如织,当如磐石。
 回到顶部
总数 14 1 2 下一页