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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件公式模型编写问题提交 → [原创]怎么提取前30根bar的收盘价

   

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


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

主题:[原创]怎么提取前30根bar的收盘价

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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/4 10:35:56    Post IP:180.169.30.6[显示全部帖子]

 ref无法在循环语句内部直接使用。

但是收盘价函数本身就是一个序列。所以可以这样

c[BARPOS-1];//表示取上一个K收盘价
[此贴子已经被作者于2020/3/4 10:36:11编辑过]


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/4 13:58:56    Post IP:180.169.30.6[显示全部帖子]


close[0]

1.下标从1开始,不是从0.
2.公式模式必须是逐K模式才能正确定义全局变量。

你定义数组是为了处理什么呢。本身历史的收盘价都在一个序列里面,随时取用,你把他们又存放到一个新的数组里面似乎没什么必要吧。 你直接告知下你的原始思路吧。要就是你调取历史K收盘价是为了处理什么。
[此贴子已经被作者于2020/3/4 14:02:13编辑过]


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/4 14:36:01    Post IP:180.169.30.6[显示全部帖子]

 赋值是“:=” 而不是“=”


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/4 14:46:01    Post IP:180.169.30.6[显示全部帖子]

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

variable:closes[30]:=0;

for i=1 to 30 do
begin
closes[i]:=c[BARPOS-i];
end

x:closes[1];



这种做法用到了循环,效率始终是问题。




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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/4 15:22:05    Post IP:180.169.30.6[显示全部帖子]

 就一句代码在循环里面可以不用begin-end 。


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/6 9:48:50    Post IP:180.169.30.6[显示全部帖子]

 循环可以逆序的啊。
语法:
FOR VAR=N1 TO N2 DO EXPR;
从 VAR=N1 开始到 VAR=N2 开始循环执行 EXPR 语句,每执行一次VAR加1
FOR VAR=N1 DOWNTO N2 DO EXPR2;
从 VAR=N1 开始到 VAR=N2 开始循环执行 EXPR 语句,每执行一次VAR减1

注意:逐K线计算模式时,请尽量不要在FOR循环控制语句中使用MA,HHV,LLV等带有序列变量的统计类函数,
虽然能通过编译,但是会运行不正常,应该把他们放在语句的外面计算
所属函数组:控制语句


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


加好友 发短信
等级:超级版主 帖子:14496 积分:0 威望:0 精华:0 注册:2017/7/4 13:40:18
  发帖心情 Post By:2020/3/6 10:43:37    Post IP:180.169.30.6[显示全部帖子]

1. 不会引用到未来。
2.buy(1,1,limitr,o);


命数如织,当如磐石。
 回到顶部