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


金字塔客服中心 - 专业程序化交易软件提供商金字塔软件金字塔软件问题提交 → 如何让公式在周期和序列下都能运行?

   

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


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

主题:如何让公式在周期和序列下都能运行?

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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
如何让公式在周期和序列下都能运行?  发帖心情 Post By:2011/1/29 0:12:46 [只看该作者]

为了让模型在周期下和序列下都能高效运行,我仿照例子做了个简单公式,如下:

 

RUNMODE:0;

variable:I=0;
variable:STLL=0,STHH=0;

B:barpos,linethick0;
D:datacount,linethick0;

if not(islastbar) then exit;

for I=1 to datacount do begin
 STHH[I]:=HIGH[I];
 STLL[I]:=LOW[I];
 
 if I=1 then begin
  STH[I]:=STHH[I];
  STL[I]:=STLL[I];
 end else begin
  STH[I]:if(STHH[I]>STHH[I-1],STHH[I],STHH[I-1]);
  STL[I]:if(STLL[I]<STLL[I-1],STLL[I],STLL[I-1]); 
 end
end

 

在序列下运行正常,但在周期下显示不出东西。请帮忙看看。

 

这样做的目的是,用Buy等指令在周期下测试,同时能在后台运行在序列模式下。

 

[此贴子已经被作者于2011-1-29 0:13:09编辑过]

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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/1/29 0:25:33 [只看该作者]

STHH 申明的是全局变量,在著周期模式下是个单值变量,不是数组,试试去掉variable声明

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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
如何让公式在周期和序列下都能运行?  发帖心情 Post By:2011/1/29 7:43:38 [只看该作者]

谢谢。去掉声明后,效果还是一样。


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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
如何让公式在周期和序列下都能运行?  发帖心情 Post By:2011/2/11 0:49:18 [只看该作者]

能帮忙调试一下这段公式吗?这是可以运行的完整公式。


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/2/11 8:16:13 [只看该作者]

公式汗有了

if not(islastbar) then exit;

这个语句,表示只在最后周期才进行的操作,即便改成了可以逐周期,也没法用在BUY,SELL上的


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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
  发帖心情 Post By:2011/2/11 11:30:00 [只看该作者]

在周期下,是可以去掉这句的,只是效率低一点。


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


加好友 发短信
等级:管理员 帖子:7302 积分:32559 威望:1000 精华:45 注册:2003/12/30 16:34:32
  发帖心情 Post By:2011/2/11 11:39:07 [只看该作者]

去不去掉都一样的,如果是普通指标那么逐周期的意义不大,如果要用BUY,SELL交易系统,是行不通的。

BUY,SELL需要每个周期都执行信号判断才能正常工作,你这个公式需要先计算指标数据然后才能出现信号,违背了BUY,SELL的运行机制。

只能使用ENTERLONG等简单交易系统


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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
  发帖心情 Post By:2011/2/11 12:06:35 [只看该作者]

你这个说法不对,去掉islastbar判断以后,同样是每个周期都会有指标值,每个周期都能做信号判断。希望你们的工程师能做点调试。

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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
  发帖心情 Post By:2011/2/11 12:08:54 [只看该作者]

实际情况是,我仅仅允许STHH和STLL也显示指标线,在周期下就能正常运行了。很是奇怪!

 

RUNMODE:0;

//variable:I=0;
//variable:STLL=0,STHH=0;

B:barpos,linethick0;
D:datacount,linethick0;

//if not(islastbar) then exit;

for I=1 to datacount do begin
 STHH[I]:HIGH[I];
 STLL[I]:LOW[I];
 
 if I=1 then begin
  STH[I]:=STHH[I];
  STL[I]:=STLL[I];
 end else begin
  STH[I]:if(STHH[I]>STHH[I-1],STHH[I],STHH[I-1]);
  STL[I]:if(STLL[I]<STLL[I-1],STLL[I],STLL[I-1]); 
 end
end


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


加好友 发短信
等级:论坛游侠 帖子:369 积分:2060 威望:0 精华:0 注册:2010/7/13 12:13:32
  发帖心情 Post By:2011/2/11 12:09:33 [只看该作者]

希望你们对待客户的问题能认真一点。

 回到顶部
总数 14 1 2 下一页